Skip to main content
GET
List jobs
Requires the job:read scope. Requests without this scope receive a 403 FORBIDDEN response. See authentication.
Jobs are returned newest-first (created_at descending) and scoped to your account. Use limit (max 100) and offset to page through results; total in the response is the unpaginated count.

Filters

Status filter

status accepts a comma-separated list of one or more job statuses: queued and processing are the in-flight states; completed and failed are terminal. To list every job still in flight, request both:
An unknown status value returns 400 INVALID_REQUEST.

Polling for completion

Webhooks are the primary, low-latency way to learn that a job finished — register one when you submit, or via register webhook. Webhook delivery is best-effort, so use this endpoint as a cheap reconciliation safety net rather than your primary signal:
  • Poll GET /api/v1/jobs?status=queued,processing on an interval. One request covers every outstanding job, regardless of how many you have in flight — far cheaper than polling each job individually with get job status.
  • A job that drops out of the in-flight list has reached a terminal state. Fetch the terminal set (status=completed,failed, optionally narrowed with from) to pick up any outcome whose webhook was missed.
  • Keep the interval modest — every request counts toward your rate limit. Webhooks carry the fast path; reconciliation only needs to catch stragglers.

Example

Authorizations

Authorization
string
header
required

API key from the Omnifence dashboard

Query Parameters

limit
integer
default:50
Required range: 1 <= x <= 100
offset
integer
default:0
Required range: x >= 0
type
enum<string>

Filter by job modality. prompt, chat, image, video are the active moderation modalities; generate is a generation job; pre/post are legacy types kept for historical jobs.

Available options:
pre,
post,
prompt,
chat,
image,
video,
generate
decision
enum<string>

Filter by moderation decision.

Available options:
pass,
reject
status
string

Filter by job status. Comma-separated list of: queued, processing, completed, failed. Example: status=queued,processing returns all in-flight jobs — useful for low-cost reconciliation polling alongside webhooks.

Prefix-match filter on job_id.

Maximum string length: 64
from
string<date-time>

Inclusive lower bound on job created_at (ISO 8601).

to
string<date-time>

Exclusive upper bound on job created_at (ISO 8601).

Response

200 - application/json

Default Response

jobs
object[]
required
total
integer
required
limit
integer
required
offset
integer
required