> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voyager.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Voyager API

> Generate images, video, speech, music, sound effects and 3D over HTTP with the same models and Voyager credits as the Voyager app.

The Voyager API is a REST API for paid Voyager workspaces. It runs the same models as the Voyager app, at the same prices, and draws from the same Voyager credits. Create a job, wait for it or receive a webhook, then download the result.

> [!NOTE]
>
> Building with a coding agent such as Claude Code, Codex or Cursor? Start at [Set up with your coding agent](https://docs.voyager.so/api/coding-agents.md): it has a prompt you can paste that wires the API into your project.

## Base URL

```text theme={"system"}
https://api.voyager.so/v1
```

Every request is HTTPS and JSON. Send your API key as a Bearer token:

```text theme={"system"}
Authorization: Bearer vy_live_...
```

Keep the key in the `VOYAGER_API_KEY` environment variable. Create one at [voyager.so/dashboard/api](https://voyager.so/dashboard/api); see [Authentication](https://docs.voyager.so/api/authentication.md).

## Quick example

```bash theme={"system"}
curl https://api.voyager.so/v1/jobs \
  -H "Authorization: Bearer $VOYAGER_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"model": "nano-banana-2.1", "operation": "text-to-image", "input": {"prompt": "a red fox in snow", "aspect_ratio": "16:9"}}'
```

The response is a [job](https://docs.voyager.so/api/jobs.md) with `status: "queued"`. Call `GET /v1/jobs/{id}?wait=25` until it is `succeeded`, then download `outputs[].url`. The [Quickstart](https://docs.voyager.so/api/quickstart.md) does this end to end in curl, Python and JavaScript.

## What you can do

| Area | Endpoints | What for |
| - | - | - |
| **Models** | `GET /models`, `GET /models/{id}` | Find a model and read the `input_schema` its `input` must match. See [Models](https://docs.voyager.so/api/models.md). |
| **Estimates** | `POST /estimate` | Check what a job would cost, and whether it can run, before you create it. |
| **Jobs** | `POST /jobs`, `GET /jobs/{id}`, `GET /jobs`, `POST /jobs/{id}/cancel` | Generate, wait, list and cancel. See [Jobs and polling](https://docs.voyager.so/api/jobs.md). |
| **Files** | `POST /files`, `POST /files/{id}/complete`, `GET /files/{id}`, `GET /files/{id}/content`, `DELETE /files/{id}` | Upload reference images, audio or video; download results. |
| **Cast** | `GET /cast`, `POST /cast`, `GET`, `PATCH`, `DELETE /cast/{id}`, references | Saved characters, locations and props for consistent shots. See [Cast](https://docs.voyager.so/api/cast.md). |
| **Voices** | `GET /voices` | Voices for speech jobs, including your workspace's voice clones. |
| **Account** | `GET /account` | Your workspace, plan, credits available and limits. |

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 `POST` when you send an `Idempotency-Key` header: a retry returns the original result instead of buying a second one. See [Idempotency](https://docs.voyager.so/api/jobs.md#idempotency).
* **Errors** share one envelope with a stable `code`. See [Errors](https://docs.voyager.so/api/errors.md).
* **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](https://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

> [card] [Authentication](https://docs.voyager.so/api/authentication.md)
>
> Create a key and keep it safe.

> [card] [Quickstart](https://docs.voyager.so/api/quickstart.md)
>
> Generate and download your first image.

> [card] [Jobs and polling](https://docs.voyager.so/api/jobs.md)
>
> Statuses, waiting, credits, cancel and uploads.

> [card] [Set up with your coding agent](https://docs.voyager.so/api/coding-agents.md)
>
> A prompt your agent can follow, plus docs it can read.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.