# API reference

> Every operation the API publishes, generated from its OpenAPI document.

Every operation the API publishes, generated from its OpenAPI document, so it describes what is deployed. The live document is `https://api.lumavox.ai/openapi.json`. From TypeScript, the [server SDK](https://docs.lumavox.ai/sdks/server.md) is typed from it; from any other language, generate a client from it rather than writing one by hand.

Every operation but `GET /health` needs a credential — `Authorization: Bearer <key>`, or `X-API-Key: <key>` — see [Authentication](https://docs.lumavox.ai/authentication.md). Errors share one shape: see [Errors and limits](https://docs.lumavox.ai/errors.md). To try a call in the browser with your own key, open Swagger at `https://api.lumavox.ai/docs`.

| Section | Operations | What it covers |
|---|---|---|
| [Text to speech](https://docs.lumavox.ai/reference/tts.md) | 1 | Speech generation |
| [Images](https://docs.lumavox.ai/reference/images.md) | 2 | Image generation |
| [Video](https://docs.lumavox.ai/reference/videos.md) | 2 | Video generation |
| [Skyboxes](https://docs.lumavox.ai/reference/skybox.md) | 3 | 360° environments — an 8K HDRI for lighting a 3D scene, an equirectangular PNG and a depth map. One flat price per generation, whatever you ask for |
| [Templates](https://docs.lumavox.ai/reference/templates.md) | 4 | Generations somebody has already designed — the prompt, the size, every parameter — leaving only the media inputs for you to fill. Priced up front, and polled on the capability's own endpoint |
| [Stored audio](https://docs.lumavox.ai/reference/audio.md) | 2 | Speech as a queued generation — stored, and the only door that encodes mp3 or opus |
| [Transcription](https://docs.lumavox.ai/reference/transcription.md) | 3 | Speech to text — inline for short audio, `stream=true` for newline-delimited segments, queued for long |
| [Voices](https://docs.lumavox.ai/reference/voices.md) | 9 | The voices a key may speak with, and — on `voices:write` — adding, designing, editing and deleting your own |
| [Agents](https://docs.lumavox.ai/reference/agents.md) | 11 | Authoring agents: the characters `/v1/agent/*` talks to, their organisation-wide defaults, and what each may look up. Reads on `agent`, writes on `agent:write` |
| [Knowledge](https://docs.lumavox.ai/reference/knowledge.md) | 15 | What you tell your agents — entries an agent can look up by meaning, written and assigned from your own systems |
| [Tools](https://docs.lumavox.ai/reference/tools.md) | 8 | What your agents can call while they reply — your server, signed, or the person's app over the WebSocket — each turned on per agent. Reads on `agent`, writes on `agent:write` |
| [Conversations](https://docs.lumavox.ai/reference/agent.md) | 12 | Conversations with an agent. There is a streaming door too, on a WebSocket that OpenAPI cannot describe — see *The WebSocket* in the docs |
| [Assets](https://docs.lumavox.ai/reference/assets.md) | 13 | The library — everything your services have produced and you have uploaded. Reads and uploads on `assets`; renaming, moving, deleting and folders on `assets:write` |
| [Generations](https://docs.lumavox.ai/reference/generations.md) | 2 | Every generation across every capability, in one list — the way back to an id you lost, and the reconciliation loop |
| [Usage](https://docs.lumavox.ai/reference/usage.md) | 2 | What your organisation has spent, and what it has left |
| [End users](https://docs.lumavox.ai/reference/end-users.md) | 9 | The people your agents talk to and you generate on behalf of |
| [Ephemeral keys](https://docs.lumavox.ai/reference/ephemeral-keys.md) | 6 | Short-lived tokens for one end user's device, with their own credit ceiling |
| [System](https://docs.lumavox.ai/reference/system.md) | 2 | Health and metadata |
