Skip to main content
POST
Create a job

Authorizations

Authorization
string
header
required

A Voyager API key from https://voyager.so/dashboard/api.

Headers

Idempotency-Key
string | null

A new UUID per logical request; resend it on retries. Same key + same body returns the original job at any age; a different body is 409.

prefer
string | null

wait=N (≤ 60): return the finished job if it ends.

X-Voyager-Cast-Version
string | null

1: input.cast takes saved cards with selections and inline packages, input.cast_policy and input.cast_plan, and answers carry cast_usage. Omit for today's string Cast.

Body

application/json
model
string
required

A model id from GET /v1/models.

Required string length: 1 - 200
operation
enum<string> | null

One of text-to-image, edit, text-to-video, image-to-video, reference-to-video, tts, music, sound-effects, text-to-3d, image-to-3d, image-to-3d-body, align-3d, segment-image, segment-image-data, segment-video, segment-video-data, segment-everything, image-embedding (GET /v1/models/{id} lists a model's). Required unless the model runs only one.

Available options:
text-to-image,
edit,
text-to-video,
image-to-video,
reference-to-video,
tts,
music,
sound-effects,
text-to-3d,
image-to-3d,
image-to-3d-body,
align-3d,
segment-image,
segment-image-data,
segment-video,
segment-video-data,
segment-everything,
image-embedding
input
JobInput · object

The model's canonical inputs: its input_schema on GET /v1/models/{id} (file_ ids or https URLs for media), plus optional cast (up to 4 cst_ ids) on image and video operations.

webhook_url
string | null

Public https URL that receives job.succeeded / job.failed / job.canceled (Standard Webhooks).

Maximum string length: 2048
metadata
Metadata · object | null

Up to 16 string pairs echoed on the job and its webhooks (values ≤ 500 chars).

Response

Finished within Prefer: wait, or an idempotent replay.

id
string
required

job_…

type
string
required

image, video, speech, music, sound_effect or 3d.

model
string | null
required

The model that ran (or will run) the job.

operation
string | null
required

e.g. text-to-image, edit, image-to-video, tts.

status
enum<string>
required

queued, running, succeeded, failed or canceled.

Available options:
queued,
running,
succeeded,
failed,
canceled
input
Input · object
required

The job's input, as sent.

outputs
JobOutput · object[]
required

The files the job made, once it succeeded.

credits
JobCredits · object
required

What the job is expected to cost and what it was charged.

error
JobError · object | null
required

Why the job failed or was canceled.

metadata
Metadata · object
required

The metadata sent with the job, echoed as is.

created_at
string<date-time> | null
required

When it was created (ISO 8601).

started_at
string<date-time> | null
required

When the job started running (ISO 8601); null while queued.

completed_at
string<date-time> | null
required

When the job reached a terminal status (ISO 8601); null until then.

poll_after_ms
integer | null
required

While active: when to poll again.

Links to read and cancel the job.

object
string
default:job

Always "job".

Allowed value: "job"
cast_usage
Cast Usage · object | null

Jobs created with X-Voyager-Cast-Version: 1 and input.cast: what the Elements compiled to (strategy, card versions, sent and omitted photos, warnings). Absent on every other job.