Skip to content

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/exports

Create 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

FieldTypeDescription
kindreqstringcompanies, people, leads or places.
filtersreqSearchFiltersSame filter object as search. For leads, campaign_id belongs here.
formatstringcsv (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

FieldTypeDescription
export_idreqstringExport 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/exports

List 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"
    }
  ]
}