Export Bulk Data with the Jobs API

Export data in bulk: for example, create any task via type, track it by job_id, fetch result when ready.

/v1
Method Path Purpose
POST /v1/jobs Create job
GET /v1/jobs/{job_id} Get status (polling)
GET /v1/jobs/{job_id}/result Fetch final result

Create job

POST /v1/jobs
202
Authorization: Bearer YOUR_TOKEN
Idempotency-Key: <uuid>
Content-Type: application/json
Idempotency-Key prevents duplicates when Zapier/Make retries.
{
  "type": "contact.decision_maker.linkedin",
  "input": { "company": "OpenAI", "domain": "openai.com" },
  "callback_url": "https://hooks.zapier.com/hooks/catch/123/abc",
  "metadata": { "source": "zapier", "external_id": "row_9481" }
}
{
  "job_id": "job_01HTXXXX",
  "status": "queued",
  "created_at": "2025-12-29T11:30:00Z",
  "poll_url": "/v1/jobs/job_01HTXXXX",
  "result_url": "/v1/jobs/job_01HTXXXX/result"
}

Poll status

GET /v1/jobs/{job_id}
200
{
  "job_id": "job_01HTXXXX",
  "status": "running",
  "progress": 35,
  "retry_after": 5,
  "error": null
}
Use retry_after seconds between polls to reduce operations.
  • queued → waiting
  • running → processing
  • succeeded → result ready
  • failed → see error

Get result

GET /v1/jobs/{job_id}/result
200
{
  "job_id": "job_01HTXXXX",
  "status": "succeeded",
  "data": {
    "contacts": [
      { "name": "John Doe", "title": "CMO", "email": "john@openai.com" }
    ]
  }
}
If not ready, return 409 with error code NOT_READY.

Job types

type → what job does. (We’ll fill real list from your Postman collection next.)
Mapping
type Description
contact.decision_maker.linkedin Find decision maker by LinkedIn/company signals
apollo.search Run Apollo search and return results
linkedin.post Create LinkedIn post (if supported)
5,000+
sales teams
4.8/5
G2 & Capterra
200M+
leads exported
65%
avg email find rate

Start exporting leads today

Free plan available. No credit card required. Export leads with verified emails and phones.