Skip to Content
CompanySpec
Recipes

Enrich your CRM

Add firmographics, ICP and technologies to accounts you already have.

Send up to 100 companies per request to POST /companies/enrich. Use domains when you have them.

curl https://api.companyspec.com/v1/companies/enrich \
  -H "Authorization: Bearer $COMPANYSPEC_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "companies": ["stripe.com", "linear.app", "notarealdomain.xyz"],
    "show_icp": true
  }'

Companies we can't find are listed in not_found and aren't charged:

{
  "companies": [
    { "domain": "stripe.com", "name": "Stripe", "icp": "..." },
    { "domain": "linear.app", "name": "Linear", "icp": "..." }
  ],
  "not_found": ["notarealdomain.xyz"],
  "usage": { "charged": { "lookups": 2, "discoveries": 0 }, "already_paid": 0, "remaining": { "lookups": 9748, "discoveries": 2000 } }
}

Only have names?

Resolve them first with GET /companies/resolve (free), passing country or linkedin_url when you have them, then enrich by domain:

import os, requests

API = "https://api.companyspec.com/v1"
H = {"Authorization": f"Bearer {os.environ['COMPANYSPEC_API_KEY']}"}

domains, unsure = [], []
for name, country in [("Mercury", "US"), ("Acme Dental", "US")]:
    r = requests.get(f"{API}/companies/resolve", params={"name": name, "country": country}, headers=H).json()
    m = r["match"]
    if m and m["confidence"] >= 0.8:
        domains.append(m["domain"])
    else:
        unsure.append((name, r))  # review these by hand

enriched = requests.post(f"{API}/companies/enrich", json={"companies": domains, "show_icp": True}, headers=H).json()

Store the id from each result in your CRM so later lookups don't depend on the domain.

Re-running every month

Each company costs 1 lookup per billing month no matter how many times you request it, so it's safe to retry failed batches or enrich the same account from several workflows.

On this page