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
| Name | Type | Required | Description |
|---|---|---|---|
companyDomain | string | Yes | Subject company domain (e.g. microsoft.com) |
cohortCompanyDomain | array[string] | Yes | ['oracle.com','salesforce.com','adobe.com'] |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
vendorDomain | string | No | Filter results to a single vendor (e.g., microsoft.com) |
productId | string | No | Filter results to a single product ID (e.g., 16e299ae-0256-44e3-8989-7647815550d4) |
| categoryId | string | No | Filter 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/productIdto reduce size if needed. - Sorting is not guaranteed — sort on the client (e.g., by
adoptionorintensity). - 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
| Code | Meaning | How to fix |
|---|---|---|
| 400 | Bad request | Validate cohort enum and filter types. |
| 401 | Unauthorized | Provide/refresh Bearer token. |
| 403 | Forbidden | Check client permissions. |
| 404 | Not found | Unknown companyDomain or cohort not configured. |
| 429 | Rate limit exceeded | Retry with exponential backoff; respect Retry-After. |
| 500 | Internal server error | Retry later; contact support if persistent. |