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.