Skip to main content
POST
Estimate a job

Authorizations

Authorization
string
header
required

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

Headers

Idempotency-Key
string | null

Accepted and validated; an estimate starts nothing.

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

Successful Response

model
string
required

The model estimated.

operation
string
required

The operation estimated.

estimated_charge
number | null
required

Expected credits for this request; null when unknown.

required_hold
number | null
required

Credits held when the job is accepted, at today's prices; null when unknown.

available_credits
number | null
required

The workspace's credit balance, as its Voyager dashboard shows it; null when unknown.

can_run
boolean
required

False when the plan, access or balance refuses it, or it is unknown.

object
string
default:estimate

Always "estimate".

Allowed value: "estimate"
reason
string | null

Why not, as the error code a create would get: model_not_in_plan, model_access_required, insufficient_credits, credits_reloading (retry shortly), free_allowance_exhausted, free_window_limit, free_media_limit, paid_plan_required, no_voyager_seat, model_unavailable; estimate_unavailable when it could not be read.

upgrade_url
string | null

Where to upgrade the plan or add credits, when that is the reason.

estimate_basis
string | null

"fallback" when nothing prices this request and estimated_charge is its model's fallback rate (show it as an estimate); absent otherwise. A fallback figure never refuses the job.

Allowed value: "fallback"
estimate_source
enum<string> | null

With estimate_basis fallback, the rate's evidence: a its own settlements, b its provider's published price, c its own other prices scaled, d a peer model's, e its media type's default.

Available options:
a,
b,
c,
d,
e
cast_usage
Cast Usage · object | null

With X-Voyager-Cast-Version: 1 and input.cast: what the Elements compile to. Pass its plan as input.cast_plan to create the job only if the Elements still compile to it.