Skip to content

Database search

Start a CSV export

Optional body field: unmask: true fills missing contact details up to your monthly unmask budget. The default exports rows as stored. Status includes rows_unmasked and rows_masked_by_budget. Send the same option to POST /api/v1/contacts/search/count for unmask_preview: { rows, cached, new_unmasks, budget_remaining } without spending budget. MCP export_contacts and count_contacts accept this option too.

POST/api/v1/contacts/search/export

Start an async export of search matches to CSV on S3. Same filters as POST /api/v1/contacts/search (no offset). Returns immediately with export_id (HTTP 202); poll GET /api/v1/contacts/search/export/{export_id} until job_status is completed, then use export_url. Free plan: capped at min(creditsRemaining, total_available). Unlimited: subject to daily (500k) and monthly (6M) export caps. Optional max_rows (1-50,000) caps how many rows this export writes; omit to export all matches up to plan/credit/50k limits. 1 credit per row exported.

Authorization

HeaderTypeRequiredDescription
X-API-KeystringrequiredYour API key, for example lb_live_YOUR_API_KEY. You can send the same key as Authorization: Bearer instead.

Body parameters

NameTypeRequiredDefaultDescription
filtersobjectoptional
max_per_companynumberoptional
max_rowsnumberoptional
confirmedbooleanoptional

Response

ok boolean
True when the request succeeded.
export_id string
The identifier of the export job.
job_status string
One of queued, running, completed or failed.
rows_available number
The number of rows that matched the filters.
export_row_cap number
The row cap applied to this export.
rows_capped_by_credits boolean
True when the credit balance limited the export.
message string
A plain sentence that explains the result.