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

# List jobs

`GET /v2/jobs`

## Request

- Base URL: `https://api.apiframe.ai`
- URL: `https://api.apiframe.ai/v2/jobs`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Paginated list of generation jobs. Defaults to the caller's own jobs; admins can pass `scope=team` to see every job in the team. Cursor pagination keyed on `(createdAt desc, id desc)`.

## Query parameters

- `status` 'QUEUED' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELLED'
- `model` string
- `limit` integer
- `cursor` string
- `scope` 'user' | 'team'
- `search` string, uuid
- `include_models` 'true' | 'false'

## Response `200`

A page of jobs.

- JobList: Paginated list of jobs scoped to the caller (or to the whole team for admins).
  - `jobs` object[], required
    - `id` string, uuid, required
    - `status` 'QUEUED' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELLED', required
    - `model` string, required
    - `progress` integer, nullable, required
    - `result` unknown
    - `error` string, nullable, required
    - `creditCost` integer, nullable, required
    - `webhookStatus` 'pending' | 'delivered' | 'failed' | 'null', nullable, required
    - `createdAt` string, date-time, required
    - `completedAt` string, date-time, nullable, required
    - `expired` boolean, required
  - `nextCursor` string, nullable, required
  - `hasMore` boolean, required
  - `models` string[]

## Other responses

- `400`: Invalid query parameters or cursor.
- `401`: Authentication failed (missing / invalid API key).
- `403`: Non-admin tried to use `scope=team`.
- `429`: Rate limit exceeded. Retry after the `Retry-After` seconds.

---

[API](https://skmtc.dev/apiframe/apis/apiframe-api.md) · [All operations](https://skmtc.dev/apiframe/apis/apiframe-api/llms.txt) · [OpenAPI document](https://skmtc.dev/apiframe/apis/apiframe-api/revisions/ba1a4c26c86a?raw)
