Company - Products In Use

Deterministically verify whether a company uses specific products.
You send a list of productIds; the API returns inUse and a confidence score per product.

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


Endpoint

POST /companies/{companyDomain}/products-in-use

Path parameters

NameTypeRequiredDescription
companyDomainstringYesCompany domain (e.g., hilton.com)

Request body

{ "productIds": ["prod_office365", "prod_slack"] }

Send 1–N product IDs. The response is an array with verification results (not paginated).


Example — Verify products in use

curl -sS -X POST "https://api.salescaddy.ai/api/companies/hilton.com/products-in-use"   -H "Authorization: Bearer $TOKEN"   -H "Content-Type: application/json"   -d '{ "productIds": ["prod_office365","prod_slack"] }'
const res = await fetch("https://api.salescaddy.ai/api/companies/hilton.com/products-in-use", {
  method: "POST",
  headers: { "Authorization": `Bearer ${process.env.TOKEN}`, "Content-Type": "application/json" },
  body: JSON.stringify({ productIds: ["prod_office365","prod_slack"] })
});
console.log(await res.json());
import os, requests
r = requests.post("https://api.salescaddy.ai/api/companies/hilton.com/products-in-use",
                  headers={"Authorization": f"Bearer {os.environ['TOKEN']}", "Content-Type":"application/json"},
                  json={"productIds":["prod_office365","prod_slack"]})
print(r.json())
using System.Text;
var http = new HttpClient();
var payload = new StringContent("{"productIds":["prod_office365","prod_slack"]}", Encoding.UTF8, "application/json");
var res = await http.PostAsync("https://api.salescaddy.ai/api/companies/hilton.com/products-in-use", payload);
Console.WriteLine(await res.Content.ReadAsStringAsync());

Sample response (trimmed):

[
  { "productId": "prod_office365", "inUse": true,  "confidence": 0.93 },
  { "productId": "prod_slack",     "inUse": false, "confidence": 0.21 }
]

Interpreting results

  • inUse — boolean: current belief whether the product is deployed at the company.
  • confidence — float 0.0–1.0: strength of evidence supporting the inUse value.
  • Results are independent per product ID you queried.

Tips & best practices

  • Idempotency: When retrying POST on transient errors (429/5xx), deduplicate by the exact (companyDomain, productIds[]) you sent.
  • Batch intelligently: Send up to dozens of product IDs at once; avoid hundreds/thousands in a single call.
  • Pair with discovery: Use Products — Search or Company Products (Paged) to collect candidate productIds first.
  • Gate workflow: Use a confidence threshold (e.g., >= 0.8) before triggering downstream actions.
  • Monitoring: Track match rates and average confidence by vendor/category to tune your pipeline.

Errors

CodeMeaningHow to fix
400Bad requestValidate JSON body and productIds array (non-empty strings).
401UnauthorizedProvide/refresh Bearer token.
403ForbiddenCheck client permissions.
404Not foundUnknown companyDomain.
413Payload too largeReduce number of productIds per request; send in smaller batches.
429Rate limit exceededRetry with exponential backoff; respect Retry-After.
500Internal server errorRetry later; contact support if persistent.