API
Export leads
The bulk path — push leads to Close, GoHighLevel, Sheets, or a downloadable file.
POST/api/v1/exports
The bulk path. A single JSON response can’t carry tens of thousands of leads (see Limits), so reading pages at 2,500 and volume goes through an export: a file destination writes the whole set and hands back a download link, and a CRM destination pushes the rows straight in.
Export costs nothing — you already paid for these leads.
| destination | Required. close | ghl | google_sheets | csv | xlsx | json. |
| search_id | Export one search's leads. |
| all | Or set true to export the whole library. |
| filters | With all=true: narrow the library using the same filter rows the leads endpoint accepts. |
| spreadsheet_id | google_sheets only: append to an existing LeadMarina-created sheet. |
curl -X POST https://leadmarina.com/api/v1/exports \
-H "Authorization: Bearer lm_live_xxxx" \
-H "Content-Type: application/json" \
-d '{ "destination": "csv", "all": true }'{
"exported": 12480,
"outcome": "CSV ready to download",
"download_url": "https://…",
"file": "leadmarina-all-leads-2026-08-05.csv"
}Per-call limits differ by destination — 50,000 for CSV/XLSX, 25,000 for JSON, 5,000 for Google Sheets, and 1,000 for Close or GoHighLevel. The CRM figure is low because those APIs take one call per lead, so it’s a time limit rather than a size one; for a large push, export CSV and import the file.
If more leads match than the limit allows, the export still runs and the response adds truncated: true with the limit that applied — you will never be handed part of a list and told it was complete.
Leads exported before are updated in place, matched on their Google CID, so re-exporting never duplicates rows and never overwrites notes or columns you added yourself.
