API Reference›Jobs
API Reference

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/jobs

List 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_type JobType — 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.
  • status string — Filter by status: one or more of pending, running, succeeded, partially_succeeded, and failed, comma-separated (for example status=pending,running). Omit to list every status. An unknown value is rejected.
  • limit integer — Max results (default 50)
  • offset integer — Offset for pagination

Response 200 — List of jobs

  • jobs JobStatusResponse[] — required
    • attempts integer — required. Number of execution attempts (including the current one).
    • completed_at string,null
    • created_at string — required
    • error_message string,null — Error or warning message. Set when status is failed or partially_succeeded.
    • id string — required
    • job_type JobType — required. Background job types returned by the API.
    • result null | JobResult
    • status JobStatus — 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). Read error_message for what was skipped. - failed — did not finish; every retry was used up. Read error_message. succeeded, partially_succeeded, and failed are final — a job in one of those will not change again, so a poll loop can stop there. pending and running mean keep polling. Treat partially_succeeded as its own outcome rather than folding it into either success or failure: the job produced a result, 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

  • id string — required. Job ID

Response 200 — Job status

  • attempts integer — required. Number of execution attempts (including the current one).
  • completed_at string,null
  • created_at string — required
  • error_message string,null — Error or warning message. Set when status is failed or partially_succeeded.
  • id string — required
  • job_type JobType — required. Background job types returned by the API.
  • result null | JobResult
  • status JobStatus — 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). Read error_message for what was skipped. - failed — did not finish; every retry was used up. Read error_message. succeeded, partially_succeeded, and failed are final — a job in one of those will not change again, so a poll loop can stop there. pending and running mean keep polling. Treat partially_succeeded as its own outcome rather than folding it into either success or failure: the job produced a result, 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

StatusDescription
403The credential is limited to one database, and the job does not act on it
404Job not found