Company - Benchmarking

Benchmark Technology Usage within a cohort of competitors or peers for a given company.

Returns normalized metrics per product/category/vendor, so you can rank adoption, identify gaps and product trends compared to your peers and competitors.

Base URL: https://api.salescaddy.ai/api


Endpoint

POST /companies/{companyDomain}/cohort/{cohort}/metrics/details

Path parameters

NameTypeRequiredDescription
companyDomainstringYesSubject company domain (e.g. microsoft.com)
cohortCompanyDomainarray[string]Yes['oracle.com','salesforce.com','adobe.com']

Query parameters

NameTypeRequiredDescription
vendorDomainstringNoFilter results to a single vendor (e.g., microsoft.com)
productIdstringNoFilter results to a single product ID (e.g., 16e299ae-0256-44e3-8989-7647815550d4)
categoryIdstringNoFilter results to a single category ID (e.g., 16e299ae-0256-44e3-8989-7647815550d4

The response is a JSON array of UsageMetricDTO (not paginated). Use filters to reduce payload size.

UsageMetricDTO (trimmed, conceptual)

[
	{
    "companyDomain": "stripe.com",
    "products": [
      {
        "similar": true,   // similar product identified
        "missing": false, 
        "different": false,
        "category": "CRM",
        "product": "Salesforce Sales Cloud"
      }
    ]
   "companyDomain": "square.com",
    "products": [
      {
        "similar": false,
        "missing": true,  //no product identified
        "different": false,
        "category": "CRM"
      }
]
  {
        "similar": false,
        "missing": false,
        "different": true, //different product identified
        "category": "AWS Marketplace",
        "product": "Adobe Coldfusion" //different product name
      },

]

Example — Filter by vendorDomain

curl -X 'POST' \
  'https://api.salescaddy.ai/api/companies/stripe.com/metrics/details?cohortCompanyDomain=square.com&cohortCompanyDomain=paypal.com&vendorDomain=adobe.com' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' \
  -d ''
const url = "https://api.salescaddy.ai/api/companies/hilton.com/cohort/Default/metrics/usage?vendorDomain=microsoft.com";
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.TOKEN}` } });
console.log(await res.json());
import os, requests
r = requests.get("https://api.salescaddy.ai/api/companies/hilton.com/cohort/Default/metrics/usage",
                 params={"vendorDomain":"microsoft.com"},
                 headers={"Authorization": f"Bearer {os.environ['TOKEN']}"})
print(r.json())
using System.Net.Http.Headers;
var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", TOKEN);
var res = await http.GetAsync("https://api.salescaddy.ai/api/companies/hilton.com/cohort/Default/metrics/usage?vendorDomain=microsoft.com");
Console.WriteLine(await res.Content.ReadAsStringAsync());

Sample response (trimmed):

[
  {
    "companyDomain": "stripe.com",
    "products": [
      {
        "similar": true,
        "missing": false,
        "different": false,
        "category": "A/B Testing",
        "product": "Adobe Target"
      },
      {
        "similar": true,
        "missing": false,
        "different": false,
        "category": "AR WYSIWYG Editor",
        "product": "Adobe Aero"
      },
      {
        "similar": false,
        "missing": true,
        "different": false,
        "category": "AWS Marketplace"
      },
      {
        "similar": false,
        "missing": true,
        "different": false,
        "category": "Animation"
      },
      {
        "similar": true,
        "missing": false,
        "different": false,
        "category": "Application Development",
        "product": "Magento 2"
      },
      {
        "similar": false,
        "missing": true,
        "different": false,
        "category": "Audience Intelligence Platforms"
      },
      {
        "similar": false,
        "missing": true,
        "different": false,
        "category": "Audio Editing"
      },
      {
        "similar": false,
        "missing": true,
        "different": false,
        "category": "Business Intelligence"
      },
      {
        "similar": true,
        "missing": false,
        "different": false,
        "category": "Collaboration & Productivity",
        "product": "Adobe Behance"
      },
      {
        "similar": false,
        "missing": true,
        "different": false,
        "category": "Component Content Management Systems"
      },
      {
        "similar": true,
        "missing": false,
        "different": false,
        "category": "Course Authoring",
        "product": "Adobe Captivate"
      },

Example — Filter by productId

curl -sS "https://api.salescaddy.ai/api/companies/microsoft.com/cohort/Default/metrics/usage?productId=16e299ae-0256-44e3-8989-7647815550d4" \
  -H "Authorization: Bearer $TOKEN"
const url = "https://api.salescaddy.ai/api/companies/hilton.com/cohort/Default/metrics/usage?productId=prod_office365";
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.TOKEN}` } });
console.log(await res.json());
r = requests.get("https://api.salescaddy.ai/api/companies/hilton.com/cohort/Default/metrics/usage",
                 params={"productId":"prod_office365"},
                 headers={"Authorization": f"Bearer {os.environ['TOKEN']}"})
print(r.json())
var res = await http.GetAsync("https://api.salescaddy.ai/api/companies/hilton.com/cohort/Default/metrics/usage?productId=prod_office365");
Console.WriteLine(await res.Content.ReadAsStringAsync());

Sample response (trimmed):

{
        "similar": false,
        "missing": true,
        "different": false,
        "category": "Data Management Platform (DMP)"
},


Notes & best practices

  • Metrics are normalized (1 –100%) — perfect for ranking & visualizations.
  • Results are not paginated; use vendorDomain/productId to reduce size if needed.
  • Sorting is not guaranteed — sort on the client (e.g., by adoption or intensity).
  • For deterministic validation, pair with:
    • POST /companies/{domain}/products-in-use — confirm presence of specific products.
    • GET /companies/{domain}/products/paged — fetch installed products with details.

Errors

CodeMeaningHow to fix
400Bad requestValidate cohort enum and filter types.
401UnauthorizedProvide/refresh Bearer token.
403ForbiddenCheck client permissions.
404Not foundUnknown companyDomain or cohort not configured.
429Rate limit exceededRetry with exponential backoff; respect Retry-After.
500Internal server errorRetry later; contact support if persistent.