---
title: "List jobs"
method: GET
path: "/jobs"
tags: ["jobs"]
---

# List jobs

`GET /jobs`

## Request

- Base URL: `https://api.pscrpt.com/v1`
- URL: `https://api.pscrpt.com/v1/jobs`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://api.pscrpt.com/oauth/authorize`
    - Token URL: `https://api.pscrpt.com/oauth/token`

## Query parameters

- `page[limit]` integer
- `page[after]` string
- `filter[kind]` string
- `filter[kind][in]` string[]
- `filter[status]` 'queued' | 'running' | 'succeeded' | 'partially_succeeded' | 'failed' | 'cancelled'
- `filter[status][in]` string[]
- `filter[created_at][gt]` string, date-time
- `filter[created_at][gte]` string, date-time
- `filter[created_at][lt]` string, date-time
- `filter[created_at][lte]` string, date-time
- `sort` string

## Headers

- `Postscript-Version` string, date

## Response `200`

A page of jobs.

- JobListEnvelope
  - `data` Job[], required
    - `completed_at` string, date-time
    - `counts` object, required
      - `failed` integer
      - `processed` integer
      - `succeeded` integer
      - `total` integer, nullable: Null until known.
    - `created_at` string, date-time, required
    - `domain` string, required: Owning domain; job authorization uses that domain's scope.
    - `error_sample` JobError[], required: Up to ten per-item failures. The full list can be obtained by calling [List a job's errors](/reference#tag/jobs/GET/jobs/{job_id}/errors).
      - `client_reference` string, nullable
      - `code` string, required
      - `index` integer, nullable: Zero-based source row/item position when applicable.
      - `message` string, required
      - `param` string, nullable
    - `id` string, required
    - `kind` string, required: Namespaced job kind, e.g. `profiles.bulk_tag`.
    - `object` 'job', required
    - `progress` number, nullable
    - `result` object, nullable: Kind-specific summary of the finished job, or `null` when the kind reports none.
    - `retried_from_job_id` string, nullable
    - `status` 'queued' | 'running' | 'succeeded' | 'partially_succeeded' | 'failed' | 'cancelled', required
    - `updated_at` string, date-time, required
  - `meta` Meta, required
    - `as_of` string, date-time
    - `livemode` boolean, required
    - `page` PageMeta
      - `limit` integer, required
      - `next_cursor` string, nullable, required: Pass as `page[after]`. Null on the last page.
    - `request_id` string, required
    - `resolved_from` string: The merged-away profile ID the request addressed; `data` holds the survivor.
    - `revision` string, date, required

## Other responses

- `400`: Malformed input, an unknown parameter, an unsupported filter, sort, or expand, or a mistyped ID.
- `401`: Missing or invalid API key.
- `403`: The key lacks the required scope.
- `429`: Rate limit exceeded.
- `500`: Internal error.
- `502`: Upstream provider failure.
- `503`: Temporarily unavailable.

## Changes

- **2026-10-26** `6d749f81e106`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/pscrpt/apis/postscript-native-api-beta/changes/jobs/get.md)

---

[API](https://skmtc.dev/pscrpt/apis/postscript-native-api-beta.md) - [All operations](https://skmtc.dev/pscrpt/apis/postscript-native-api-beta/llms.txt) - [OpenAPI document](https://skmtc.dev/pscrpt/apis/postscript-native-api-beta/revisions/882458ee1f36?raw)
