Show bulk job status

Poll a background bulk job until status is done or failed. Requires object_id and object_name from the 202 response of a queuing operation.

When to poll

Any operation that queues background work and returns 202 Accepted plus a bulk_job object requires polling until the job reaches a terminal state.

Queuing operationWhat it doesJob type value
Bulk import contacts (JSON)Upserts up to 100 contacts in the backgroundjson_bulk_contacts
Bulk import contacts (CSV)Imports a spreadsheet in chunked background jobscsv_import_contacts
Bulk delete contacts (JSON)Hard-deletes up to 2,000 contacts by uid in the backgroundjson_bulk_delete_contacts
Bulk delete conversions (JSON)Scrubs PII from up to 2,000 conversions by uid in the background (rows may be kept for aggregate stats)json_bulk_delete_conversions
Send template emailSends one template email to a subscribed contact in the backgroundjson_send_template_emails

Single-contact operations (create or update contact, update contact status, delete contact) run synchronously and do not use this API.

Typical integration flow

  1. Call one of the queuing operations above.
  2. On 202, read bulk_job.object_id and bulk_job.object_name from the response.
  3. Call Show bulk job status with the same identifiers on an interval until status is done or failed.
  4. Interpret progress and errors:
    • Import jobs: created, updated, failed, skipped, percent, capped errors.
    • Delete jobs: deleted, not_found, failed, percent, capped errors (created / updated stay zero).

Concurrency: Up to 10 async jobs per account may be new or running at once. Queue attempts beyond that return 409 Conflict.

Account lock: If the account is in a processing state, queueing operations return 423 Locked before a job is created.

Query Params
integer
required
10000000000 to 99999999999
string
required
length ≤ 255
Responses

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json