---
title: "List jobs"
method: GET
path: "/jobs"
tags: ["Jobs"]
---

# List jobs

`GET /jobs`

List jobs for the authenticated organization. Supports filtering by status and type, with pagination.

## Query parameters

- `status` 'waiting' | 'dispatched' | 'running' | 'complete' | 'failed' | 'cancelled' — Filter by job status
- `type` string — Filter by job type (e.g., watermark.apply)
- `limit` string — Page size (default 50, max 100)
- `offset` string — Pagination offset (default 0)
- `sort` 'created' | 'duration' | 'cost' — Sort field (default created)
- `order` 'asc' | 'desc' — Sort order (default desc)
- `client` string — Filter by originating client
- `from` integer, nullable — Created-after (Unix ms)
- `to` integer, nullable — Created-before (Unix ms)

## Response `200`

List of jobs

- object
  - `data` union[], required
    - union
      - object
        - `id` string, required — Job ID (e.g. job_abc123)
        - `orgId` string, required — Organization ID
        - `type` string, required — Job type (e.g. watermark.apply)
        - `source` string, required — How the job was created (api | dashboard | mcp ...)
        - `client` string, nullable, required — Originating client (sdk | cli | mcp | n8n | ...), or null
        - `retryCount` integer, required — Number of retry attempts
        - `idempotencyKey` string, nullable, required — Caller-supplied idempotency key, or null
        - `mediaType` string, nullable, required — Detected media type (video | image | audio), or null
        - `inputs` object, required — Input file references
        - `params` object, required — Job parameters
        - `cost` object, nullable, required — Amount charged, or null when not yet billed
          - `amount` number, required — Amount charged in nanodollars (integer minor units; 1 USD = 1,000,000,000). Use `formatted` for display.
          - `currency` 'USD', required — ISO-4217 currency code
          - `formatted` string, required — Amount formatted as dollars (e.g. "$0.50")
        - `outputCategory` 'video' | 'image' | 'audio' | 'json' | 'captions' | 'raw', required — Output category. Clients should tolerate unknown future values.
        - `steps` object[], required — Execution steps
          - `id` string, required
          - `name` string, required
          - `status` string, required — pending | running | complete | skipped | error
          - `startedAt` number
          - `completedAt` number
          - `durationMs` number
          - `meta` object
          - `error` string
        - `logsAvailable` boolean, required — Whether execution logs are stored
        - `resourcesAvailable` boolean, required — Whether the resource-utilization series is stored
        - `metricsAvailable` boolean — @deprecated renamed to resourcesAvailable; kept until the next major
        - `region` string, nullable — Execution region (e.g. us-east-1), null until dispatched
        - `timeoutMs` integer, nullable, required — How long this job is allowed to run, in milliseconds: the requested timeout clamped to the plan ceiling. Null until the job is dispatched. Clients waiting on a job should bound the wait by this rather than a fixed guess.
        - `createdAt` number, required — Creation timestamp (Unix ms)
        - `dispatchedAt` number, nullable, required — Dispatch timestamp (Unix ms)
        - `startedAt` number, nullable, required — Start timestamp (Unix ms)
        - `completedAt` number, nullable, required — Completion timestamp (Unix ms)
        - `settledAt` number, nullable, required — CF Worker timestamp when terminal status written (Unix ms)
        - `retentionExpiresAt` integer, nullable, required — Unix ms when the stored output files are deleted (completion + plan retention window). Null until the job completes with a stored output. Distinct from output.expiresAt, which is the short-lived download-URL expiry.
        - `webUrl` string, required — Dashboard URL for this job
        - `model` string, nullable, required — Resolved generation model id (image.generate / image.edit jobs only), else null
        - `callback` object, nullable — Per-job callback delivery status, populated by GET /jobs/:id when a callback.url was set at submit (else null/absent). Deliberately carries ONLY the status — the callback url and any custom headers are secret and are never returned by any response.
          - `status` 'pending' | 'delivered' | 'failed', required — Delivery state of the per-job completion callback.
        - `status` 'waiting', required — Accepted, not yet dispatched to a provider
      - object
        - `id` string, required — Job ID (e.g. job_abc123)
        - `orgId` string, required — Organization ID
        - `type` string, required — Job type (e.g. watermark.apply)
        - `source` string, required — How the job was created (api | dashboard | mcp ...)
        - `client` string, nullable, required — Originating client (sdk | cli | mcp | n8n | ...), or null
        - `retryCount` integer, required — Number of retry attempts
        - `idempotencyKey` string, nullable, required — Caller-supplied idempotency key, or null
        - `mediaType` string, nullable, required — Detected media type (video | image | audio), or null
        - `inputs` object, required — Input file references
        - `params` object, required — Job parameters
        - `cost` object, nullable, required — Amount charged, or null when not yet billed
          - `amount` number, required — Amount charged in nanodollars (integer minor units; 1 USD = 1,000,000,000). Use `formatted` for display.
          - `currency` 'USD', required — ISO-4217 currency code
          - `formatted` string, required — Amount formatted as dollars (e.g. "$0.50")
        - `outputCategory` 'video' | 'image' | 'audio' | 'json' | 'captions' | 'raw', required — Output category. Clients should tolerate unknown future values.
        - `steps` object[], required — Execution steps
          - `id` string, required
          - `name` string, required
          - `status` string, required — pending | running | complete | skipped | error
          - `startedAt` number
          - `completedAt` number
          - `durationMs` number
          - `meta` object
          - `error` string
        - `logsAvailable` boolean, required — Whether execution logs are stored
        - `resourcesAvailable` boolean, required — Whether the resource-utilization series is stored
        - `metricsAvailable` boolean — @deprecated renamed to resourcesAvailable; kept until the next major
        - `region` string, nullable — Execution region (e.g. us-east-1), null until dispatched
        - `timeoutMs` integer, nullable, required — How long this job is allowed to run, in milliseconds: the requested timeout clamped to the plan ceiling. Null until the job is dispatched. Clients waiting on a job should bound the wait by this rather than a fixed guess.
        - `createdAt` number, required — Creation timestamp (Unix ms)
        - `dispatchedAt` number, nullable, required — Dispatch timestamp (Unix ms)
        - `startedAt` number, nullable, required — Start timestamp (Unix ms)
        - `completedAt` number, nullable, required — Completion timestamp (Unix ms)
        - `settledAt` number, nullable, required — CF Worker timestamp when terminal status written (Unix ms)
        - `retentionExpiresAt` integer, nullable, required — Unix ms when the stored output files are deleted (completion + plan retention window). Null until the job completes with a stored output. Distinct from output.expiresAt, which is the short-lived download-URL expiry.
        - `webUrl` string, required — Dashboard URL for this job
        - `model` string, nullable, required — Resolved generation model id (image.generate / image.edit jobs only), else null
        - `callback` object, nullable — Per-job callback delivery status, populated by GET /jobs/:id when a callback.url was set at submit (else null/absent). Deliberately carries ONLY the status — the callback url and any custom headers are secret and are never returned by any response.
          - `status` 'pending' | 'delivered' | 'failed', required — Delivery state of the per-job completion callback.
        - `status` 'dispatched', required — Dispatched to a provider, not yet running
        - `progress` number, nullable — Completion fraction 0..1, or null when it cannot be determined
        - `eta` number, nullable — Estimated seconds remaining, or null
        - `bootState` object, nullable — Live boot detail while a Modal-lane container spins up
          - `phase` string, required — Boot phase: scheduling | queued | pulling-image | booting | restoring
          - `detail` string, required — Human-readable line, e.g. "waiting for GPU capacity"
          - `elapsedMs` integer, required — Milliseconds since dispatch
          - `typicalMs` integer, nullable, required — Typical cold-start duration for this workload, or null when unknown
          - `etaMs` integer, nullable, required — Whole-job remaining estimate (boot + generation), in milliseconds, or null when unknown
      - object
        - `id` string, required — Job ID (e.g. job_abc123)
        - `orgId` string, required — Organization ID
        - `type` string, required — Job type (e.g. watermark.apply)
        - `source` string, required — How the job was created (api | dashboard | mcp ...)
        - `client` string, nullable, required — Originating client (sdk | cli | mcp | n8n | ...), or null
        - `retryCount` integer, required — Number of retry attempts
        - `idempotencyKey` string, nullable, required — Caller-supplied idempotency key, or null
        - `mediaType` string, nullable, required — Detected media type (video | image | audio), or null
        - `inputs` object, required — Input file references
        - `params` object, required — Job parameters
        - `cost` object, nullable, required — Amount charged, or null when not yet billed
          - `amount` number, required — Amount charged in nanodollars (integer minor units; 1 USD = 1,000,000,000). Use `formatted` for display.
          - `currency` 'USD', required — ISO-4217 currency code
          - `formatted` string, required — Amount formatted as dollars (e.g. "$0.50")
        - `outputCategory` 'video' | 'image' | 'audio' | 'json' | 'captions' | 'raw', required — Output category. Clients should tolerate unknown future values.
        - `steps` object[], required — Execution steps
          - `id` string, required
          - `name` string, required
          - `status` string, required — pending | running | complete | skipped | error
          - `startedAt` number
          - `completedAt` number
          - `durationMs` number
          - `meta` object
          - `error` string
        - `logsAvailable` boolean, required — Whether execution logs are stored
        - `resourcesAvailable` boolean, required — Whether the resource-utilization series is stored
        - `metricsAvailable` boolean — @deprecated renamed to resourcesAvailable; kept until the next major
        - `region` string, nullable — Execution region (e.g. us-east-1), null until dispatched
        - `timeoutMs` integer, nullable, required — How long this job is allowed to run, in milliseconds: the requested timeout clamped to the plan ceiling. Null until the job is dispatched. Clients waiting on a job should bound the wait by this rather than a fixed guess.
        - `createdAt` number, required — Creation timestamp (Unix ms)
        - `dispatchedAt` number, nullable, required — Dispatch timestamp (Unix ms)
        - `startedAt` number, nullable, required — Start timestamp (Unix ms)
        - `completedAt` number, nullable, required — Completion timestamp (Unix ms)
        - `settledAt` number, nullable, required — CF Worker timestamp when terminal status written (Unix ms)
        - `retentionExpiresAt` integer, nullable, required — Unix ms when the stored output files are deleted (completion + plan retention window). Null until the job completes with a stored output. Distinct from output.expiresAt, which is the short-lived download-URL expiry.
        - `webUrl` string, required — Dashboard URL for this job
        - `model` string, nullable, required — Resolved generation model id (image.generate / image.edit jobs only), else null
        - `callback` object, nullable — Per-job callback delivery status, populated by GET /jobs/:id when a callback.url was set at submit (else null/absent). Deliberately carries ONLY the status — the callback url and any custom headers are secret and are never returned by any response.
          - `status` 'pending' | 'delivered' | 'failed', required — Delivery state of the per-job completion callback.
        - `status` 'running', required — Provider is executing the job
        - `progress` number, nullable, required — Completion fraction 0..1, or null when it cannot be determined
        - `eta` number, nullable, required — Estimated seconds remaining, or null
      - object
        - `id` string, required — Job ID (e.g. job_abc123)
        - `orgId` string, required — Organization ID
        - `type` string, required — Job type (e.g. watermark.apply)
        - `source` string, required — How the job was created (api | dashboard | mcp ...)
        - `client` string, nullable, required — Originating client (sdk | cli | mcp | n8n | ...), or null
        - `retryCount` integer, required — Number of retry attempts
        - `idempotencyKey` string, nullable, required — Caller-supplied idempotency key, or null
        - `mediaType` string, nullable, required — Detected media type (video | image | audio), or null
        - `inputs` object, required — Input file references
        - `params` object, required — Job parameters
        - `cost` object, nullable, required — Amount charged, or null when not yet billed
          - `amount` number, required — Amount charged in nanodollars (integer minor units; 1 USD = 1,000,000,000). Use `formatted` for display.
          - `currency` 'USD', required — ISO-4217 currency code
          - `formatted` string, required — Amount formatted as dollars (e.g. "$0.50")
        - `outputCategory` 'video' | 'image' | 'audio' | 'json' | 'captions' | 'raw', required — Output category. Clients should tolerate unknown future values.
        - `steps` object[], required — Execution steps
          - `id` string, required
          - `name` string, required
          - `status` string, required — pending | running | complete | skipped | error
          - `startedAt` number
          - `completedAt` number
          - `durationMs` number
          - `meta` object
          - `error` string
        - `logsAvailable` boolean, required — Whether execution logs are stored
        - `resourcesAvailable` boolean, required — Whether the resource-utilization series is stored
        - `metricsAvailable` boolean — @deprecated renamed to resourcesAvailable; kept until the next major
        - `region` string, nullable — Execution region (e.g. us-east-1), null until dispatched
        - `timeoutMs` integer, nullable, required — How long this job is allowed to run, in milliseconds: the requested timeout clamped to the plan ceiling. Null until the job is dispatched. Clients waiting on a job should bound the wait by this rather than a fixed guess.
        - `createdAt` number, required — Creation timestamp (Unix ms)
        - `dispatchedAt` number, nullable, required — Dispatch timestamp (Unix ms)
        - `startedAt` number, nullable, required — Start timestamp (Unix ms)
        - `completedAt` number, nullable, required — Completion timestamp (Unix ms)
        - `settledAt` number, nullable, required — CF Worker timestamp when terminal status written (Unix ms)
        - `retentionExpiresAt` integer, nullable, required — Unix ms when the stored output files are deleted (completion + plan retention window). Null until the job completes with a stored output. Distinct from output.expiresAt, which is the short-lived download-URL expiry.
        - `webUrl` string, required — Dashboard URL for this job
        - `model` string, nullable, required — Resolved generation model id (image.generate / image.edit jobs only), else null
        - `callback` object, nullable — Per-job callback delivery status, populated by GET /jobs/:id when a callback.url was set at submit (else null/absent). Deliberately carries ONLY the status — the callback url and any custom headers are secret and are never returned by any response.
          - `status` 'pending' | 'delivered' | 'failed', required — Delivery state of the per-job completion callback.
        - `status` 'complete', required — Finished successfully
        - `output` object, required — Job output (data + file + files). Present only here.
          - `data` unknown
          - `file` object, nullable, required — Convenience shortcut to the single headline result: the one output file, or the stream manifest (.m3u8/.mpd). Read `file.url` directly when you expect one output. Always one of `files`. Null for pure file sets and data-only jobs (which have no single headline).
            - `url` string, required — Ready-to-fetch, time-limited URL for this file
            - `path` string, required — File path within the job output (relative)
            - `type` 'video' | 'image' | 'audio' | 'captions' | 'playlist' | 'data' | 'other', required — File type, derived from the extension. OPEN enum — tolerate unknown future values.
            - `size` number, required — File size in bytes
            - `meta` object — Optional per-file media metadata, when known
              - …
          - `files` object[], required — Every file the job produced, the complete list. Use this when a job can output many files (image sequence, HLS segments, resolution ladder). Empty for data-only jobs.
            - `url` string, required — Ready-to-fetch, time-limited URL for this file
            - `path` string, required — File path within the job output (relative)
            - `type` 'video' | 'image' | 'audio' | 'captions' | 'playlist' | 'data' | 'other', required — File type, derived from the extension. OPEN enum — tolerate unknown future values.
            - `size` number, required — File size in bytes
            - `meta` object — Optional per-file media metadata, when known
              - …
          - `expiresAt` number, nullable, required — Unix ms when the file URLs expire. Present iff `files` is non-empty.
      - object
        - `id` string, required — Job ID (e.g. job_abc123)
        - `orgId` string, required — Organization ID
        - `type` string, required — Job type (e.g. watermark.apply)
        - `source` string, required — How the job was created (api | dashboard | mcp ...)
        - `client` string, nullable, required — Originating client (sdk | cli | mcp | n8n | ...), or null
        - `retryCount` integer, required — Number of retry attempts
        - `idempotencyKey` string, nullable, required — Caller-supplied idempotency key, or null
        - `mediaType` string, nullable, required — Detected media type (video | image | audio), or null
        - `inputs` object, required — Input file references
        - `params` object, required — Job parameters
        - `cost` object, nullable, required — Amount charged, or null when not yet billed
          - `amount` number, required — Amount charged in nanodollars (integer minor units; 1 USD = 1,000,000,000). Use `formatted` for display.
          - `currency` 'USD', required — ISO-4217 currency code
          - `formatted` string, required — Amount formatted as dollars (e.g. "$0.50")
        - `outputCategory` 'video' | 'image' | 'audio' | 'json' | 'captions' | 'raw', required — Output category. Clients should tolerate unknown future values.
        - `steps` object[], required — Execution steps
          - `id` string, required
          - `name` string, required
          - `status` string, required — pending | running | complete | skipped | error
          - `startedAt` number
          - `completedAt` number
          - `durationMs` number
          - `meta` object
          - `error` string
        - `logsAvailable` boolean, required — Whether execution logs are stored
        - `resourcesAvailable` boolean, required — Whether the resource-utilization series is stored
        - `metricsAvailable` boolean — @deprecated renamed to resourcesAvailable; kept until the next major
        - `region` string, nullable — Execution region (e.g. us-east-1), null until dispatched
        - `timeoutMs` integer, nullable, required — How long this job is allowed to run, in milliseconds: the requested timeout clamped to the plan ceiling. Null until the job is dispatched. Clients waiting on a job should bound the wait by this rather than a fixed guess.
        - `createdAt` number, required — Creation timestamp (Unix ms)
        - `dispatchedAt` number, nullable, required — Dispatch timestamp (Unix ms)
        - `startedAt` number, nullable, required — Start timestamp (Unix ms)
        - `completedAt` number, nullable, required — Completion timestamp (Unix ms)
        - `settledAt` number, nullable, required — CF Worker timestamp when terminal status written (Unix ms)
        - `retentionExpiresAt` integer, nullable, required — Unix ms when the stored output files are deleted (completion + plan retention window). Null until the job completes with a stored output. Distinct from output.expiresAt, which is the short-lived download-URL expiry.
        - `webUrl` string, required — Dashboard URL for this job
        - `model` string, nullable, required — Resolved generation model id (image.generate / image.edit jobs only), else null
        - `callback` object, nullable — Per-job callback delivery status, populated by GET /jobs/:id when a callback.url was set at submit (else null/absent). Deliberately carries ONLY the status — the callback url and any custom headers are secret and are never returned by any response.
          - `status` 'pending' | 'delivered' | 'failed', required — Delivery state of the per-job completion callback.
        - `status` 'failed', required — Terminated with an error
        - `error` object, required — Failure detail. Present only here.
          - `code` string, required — Machine-readable error code
          - `message` string, required — Human-readable error message
          - `detail` string, nullable, required — Real provider stderr tail (e.g. ffmpeg), or null
          - `retryable` boolean, required — True when retrying the same job may succeed
          - `failedPhase` 'preparing' | 'processing' | 'finalizing' — Which phase the job failed in, when known
      - object
        - `id` string, required — Job ID (e.g. job_abc123)
        - `orgId` string, required — Organization ID
        - `type` string, required — Job type (e.g. watermark.apply)
        - `source` string, required — How the job was created (api | dashboard | mcp ...)
        - `client` string, nullable, required — Originating client (sdk | cli | mcp | n8n | ...), or null
        - `retryCount` integer, required — Number of retry attempts
        - `idempotencyKey` string, nullable, required — Caller-supplied idempotency key, or null
        - `mediaType` string, nullable, required — Detected media type (video | image | audio), or null
        - `inputs` object, required — Input file references
        - `params` object, required — Job parameters
        - `cost` object, nullable, required — Amount charged, or null when not yet billed
          - `amount` number, required — Amount charged in nanodollars (integer minor units; 1 USD = 1,000,000,000). Use `formatted` for display.
          - `currency` 'USD', required — ISO-4217 currency code
          - `formatted` string, required — Amount formatted as dollars (e.g. "$0.50")
        - `outputCategory` 'video' | 'image' | 'audio' | 'json' | 'captions' | 'raw', required — Output category. Clients should tolerate unknown future values.
        - `steps` object[], required — Execution steps
          - `id` string, required
          - `name` string, required
          - `status` string, required — pending | running | complete | skipped | error
          - `startedAt` number
          - `completedAt` number
          - `durationMs` number
          - `meta` object
          - `error` string
        - `logsAvailable` boolean, required — Whether execution logs are stored
        - `resourcesAvailable` boolean, required — Whether the resource-utilization series is stored
        - `metricsAvailable` boolean — @deprecated renamed to resourcesAvailable; kept until the next major
        - `region` string, nullable — Execution region (e.g. us-east-1), null until dispatched
        - `timeoutMs` integer, nullable, required — How long this job is allowed to run, in milliseconds: the requested timeout clamped to the plan ceiling. Null until the job is dispatched. Clients waiting on a job should bound the wait by this rather than a fixed guess.
        - `createdAt` number, required — Creation timestamp (Unix ms)
        - `dispatchedAt` number, nullable, required — Dispatch timestamp (Unix ms)
        - `startedAt` number, nullable, required — Start timestamp (Unix ms)
        - `completedAt` number, nullable, required — Completion timestamp (Unix ms)
        - `settledAt` number, nullable, required — CF Worker timestamp when terminal status written (Unix ms)
        - `retentionExpiresAt` integer, nullable, required — Unix ms when the stored output files are deleted (completion + plan retention window). Null until the job completes with a stored output. Distinct from output.expiresAt, which is the short-lived download-URL expiry.
        - `webUrl` string, required — Dashboard URL for this job
        - `model` string, nullable, required — Resolved generation model id (image.generate / image.edit jobs only), else null
        - `callback` object, nullable — Per-job callback delivery status, populated by GET /jobs/:id when a callback.url was set at submit (else null/absent). Deliberately carries ONLY the status — the callback url and any custom headers are secret and are never returned by any response.
          - `status` 'pending' | 'delivered' | 'failed', required — Delivery state of the per-job completion callback.
        - `status` 'cancelled', required — Cancelled before completion
  - `meta` object, required
    - `total` integer, required
    - `page` integer, required
    - `limit` integer, required

## Other responses

- `401` — Unauthorized

## Changes

> 7 revisions in range; 5 could not be searched.

- **2026-08-29** `4d10ec4266ee` — 1 info
  - api operation id `listJobs` was added

[Change history](https://skmtc.dev/rendobar/apis/rendobar-api/changes/jobs/get.md)

---

[API](https://skmtc.dev/rendobar/apis/rendobar-api.md) · [All operations](https://skmtc.dev/rendobar/apis/rendobar-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/rendobar/rendobar-api/revisions/4d10ec4266ee/schema)
