Submit an async CSV export
POST
/v1/exports
const url = 'https://api.vocapable.com/v1/exports';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"resource":"contacts","format":"csv","filters":{"additionalProperty":"example"},"columns":["example"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.vocapable.com/v1/exports \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "resource": "contacts", "format": "csv", "filters": { "additionalProperty": "example" }, "columns": [ "example" ] }'Queue one extraction and answer 202 with the poll contract on GET /exports/{id}.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
ExportCreateRequest
A submission. filters uses the query-filter grammar of vocapable_contracts.filters
({"campaign_id": "camp_…", "created_at.gte": "2026-08-03T00:00:00Z"}), validated
against the per-resource allowlist; columns empty means the resource’s default set.
object
resource
required
Resource
string
format
Format
string
filters
Filters
object
key
additional properties
string
columns
Columns
Array<string>
Responses
Section titled “Responses”Successful Response
Media typeapplication/json
ExportJob
A job as POST /v1/exports and GET /v1/exports/{id} return it.
columns is always the resolved list, never the empty request default: the set a job
was accepted with is frozen at submission so a later change to a resource’s defaults
cannot silently reshape a queued extraction.
object
id
required
Id
string
resource
required
Resource
string
format
Format
string
status
required
JobStatus
Lifecycle shared by the async import and export jobs.
string
filters
Filters
object
key
additional properties
string
columns
Columns
Array<string>
created_at
required
Created At
string format: date-time
updated_at
required
Updated At
string format: date-time
Example
{ "resource": "contacts", "format": "csv", "status": "queued"}Validation Error
Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationErrorobject
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example", "input": "example", "ctx": {} } ]}