Skip to main content
GET
/
api
/
jobs
GET /api/jobs
curl --request GET \
  --url https://sluice.sh/api/api/jobs

Documentation Index

Fetch the complete documentation index at: https://docs.sluice.sh/llms.txt

Use this file to discover all available pages before exploring further.

Returns a paginated list of jobs. Supports filtering by state, queue, worker, and search by task name.

Authentication

Session cookie (dashboard).

Query parameters

ParameterTypeDefaultDescription
cursorstringPagination cursor from a previous response. Max 1000 chars.
limitinteger50Number of results per page (1–100).
searchstringSearch by task name (substring match). Max 500 chars.
statestringFilter by unified state: unknown, queued, scheduled, active, completed, failed, retrying, cancelled.
queuestringFilter by queue name.
workerstringFilter by worker ID.
connectionIdstringFilter by connection UUID.
frameworkstringFilter by framework: celery, bullmq, sidekiq.
sortBystringcreatedAtSort field: createdAt, name, state, durationMs, queue, startedAt, worker.
sortOrderstringdescSort direction: asc or desc.

Response

{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "externalId": "abc123-def456-ghi789",
      "framework": "celery",
      "connectionId": "550e8400-e29b-41d4-a716-446655440000",
      "name": "app.tasks.send_email",
      "queue": "default",
      "state": "completed",
      "stateChangedAt": "2026-02-27T10:30:00.000Z",
      "scheduledFor": null,
      "createdAt": "2026-02-27T10:29:55.000Z",
      "startedAt": "2026-02-27T10:29:56.000Z",
      "completedAt": "2026-02-27T10:30:00.000Z",
      "durationMs": 4000,
      "workerId": "celery@worker-1",
      "error": null
    }
  ],
  "pagination": {
    "nextCursor": "eyJpZCI6ImExYjJjM2Q0... ",
    "limit": 50,
    "total": 1234
  }
}

Job list item fields

FieldTypeDescription
idstringSluice-generated UUID.
externalIdstringFramework-native ID (Celery task UUID).
frameworkstringAlways celery in V0.
connectionIdstringConnection this job belongs to.
namestringTask type name (e.g., app.tasks.send_email).
queuestring?Queue name, or null if unknown.
statestringCurrent unified state.
stateChangedAtstring?ISO 8601 timestamp of the last state change.
scheduledForstring?ISO 8601 — when this job is scheduled to run (ETA tasks).
createdAtstringISO 8601 — when the job was first seen.
startedAtstring?ISO 8601 — when execution began.
completedAtstring?ISO 8601 — when execution finished.
durationMsinteger?Execution time in milliseconds (completedAt - startedAt).
workerIdstring?Worker that processed this job.
errorstring?Error message, if the job failed.
The list endpoint omits large fields (arguments, results, full stacktrace) for performance. Use GET /api/jobs/:id for the complete job record.

Pagination

To get the next page, pass the nextCursor value as the cursor query parameter:
GET /api/jobs?cursor=eyJpZCI6ImExYjJjM2Q0...&limit=50
When nextCursor is null, there are no more results.

Common queries

Copy-pasteable examples for incident response and debugging. All failed payment tasks in the last 24 hours:
curl -s "https://sluice.sh/api/jobs?state=failed&queue=payments&sortBy=createdAt&sortOrder=desc" \
  -H "Cookie: session=YOUR_SESSION_COOKIE"
Currently stalled tasks (active for too long):
curl -s "https://sluice.sh/api/jobs?state=active&sortBy=startedAt&sortOrder=asc" \
  -H "Cookie: session=YOUR_SESSION_COOKIE"
All retrying tasks on a specific worker:
curl -s "https://sluice.sh/api/jobs?state=retrying&worker=celery@worker-1&limit=100" \
  -H "Cookie: session=YOUR_SESSION_COOKIE"