Retrieve a single job by ID.
GET /v1/jobs/{id}
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”ULID assigned by the queue at enqueue time
Responses
Section titled “ Responses ”Job details
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.
Job not found