Skip to main content
Use the Company Search API to build account lists — one row per company, with the same filter object and the same workflow as Contact Search.

Choose the right surface

Both surfaces read the same underlying data. What differs is the grain of a row and therefore what a count means. Searching for “software companies with 200–500 employees” on the contact surface returns every person at those companies. On the company surface it returns the companies themselves, each with a count of how many contacts you’d get. Searches and downloads on both surfaces bill the same way — see Credits & Plans.

Understand the data model

Company rows are built from the contact data on the same schedule, so the two surfaces cannot disagree. Every company row carries the _ORG fields you already know, plus contact totals that are pre-aggregated for you: Because a company row has no person on it, person fields aren’t available here. Filtering on a _PER or _PAO column, or on a job title SmartSearch, returns a 422 naming the fix rather than an unhelpful “unknown column”.
Use HEADQUARTERS_* for company address. CITY_ORG, STATE_NAME_ORG and COUNTRY_NAME_ORG hold a location the company operates from — sometimes the head office, sometimes not. HEADQUARTERS_CITY_ORG, HEADQUARTERS_STATE_NAME_ORG and HEADQUARTERS_COUNTRY_NAME_ORG hold the headquarters. LOCATION_COUNT_ORG tells you how many locations a company lists.The non-HQ location fields will become arrays of multiple locations in a future release. Filter on HEADQUARTERS_* wherever you need a stable, single answer.

Count matching companies

Response:
Every figure is exact. There is no fast / exact split here — one row per company means the count is exact by construction. A mode field is accepted and ignored, so the same request body works against both surfaces. The contact totals answer the question that usually comes next: this many accounts, and this many reachable people at them.

Preview matching companies

Response:
Omit columns and you get a default set covering name, domain, website, size, revenue, country, and the two main contact totals. Same limits as contact preview: 1,000 by default, 50,000 maximum. With "includeScores": true on a SmartSearch filter, rows come back best-match first — which makes preview the fastest way to judge whether a description search or look-alike is aimed correctly.

Analyze a set of companies

POST /v2/contact/company/insights takes two of the four contact sections. reachability and freshness describe people, so they have no company analogue.

Match companies you already have

POST /v2/contact/company/enrich looks up companies by domain, by LinkedIn URL, or both in one request. Up to 10,000 keys per call, counted across both lists together after canonicalization and de-duplication — 6,000 domains plus 5,000 LinkedIn URLs is over the cap. Over it returns 400; split the input and merge the responses. See Limits.
Response:
Both key types are canonicalized before matching, and matches is keyed by the canonical form — so HTTPS://Northwind.com/ and northwind.com land on the same entry. RBID_ORG is always included, which is what you feed back into a look-alike search.

Find similar companies

POST /v2/contact/company/lookalike returns companies whose business resembles one you name, ranked by description similarity.
A similarity floor bounds the result, not a row count. The endpoint takes the same match / maxDistance pair as a look-alike filter leg — one or the other, never both — and defaults to similar when you send neither. limit is optional and uncapped: it pages what the floor already selected, so omitting it returns every company above the floor. The response echoes the limit, match, and minSimilarity it ran with, and a short list always means that is all there is. To build an account list with other filters applied — size, geography, industry — use a look-alike filter leg with POST /v2/contact/company/count and /preview instead. See SmartSearch.

Export a company list

Identical to the contact flow — start, poll, download — against /v2/contact/company/exports.
1

Start the export

2

Poll for status

3

Download the results

A completed export carries a downloadUrl valid for one hour.
Statuses, formats, compression, row caps, and cancellation all behave exactly as on the contact surface.

Browse company fields

The company catalog lists org-grain fields only, so anything it returns is safe to use in a company filter. For what each field contains and how it’s sourced, see the Person-Organization-Insight data dictionary.

Next steps