When to use it
- Building a TAM list for outbound or ABM
- Seeding a warehouse, CRM import, or internal prospecting tool
- Validating ICP filters before spending on full pagination
Endpoint sequence
| Step | Endpoint | Cost |
|---|---|---|
| 1 | POST /company-search-count | Free |
| 2+ | POST /company-search | Per company returned — see GET /pricing |
Step 1 — Preview size (free)
total is larger than your budget or export cap, tighten filters before paginating.
Step 2 — Fetch pages
Step 3 — Paginate
- Default page size: 100 (max 200)
- Pass
pagination.tokenfrom the response into the next request - Keep the same
queryon every page - Tokens expire — do not pause indefinitely mid-list
Engineering notes
Filter rules
- At least one filter required
- Fields are AND’d;
includevalues within a field are OR’d industryandtypemust be exact LinkedIn labels — invalid values return400withaccepted_values- Prefer
domainovernamewhen you know the domain
Rate limits
Authenticated endpoints: 5 req/s per key. Add 200ms+ delay between pages in scripts. See Rate limits.Partitioning large lists
Iftotal exceeds your export cap, partition by geography, headcount band, or industry — run separate queries rather than paginating millions of rows.
Common mistakes
| Mistake | Fix |
|---|---|
Changing query between pages | Keep query identical; only update pagination.token |
Guessing industry values | Use accepted_values from a 400 response or test with count first |
Using /research for “500 SaaS companies” | Use this workflow — research rejects bulk enrichment |
Node.js pagination sketch
Next step
- Outbound pipeline — add people and emails
- Company search guide — full filter reference
- Skill:
huntr-icp-list-build— install