Skip to content

List recent jobs for the current org.

GET
/v1/jobs
name
Array<string>
Allowed values: RiskIntegrationImporter IncidentIntegrationImporter RiskScoringWorker IncidentScoringWorker

Filter by worker class name. Unknown values yield 422.

status
Array<string>
Allowed values: queued processing completed failed cancelled

Filter by lifecycle status. Repeatable.

integration_type
string | null

Filter by task_data.integration_type (e.g. Bugcrowd).

age_days
integer format: int64
default: 7 >= 1 <= 30

Only return jobs created within the last N days. Defaults to 7, max 30.

order_by

Sort key for [list]. Always descending (newest first), with id DESC as the tiebreaker so pagination is stable across rows sharing a timestamp.

string
Allowed values: created_at updated_at

Sort key; always newest-first (id tiebreak). Defaults to updated_at so re-runs and fresh completions surface at the top.

page
integer format: int64
default: 1 >= 1 <= 1000000

1-indexed page number. Defaults to 1; zero is rejected.

page_size
integer format: int64
default: 50 >= 1 <= 100

Rows per page. Defaults to 50, max 100; zero is rejected.

Paginated list of jobs for the current org

Paginated list envelope: { "results": [...], "pagination": {...} }.

object
pagination
required

Pagination metadata describing the slice.

object
page
required

1-indexed page number of this result slice.

integer format: int64
page_size
required

Number of items requested per page.

integer format: int64
total_items
required

Total number of matching items across all pages.

integer format: int64
total_pages
required

Total number of pages at this page size.

integer format: int64
results
required

The items on this page.

Array<object>

A single background-queue job, projected from its pg_loco_queue row.

object
created_at
required
string format: date-time
duration_seconds

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.

integer | null format: int64
error_message

Failure reason — Loco merges {"error": msg} into task_data when a worker returns Err. None for non-failed jobs.

string | null
id
required

ULID assigned by Loco at enqueue time.

string
integration_type

Integration type from task_data.integration_type, when present.

string | null
name
required

Worker class name (e.g. RiskIntegrationImporter).

string
run_at
required

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.

string format: date-time
status
required

Public job status — matches the five values Loco’s queue ever writes.

string
Allowed values: queued processing completed failed cancelled
updated_at
required
string format: date-time