Building with a coding agent such as Claude Code, Codex or Cursor? Start at Set up with your coding agent: it has a prompt you can paste that wires the API into your project.
Base URL
VOYAGER_API_KEY environment variable. Create one at voyager.so/dashboard/api; see Authentication.
Quick example
status: "queued". Call GET /v1/jobs/{id}?wait=25 until it is succeeded, then download outputs[].url. The Quickstart does this end to end in curl, Python and JavaScript.
What you can do
Job types are
image, video, speech, music, sound_effect and 3d. The type comes from the model you pick.
Conventions
- IDs are prefixed strings:
job_…,file_…,cst_…,evt_…,key_…. Treat them as opaque. - Times are ISO 8601 in UTC.
- Lists return
{"object": "list", "data": [...], "has_more": true, "next_cursor": "..."}. Pass?cursor=<next_cursor>for the next page and?limit=(up to 100) for page size. - Retries are safe on every
POSTwhen you send anIdempotency-Keyheader: a retry returns the original result instead of buying a second one. See Idempotency. - Errors share one envelope with a stable
code. See Errors. - Request IDs: every response carries
X-Request-ID. Include it when you contact support.
Plans and credits
The API is on paid Voyager plans, trials included. Every job is paid from your workspace’s Voyager credits, the same balance the Voyager app uses. Model prices and plans are on voyager.so/pricing;POST /estimate and GET /v1/models give you a model’s cost in credits before you run it.
If your workspace moves to Free, you can still read jobs, download results, cancel work already accepted, and list or revoke keys. New paid work returns 402 paid_plan_required until you upgrade.
Next steps
Authentication
Create a key and keep it safe.
Quickstart
Generate and download your first image.
Jobs and polling
Statuses, waiting, credits, cancel and uploads.
Set up with your coding agent
A prompt your agent can follow, plus docs it can read.