Examples use fictional data. Every company, person, address and count in them is invented, and their domains use the reserved .example TLD.
Platform
Exports
Hand a filter set to a background job and collect a file. The right way to move more than a few thousand rows.
POST
/v1/exportsCreate an export
Queues the job and reserves the credits. Rejected with 402 before any work starts if the filters would cost more than the workspace holds.
API key or session1 credit per row written
Body parameters
| Field | Type | Description |
|---|---|---|
| kindreq | string | companies, people, leads or places. |
| filtersreq | SearchFilters | Same filter object as search. For leads, campaign_id belongs here. |
| format | string | csv (default), xlsx or json. |
curl -X POST "https://beamro.com/api/v1/exports" \
-H "x-api-key: $SALVO_API_KEY" \
-H "content-type: application/json" \
-d '{
"kind": "people",
"filters": {
"segments": [
"event-venues"
],
"countries": [
"US"
],
"hasEmail": true,
"emailStatus": [
"valid"
]
},
"format": "csv"
}'200 response
{
"id": "exp_7v2k9m4x1n6q0b3t8w",
"org_id": "org_4k1p8w2ne6ts0ybc7j",
"kind": "people",
"status": "queued",
"format": "csv",
"rows": 0,
"file_url": null,
"filters": {
"segments": [
"event-venues"
],
"countries": [
"US"
],
"hasEmail": true,
"emailStatus": [
"valid"
]
},
"created_at": "2026-08-31T12:55:02.000Z"
}GET
/v1/exports/{export_id}Retrieve an export
Poll until status is done, then download file_url. Links are signed and expire after 24 hours; re-fetch the job for a fresh one.
API key or sessionFree
Path parameters
| Field | Type | Description |
|---|---|---|
| export_idreq | string | Export job identifier. |
curl "https://beamro.com/api/v1/exports/exp_7v2k9m4x1n6q0b3t8w" \
-H "x-api-key: $SALVO_API_KEY"200 response
{
"id": "exp_7v2k9m4x1n6q0b3t8w",
"org_id": "org_4k1p8w2ne6ts0ybc7j",
"kind": "people",
"status": "done",
"format": "csv",
"rows": 238,
"file_url": "https://files.salvo.example/exports/exp_7v2k9m4x1n6q0b3t8w.csv?sig=…",
"filters": {
"segments": [
"event-venues"
],
"countries": [
"US"
],
"hasEmail": true,
"emailStatus": [
"valid"
]
},
"created_at": "2026-08-31T12:55:02.000Z"
}Subscribe to
export.ready instead of polling — the payload carries the same signed link.GET
/v1/exportsList exports
Recent jobs, newest first, with row counts and download links for the ones that finished.
API key or sessionFree
curl "https://beamro.com/api/v1/exports" \
-H "x-api-key: $SALVO_API_KEY"200 response
{
"rows": [
{
"id": "exp_7v2k9m4x1n6q0b3t8w",
"org_id": "org_4k1p8w2ne6ts0ybc7j",
"kind": "people",
"status": "done",
"format": "csv",
"rows": 238,
"file_url": "https://files.salvo.example/exports/exp_7v2k9m4x1n6q0b3t8w.csv?sig=…",
"filters": {
"segments": [
"event-venues"
]
},
"created_at": "2026-08-31T12:55:02.000Z"
},
{
"id": "exp_0n5b8k2v7m1q4x3t6w",
"org_id": "org_4k1p8w2ne6ts0ybc7j",
"kind": "leads",
"status": "running",
"format": "xlsx",
"rows": 0,
"file_url": null,
"filters": {},
"created_at": "2026-08-31T13:01:44.000Z"
}
]
}