Skip to main content
POST
Start Export

Credits and plans

PAYG is Pay-as-you-go. AYCE is All-you-can-eat.
  • PAYG prices add together. Email/mobile charges apply only to populated details selected by reveal.
  • AYCE includes unlimited contact retrieval. The 1,000,000-row limit per export and rate limits still apply.
Export runs in the background and returns an export ID, followed by a download link when the file is ready. Set maxRows to retrieve a subset or to cap a larger pull.

Choose Export or another endpoint

Before starting, use Count, View, and Estimate, then confirm the hold fits your balance. The examples use REVENUEBASE_API_KEY for your API key.

Start a bounded export

This exports up to 100 US VPs with email selected and mobile excluded. It is the same request body as the Estimate example.
Running this POST spends credits on PAYG when the export completes. Omitting reveal, or sending null, selects both email and mobile. Choosing fewer columns does not remove reveal charges.
Save the returned exportId as REVENUEBASE_EXPORT_ID for the status and cancellation calls below. For a metered account, this example reserves up to 200 credits. Read the X-Credits-Held response header. Acceptance is not completion, and held credits are not the final charge.

Poll the existing export

Set EXPORT_ID to the identifier returned by the start request. Poll every 5–10 seconds initially; back off for longer jobs and respect X-RateLimit-Reset after a 429. Status requests cost 0 credits.
Read the response returned by your own call. Job IDs, timestamps, counts, and download links are specific to that request. rowCount is the number actually written. The completed status response does not include a final charged-credit field. The credit rules below explain how that amount is calculated.

Download the file

Set DOWNLOAD_URL to the signed URL from the completed response. The signed URL authorizes the download; no API-key header is required. Treat it as a credential and share it only with intended recipients.
The link expires after expiresInSeconds (normally one hour). Poll the same export again for a fresh link. Downloading that completed file again does not start another charged export. Starting a new POST can charge again, even for the same filter and records.

Credits and options

Final PAYG charge: returned contact rows + populated revealed emails + 10 × populated revealed mobiles + 10 × SmartSearch filter nodes. For 100 contacts with 80 emails, reveal: ["email"] costs 180 credits without SmartSearch. With both details selected, 20 mobiles, and one SmartSearch node, the charge is 390 credits. A successful empty export has no row/detail charge but can still incur the SmartSearch amount. maxRows limits quantity; it does not identify particular chosen rows or provide pagination. Use Enrich for selected IDs. An omitted/null filter means the entire dataset; an omitted row cap uses the service maximum. Send a positive cap and explicit reveal choices to bound spend.

Cancel or recover

To cancel an unfinished job, use the existing export ID:
Cancellation requests add no credit charge. Keep polling until CANCELLED; the hold is released when the unfinished job ends. Cancelling an already completed job returns its terminal state and does not refund the completed export.
Do not automatically repeat a start POST after an ambiguous timeout: the original job may have been accepted. When you have an export ID, check its status. The API does not promise that repeating a customer start POST will return the same job or avoid another charge.

Next step

Use Export Status to follow the job, or Cancel Export to stop it before completion. For another audience, begin with Count.

Authorizations

X-Key
string
header
required

Body

application/json
filter
GroupNode · object | null

Audience filter, shared with Count and View. Omitted/null selects the entire dataset. Each semantic/lookalike node adds 10 credits on a paid export.

columns
string[] | null

Fields written to the file. Omitted/null uses the default set; ["*"] requests all. Removing email/mobile columns does not remove reveal charges.

format
string
default:json

File format: csv, json (default), or parquet. Does not change unit credit prices.

compression
string
default:gz

gz (default), zip, or none. Does not change unit credit prices.

maxRows
integer | null
Caps rows and credit hold

Positive row cap, up to 1,000,000. With an explicit cap, the hold assumes every selected contact detail is populated on every capped row. Omitted/null or 0 uses the maximum; 0 does not mean zero rows.

filename
string | null

Optional base filename: 1–150 letters, digits, spaces, or . _ ( ) -. The API adds the selected file/compression extension.

reveal
string[] | null
Changes credit cost

Buy email (+1 per populated value), mobile (+10), both, or neither ([]), in addition to 1 per contact row. Omitted/null buys both. Columns do not change these charges. Unselected requested fields become availability booleans.

Response

Export accepted. Save exportId and poll the existing job.