GET /v1/contacts

Named decision-makers at companies in your list.

Licensed data, not observed in the crawl. Everything else Ansafi sells comes from HTTP Archive and you can re-run it yourself. Contacts cannot be checked that way, so every response carries its source and the date each address was last confirmed. Judge it on those dates, not on our word.

Coverage

9.5 million contacts across 231,197 companies, averaging 117 each where present. Coverage varies enormously by segment, so a single headline number would mislead in one direction or the other:

US mid-market — 11–500 employees77.7%
Mid-market, any country28.0%
Any company with firmographics24.1%
Every domain we profile9.0%

The source is strongest on US companies — 67.9% of US domains against 16.4% for the UK and 9.9% for Germany — so a US mid-market list carries named contacts on roughly four companies in five, and a European list will not. The count is shown on every plan, for the exact set you built, so you can see which you have before paying for it.

Resolve companies first

This endpoint takes domains, not a technology. Build the company set with /v1/companies, then pass its domains here — so list filtering lives in one place and the two endpoints can never disagree about who is in a list.

Example

curl "https://www.ansafi.com/api/v1/contacts?domain=example.com,acme.com&seniority=cxo,vp" \
  -H "Authorization: Bearer $ANSAFI_KEY"

Parameters

domain — required, comma separated, up to 100 per call · seniority — optional: cxo, vp, director, manager, staff · limit — default 200, maximum 1000. Results come back most senior first, then those with a business email.

Plan

Named contacts are included from Growth. On Free and Starter the endpoint returns 403 plan_required; counts remain available everywhere through /v1/companies and in the app.

Verify before you send

An address confirmed two years ago is not an address. Check business_email_last_seen, and run anything older through /v1/verify — it costs one call and protects your sending reputation.