Create export job (Account, Opportunity, Person, Activity, Campaign, and Creative) — Guide

First-request guide for Create export job (Account, Opportunity, Person, Activity, Campaign, and Creative).

Export API guide

Create an export job

Start an asynchronous export with an explicit entity, field selection, and output format.

POST /v1/job   •   Authentication: Bearer token

Before you start

Authenticate

Send Authorization: Bearer <token> on every request and keep tokens out of logs and source control.

Follow the workflow

Submit the request, save jobId, poll status, then download the result.

Use the code below

The cURL and JSON examples are copy-ready starting points. Replace IDs, dates, and tokens with values from your tenant.

Common workflows

Workflow 1

Call GET /v1/fields?entityType=account first and choose valid field tokens.

Workflow 2

Submit the job and persist jobId; accepted is not export data.

Workflow 3

Poll GET /v1/job/{jobId} until the status is finished or failed.

Quickstart

Step 1 — Send the request

curl --request POST \
--url https://uapi.demandbase.com/data/export/v1/job \
--header "Authorization: Bearer $DB_API_KEY" \
--header "Content-Type: application/json" \
--data '{"entityType":"account","jobName":"AccountExportJob","fields":["{Account}.name","{Account}.industry"],"format":"CSV"}'

Request body

{
"entityType": "account",
"jobName": "AccountExportJob",
"fields": [
"{Account}.name",
"{Account}.industry"
],
"format": "CSV"
}

Step 2 — Read the response

{
"jobName": "AccountExportJob",
"jobStatus": "accepted",
"entityType": "account",
"jobId": "dcb34525-2baa-4f54-8c11-9e6175ecbc74",
"createdAt": "2026-03-24T16:43:57.378Z"
}

Request anatomy

PartRequiredWhat to send
entityTyperequiredExport object to generate.
jobNamerequiredClient-readable name for the job.
fieldsrequiredArray of field tokens from the fields endpoint.
fromDate / toDateconditionalRequired for activity and other date-bounded variants.
formatoptionalCSV or JSON.

Response anatomy

FieldType / stateHow to use it
jobIdstringIdentifier used to check status.
jobStatusacceptedThe asynchronous job has been queued.
entityTypestringEntity selected for the job.
createdAttimestampCreation time in ISO-8601 format.

Rules and constraints

  • The fields array is required and must contain valid names for the selected entity.
  • Activity exports require fromDate and toDate; campaign and creative ad reports may require adReportType and source.
  • Buying-group and source-account variants have additional conditional properties.
  • Store jobId and do not assume an accepted job has a downloadable result.

Empty results

A successful submission can still produce a file with no rows. Treat an empty export as valid, then verify filters, date range, entity access, and field selection.

Errors and recovery

Handle these responses explicitly so your integration can report an actionable cause and next step.

StatusMeaningRecovery
400The job body fails validation.Check required fields, conditional properties, enum values, and date format.
401The bearer token is missing, expired, or invalid.Refresh the token and retry once authenticated.
403The tenant cannot create this export.Confirm export permissions and entity access.
429The API rate limit was exceeded.Back off, honor Retry-After when supplied, and retry safely.

Next steps