First-request guide for Check status of a data export job.
Export API guide
Check export job status
Poll an asynchronous job and handle accepted, finished, and failed outcomes.
On this page: QuickstartRequest anatomyResponse anatomyRules and constraintsEmpty resultsErrors and recoveryNext steps
Before you start
Authenticate
Send Authorization: Bearer <token> on every request and keep tokens out of logs and source control.
Common workflows
Quickstart
Request anatomy
| Part | Required | What to send |
|---|---|---|
| jobId | path | Identifier returned when the export job was created or listed. |
| Authorization | header | Bearer token with permission to read the job. |
Response anatomy
| Field | Type / state | How to use it |
|---|---|---|
| jobStatus | accepted / processing / finished / failed | Current asynchronous state. |
| resultsUrl | string | Download URL supplied when the job finishes; valid for 24 hours. |
| message | string | Failure detail when the job ends in failed status. |
Rules and constraints
- Use exponential backoff or a bounded polling interval; avoid tight loops.
- Treat finished and failed as terminal states.
- Download the finished URL within 24 hours and do not expose it to unauthorized clients.
Empty results
A status response without resultsUrl is expected while a job is accepted or processing. Wait and poll again; do not interpret that as an empty export.
Errors and recovery
Handle these responses explicitly so your integration can report an actionable cause and next step.
| Status | Meaning | Recovery |
|---|---|---|
| 401 | The bearer token is missing, expired, or invalid. | Refresh the token and retry the status request. |
| 403 | The caller cannot read this job. | Use a token with access to the tenant and export job. |
| 404 | The jobId does not exist or is not visible. | Check that the ID was stored exactly and belongs to the current tenant. |