The sync endpoints are perfect up to a few hundred records. Past that, use batch jobs: up to 1,000 items per job — profiles, companies and posts, freely mixed — processed in parallel on our side, results pushed to your webhook or fetched by polling.
Submit a job
Submission is free — each item bills its entity’s normal credit cost as it resolves. The Idempotency-Key header makes retried submissions safe: same key, same job, no duplicates.
Get results
Webhook (recommended): a batch.completed event fires when the job finishes, carrying the summary and a results URL. Signature verification in Webhooks.
Polling: GET /v1/batch/{job_id} is free, returns per-item status while processing, and the full result set when done:
Failures are itemized with error types and cost nothing — Pay-on-success applies per item.
Sizing a big run
Enriching 1M profiles at the 1M tier:
Chunk your URL list, submit with idempotency keys derived from chunk numbers, and drive everything off batch.completed webhooks. A dead-simple loop — submit next chunk on each completion — saturates your concurrency without ever hitting a rate limit.
Keep it fresh afterwards
A one-time enrichment starts decaying immediately — people change jobs weekly. Put Signals on the records that matter and get diffs pushed to you instead of re-running the batch.