Jobs
Track background jobs. Jobs are submitted internally by other APIs when async execution is requested. Poll job status by ID or list all jobs.
List jobs
GET
/v1/jobsList background jobs with optional filters by type and status. Internal maintenance sweeps are never listed here, whatever the filters say; every job this returns is one a caller submitted.
Query parameters
job_typeJobType— Filter by job type. One value only, and it must be one of the job types listed in the JobType schema; an unknown value is rejected.statusstring— Filter by status: one or more ofpending,running,succeeded,partially_succeeded, andfailed, comma-separated (for examplestatus=pending,running). Omit to list every status. An unknown value is rejected.limitinteger— Max results (default 50)offsetinteger— Offset for pagination
Response 200 — List of jobs
jobsJobStatusResponse[] — requiredattemptsinteger— required. Number of execution attempts (including the current one).completed_atstring,nullcreated_atstring— requirederror_messagestring,null— Error or warning message. Set when status isfailedorpartially_succeeded.idstring— requiredjob_typeJobType— required. Background job types returned by the API.resultnull|JobResultstatusJobStatus— required. Current status of a background job. One of five values: -pending— queued, not started yet. -running— currently executing. -succeeded— finished, everything it was asked to do worked. -partially_succeeded— finished, but some of its work failed while the rest succeeded (for example some of the databases in a bulk creation). Readerror_messagefor what was skipped. -failed— did not finish; every retry was used up. Readerror_message.succeeded,partially_succeeded, andfailedare final — a job in one of those will not change again, so a poll loop can stop there.pendingandrunningmean keep polling. Treatpartially_succeededas its own outcome rather than folding it into either success or failure: the job produced aresult, but not for all of its work.
{
"jobs": [
{
"attempts": 0,
"completed_at": "2026-01-01T00:00:00Z",
"created_at": "2026-01-01T00:00:00Z",
"error_message": "string",
"id": "string",
"job_type": "noop",
"result": null,
"status": "pending"
}
]
}
Get job status
GET
/v1/jobs/{id}Get the current status of a background job. Poll this endpoint to track job progress.
Path parameters
idstring— required. Job ID
Response 200 — Job status
attemptsinteger— required. Number of execution attempts (including the current one).completed_atstring,nullcreated_atstring— requirederror_messagestring,null— Error or warning message. Set when status isfailedorpartially_succeeded.idstring— requiredjob_typeJobType— required. Background job types returned by the API.resultnull|JobResultstatusJobStatus— required. Current status of a background job. One of five values: -pending— queued, not started yet. -running— currently executing. -succeeded— finished, everything it was asked to do worked. -partially_succeeded— finished, but some of its work failed while the rest succeeded (for example some of the databases in a bulk creation). Readerror_messagefor what was skipped. -failed— did not finish; every retry was used up. Readerror_message.succeeded,partially_succeeded, andfailedare final — a job in one of those will not change again, so a poll loop can stop there.pendingandrunningmean keep polling. Treatpartially_succeededas its own outcome rather than folding it into either success or failure: the job produced aresult, but not for all of its work.
{
"attempts": 0,
"completed_at": "2026-01-01T00:00:00Z",
"created_at": "2026-01-01T00:00:00Z",
"error_message": "string",
"id": "string",
"job_type": "noop",
"result": null,
"status": "pending"
}
Errors
| Status | Description |
|---|---|
403 | The credential is limited to one database, and the job does not act on it |
404 | Job not found |