Skip to main content
POST

Authorizations

Authorization
string
header
required

varg API key (varg_...). Get one at app.varg.ai or run bunx vargai login. App sessions may alternatively send a Supabase JWT.

Path Parameters

id
string
required
Pattern: ^job_

Body

application/json
action
enum<string>
default:approve

approve runs the next step, retry runs the same step again, reject cancels the job.

Available options:
approve,
retry,
reject
overrides
object

Input fields to change for the resumed step, for example an edited prompt. They are also kept for later steps.

Response

The job after the decision

id
string
required
Example:

"job_a1b2c3d4e5f6"

status
enum<string>
required

The status only moves forward: queued → running → completed, failed or cancelled. Everything a running job goes through — sending to the provider, uploading references, switching to another provider — is a stage of running; a job never goes back to queued. (Older API builds also reported submitting; treat it as running.)

awaiting_confirmation (multi-step pipelines only): the job finished a step that asks for review and waits for POST /jobs/{id}/confirm. It is not terminal.

Available options:
queued,
running,
awaiting_confirmation,
completed,
failed,
cancelled
stage
enum<string> | null
required

What the job is doing right now. null once the job is terminal, and while the job is awaiting_confirmation.

  • queued — waiting for a slot; no attempt yet
  • submitting — being sent to the provider
  • uploading_references — the provider is taking the reference files into its asset library (progress_message shows n/m)
  • rendering — the provider accepted the task and is generating
  • retrying — an attempt failed (the provider refused, failed or rate limited it); the job waits for its next attempt, usually on another provider. See attempts.
  • finalizing — the result is being saved and billed
Available options:
queued,
submitting,
uploading_references,
rendering,
retrying,
finalizing,
null
attempts
object[]
required

Every provider tried for this job, oldest first. provider / provider_model are the newest one.

tool
string
required

Internal tool id (e.g. tool_2001a2b3c4d5 for video), not the tool_key. Do not compare it against GET /tools keys.

Example:

"tool_2001a2b3c4d5"

input
object
required

The request body as submitted (model, prompt, ...)

output
object | null
required

Canonical output envelope. Present only when the job is completed.

error
string | null
required

Human-readable failure message. null unless the job failed or was cancelled.

progress_message
string | null
required
Example:

"stitching 3/8 (40%)"

progress
number | null
required

Fraction 0..1

progress_metadata
object | null
required
step_state
object | null
required

Multi-step pipeline jobs only: the current step and each step's status, intermediate output and cost. null for ordinary jobs.

estimated_duration_ms
integer | null
required
estimated_cost_cents
integer | null
required
actual_cost_cents
integer | null
required
pricing
object
required

Structured pricing. 1 credit = 1 cent = $0.01.

provider
string | null
required
Example:

"fal"

provider_model
string | null
required
Example:

"fal:flux_schnell"

provider_status
string | null
required

The provider's raw status string

provider_job_id
string | null
required
completed_by_provider_model_id
string | null
required

Provider model route that completed the job

last_attempt_provider_model_id
string | null
required

Provider model route of the most recent attempt

workspace_id
string | null
required

Folder the outputs are filed into (see X-Workspace-Id)

created_at
string<date-time>
required
started_at
string<date-time> | null
required
completed_at
string<date-time> | null
required
warnings
string[]

Present on creation responses when the request was adjusted (for example a resolution fallback)

urls
object

Lifecycle URLs (present on creation responses)