Reference
API and contract changelog
Route, limit, and usage-policy changes that affect public integrations.
2026-08-20 public surface
The public API is now three datasets and nothing else: people, jobs, and companies. Each is searched with a Query Spec tree and read through its own detail route, and the system routes report version and key status. Everything documented today is on the API reference.
- Area
- Datasets
- Change
- People, jobs, and companies. Anything outside those three is withdrawn and undocumented
- Area
- Structured search
- Change
- The Query Spec tree replaced the earlier flat filter parameters on every dataset
- Area
- Paging
- Change
- Search responses carry a next cursor; pass it back as after
- Area
- Detail batches
- Change
- Entity detail accepts up to 100 IDs per request
- Area
- Search window
- Change
- Search returns up to 1000 IDs per page
- Area
- Contact enrichment
- Change
- Announced, not open. No endpoint, request shape, or price is published
- Area
- Skills
- Change
- Four published skills, one per dataset plus a coordinator
Withdrawn routes
A route that is not documented on the API reference is not part of the public surface. Withdrawn routes are not listed here by name and have no replacement mapping: rewrite the call against the dataset page you need. The historical /docs/api/update-log URL still redirects here so existing bookmarks resolve.
Query Spec is the structured interface
One grammar covers all three datasets, so what changes between them is the field list rather than the request shape. The full grammar, including composition, operators, relative dates, same-record scopes, and cursor paging, is on the Query Spec page.
- Composers all, any, and not compose leaves into a boolean tree.
- Operators are eq, in, match, gte, lte, and exists, one per leaf.
- Date fields accept relative values such as now-30d, resolved server-side.
- People carry same-record scopes; jobs and companies are one document each and carry none.
- A refused query is translated before it is charged, so it costs nothing.
Usage contract
- Query Spec search on any dataset settles by returned ID count: ceil(returned IDs / 25).
- Natural-language people search adds a 5 Credit base to that.
- Profile, job, and company detail settle by found record count: ceil(found records / 5).
- Paging spends per page, so 1000 IDs cost the same in one page as in four.
- Credit balances use additive active buckets with nearest-expiry-first spend order.
Integration checklist
- Treat every search response as IDs, and fetch records through the detail route.
- Keep one operator per leaf, and split a bounded range into two leaves.
- Keep detail batches at 100 IDs or fewer.
- Stop paging when next is absent rather than when a page comes back short.
- Do not treat browser billing redirects as a Credit grant.