Skip to main content
Every person you export becomes a lead with a stable lead_id. Leads stay available: you can download them again, filter them and pull them into other tools at no cost.

Three ways to get leads

One export

GET /api/v1/exports/{id}?format=csv: exactly the people one export added.

Only what's new

GET /api/v1/leads?since=last: everyone you haven’t pulled yet.

Since a date

GET /api/v1/leads?since=2026-10-01: everyone exported since then.

Pull only what’s new

since=last (the default) returns leads you haven’t pulled yet and moves a cursor past them, so a daily job never sees the same person twice:
  • Each consumer has its own cursor. Pass consumer=hubspot and consumer=dialler and both get every lead once. The default consumer is default.
  • A lane filter keeps its own cursor too: ?since=last&lane=L1.
  • Up to limit leads per call (1 to 5,000, default 1,000). If you get exactly limit, call again for the rest.
The cursor moves when the response is sent. If your job fails before it saves the leads, re-download with since=<date> rather than since=last.

Re-download by date

since=YYYY-MM-DD returns everyone exported on or after that date, oldest first, without touching any cursor. Narrow it with: When there are more leads, JSON responses include next_page, and CSV responses an X-Next-Page header; pass it back as page.

JSON or CSV

JSON is the default. Add format=csv for a CSV with a header row. CSV responses also carry X-Lead-Count and X-Has-More headers. See Lead fields for every field and column.

Seen before

seen_before: true means you exported this person in an earlier billing period too. They’re billed again in the new period because their intent is new; use the flag to update the record in your CRM rather than create a duplicate.

Suppressed leads

If someone asks to be removed after you’ve exported them, their lead shows suppressed: true and every contact field is empty, including in re-downloads. Delete them from your own systems within 10 business days. See Suppressions.