Export a list to CSV
Check what an export would cost, then download the CSV, and read the headers that say what was charged.
An export is a CSV of records you have revealed. It uses your monthly export allowance for contacts you have not already exported this month. POST /market/exports/preflight tells you the cost first and charges nothing.
Scope
Both routes take the same optional body.
| Field | Type | Meaning |
|---|---|---|
list_id |
string | Export this list |
lead_ids |
array of strings | Export these records. An empty array means nothing, not everything |
columns |
array of strings | Column groups: business, contact, company, socials. Unknown names are ignored |
With no body the export is everything you have revealed, newest first. Only revealed records are included. Up to 25,000 rows per export. Three columns are always added: revealed_at, export_id and exported_by, which trace a file back to your account.
Preflight
POST /market/exports/preflight
{"list_id": "6650f0c2a1b2c3d4e5f60999"}
The reply includes requested, allowance, used, remaining, free (already exported this month), new, would_charge, would_export, would_skip, remaining_after, resets_at and blocked. It also carries asked_for, examined, not_revealed, not_examined, capped, columns, advisory: true and a verification summary of emails not yet checked. It is advice, not a reservation: another export in between can use the allowance.
Export
POST /market/exports
{"list_id": "6650f0c2a1b2c3d4e5f60999", "columns": ["business", "contact"]}
The reply is text/csv with a filename like adaptleads-exp_20261010090000.csv. Read these headers:
| Header | Meaning |
|---|---|
X-Export-Total |
Rows written |
X-Export-Charged |
New contacts charged against the allowance |
X-Export-Remaining |
Allowance left this month |
X-Export-Partial |
How many requested contacts were left out because the allowance ran out |
X-Export-Missing |
Rows charged but missing because the record has gone |
When the allowance is gone and nothing can be exported the status is 402 with export_limit_reached. Cells that start with =, +, - or @ are prefixed with an apostrophe so a spreadsheet does not run them.
POST /market/exports/verify-now queues the emails in the same scope that have not been checked yet. It returns a request id, and GET /market/exports/verify-now/{request_id} shows progress.