List recent jobs for the current org.
GET /v1/jobs
Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Filter by worker class name. Unknown values yield 422.
Filter by lifecycle status. Repeatable.
Filter by task_data.integration_type (e.g. Bugcrowd).
Only return jobs created within the last N days. Defaults to 7, max 30.
Sort key for [list]. Always descending (newest first), with id DESC as
the tiebreaker so pagination is stable across rows sharing a timestamp.
Sort key; always newest-first (id tiebreak). Defaults to updated_at
so re-runs and fresh completions surface at the top.
1-indexed page number. Defaults to 1; zero is rejected.
Rows per page. Defaults to 50, max 100; zero is rejected.
Responses
Section titled “ Responses ”Paginated list of jobs for the current org
Paginated list envelope: { "results": [...], "pagination": {...} }.
object
Pagination metadata describing the slice.
object
1-indexed page number of this result slice.
Number of items requested per page.
Total number of matching items across all pages.
Total number of pages at this page size.
The items on this page.
A single background-queue job, projected from its pg_loco_queue row.
object
Wall-clock seconds from enqueue (created_at) to terminal state
(updated_at); None for in-flight rows. Includes queue wait, since Loco
doesn’t preserve a worker-start timestamp for one-shot jobs.
Failure reason — Loco merges {"error": msg} into task_data when
a worker returns Err. None for non-failed jobs.
ULID assigned by Loco at enqueue time.
Integration type from task_data.integration_type, when present.
Worker class name (e.g. RiskIntegrationImporter).
Loco’s run_at: the enqueue time, except that Loco overwrites it to
the completion instant when a one-shot job completes (see
complete_job in loco_rs::bgworker::pg). So it is not “when the worker
started” — duration_seconds is derived from created_at instead.
Public job status — matches the five values Loco’s queue ever writes.