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

# GET /assets/jobs

`GET /assets/jobs`

List the generation jobs you started through the API or MCP, most recent first. Web-app jobs are not included. This is a free read-only lookup (no credits, no generation). Filter with a comma-separated status list; limit defaults to 50 and is capped at 100. Requires an API key (user scope).

## Query parameters

- `status` string
- `limit` integer

## Response `200`

Success

- PublicJob[]
  - `id` string, required
  - `task_type` string, required — The public operationId that created this job (e.g. createImage). Determines the shape of `result`: it is exactly the 200 response body documented for that operation.
  - `status` 'queued' | 'running' | 'succeeded' | 'failed' | 'canceled', required
  - `request_id` string
  - `created_at` integer, required — Unix ms
  - `finished_at` integer
  - `credits_charged` number, float — Credits this job cost you. Charged at enqueue; reported as 0 once a job fails or is canceled, since the charge is refunded.
  - `result` object — Present only when status is succeeded. Same shape as the synchronous response of the operation named by task_type.
  - `error` PublicJobError
    - `status` integer
    - `message` string
  - `poll_after_ms` integer — Present while the job is queued or running: wait at least this many milliseconds before polling again. Prefer GET /assets/jobs/{id}?wait=30 (long-poll) over tight loops.

## Other responses

- `400` — Error

## Changes

- **2026-08-30** `a8a0b85d1839` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/ludo/apis/ludo-ai-api/changes/assets/jobs/get.md)

---

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