List jobs
Your jobs, newest first, one page at a time. Every filter is optional and they combine; a missing one filters nothing. A row carries the item counts and what ran, not items — read one job for those.
To follow a job you just submitted, read it by id — GET /api/v1/jobs/{id}?wait= holds the answer until it settles — or register a webhook. Polling this list is the slow way to watch one job.
USE THIS WHEN:
- Finding jobs by status, type, op, preset or date — last week's failures, say
- Reading every attempt of one job (rootJobId)
DO NOT USE WHEN:
- You have the job's id → GET /api/v1/jobs/{id}
- You only need how many → GET /api/v1/jobs/counts
Request
- Base URL: https://api.imagestep.dev
- URL: https://api.imagestep.dev/api/v1/jobs
- Auth: API key in header Authorization
Query parameters
Page number (0-indexed). Leave it out when you send cursor
Items per page (max 100; out of range is clamped)
The meta.nextCursor of the previous page: the rows after it, read without counting — the way to walk a long listing. Send it unchanged, with the same filters; it cannot be combined with page
Only jobs in this status (either case); any other value is 400 invalid_param
Only jobs of this type (either case); any other value is 400 invalid_param
Only jobs that ran this preset: a slug or id for every version of it, or slug@version for the one that was pinned. A preset that is not yours, or a version that does not exist, is 404 preset_not_found. Jobs that ran inline steps or a bare op carry no preset and never match.
Only jobs submitted as this op — one entry of GET /api/v1/ops. A job submitted as a raw type or a preset carries no op and never matches.
Every attempt of one job: the ones whose rootJobId is this — the first attempt's id, which is its own rootJobId too, so it is in the page. Ordered newest first like any other page, so the latest attempt is first.
Submitted at or after this. Epoch millis, or an ISO-8601 date or instant read as UTC: 2026-09-14, 2026-09-14T08:30:00Z
Submitted at or before this. Same forms as createdFrom; a bare date includes the whole of that day — which is also how to freeze the window a walk by page number pages through, since jobs you submit meanwhile would shift its pages. A walk by cursor is not shifted.
Response
One page of rows, with meta
Changes
No recorded changes to this operation across all 1 revision of this API.