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

# Multimodality

> Beyond text: images, audio, and video through the same gateway, key, and tracing.

The gateway isn't text-only. The same endpoint and API key reach models that see images and PDFs, generate images, speak and transcribe, and produce video — each with the routing, governance, and tracing you get on every call.

## Modalities

<CardGroup cols={2}>
  <Card title="Vision & PDFs" icon="image" href="/build/multimodal/vision-pdfs">
    Send images and documents into a model as message content, with optional structured output.
  </Card>

  <Card title="Images" icon="palette" href="/build/multimodal/images">
    Generate and edit images with `POST /v3/images`. Sora, GPT Image, Imagen, and more.
  </Card>

  <Card title="Audio" icon="waveform-lines" href="/build/multimodal/audio">
    Text to speech and speech to text with `POST /v3/audio/speech` and `/v3/audio/transcriptions`.
  </Card>

  <Card title="Video" icon="film" href="/build/multimodal/video">
    Generate video from a prompt or reference image with `POST /v3/videos`.
  </Card>

  <Card title="Realtime voice" icon="microphone" href="/build/realtime/quickstart">
    Two-way voice over WebSocket. OpenAI, xAI, and Gemini behind one protocol.
  </Card>

  <Card title="Models" icon="brain" href="/capabilities/models">
    The full catalog, with each model's input and output modalities marked.
  </Card>
</CardGroup>

## Discovering what a model can do

Each modality has a discovery endpoint that reports the models available and their capabilities, so you don't have to hardcode a list:

| Endpoint                | Returns                                                                          |
| ----------------------- | -------------------------------------------------------------------------------- |
| `GET /v3/images/models` | Models for `POST /v3/images`, with sizes, aspect ratios, and edit support.       |
| `GET /v3/audio/models`  | Speech (`tts`) and transcription (`stt`) models, with voices and formats.        |
| `GET /v3/videos/models` | Models for `POST /v3/videos`, with resolutions, aspect ratios, and max duration. |

```bash theme={null}
curl -s "https://api.opper.ai/v3/images/models" \
  -H "Authorization: Bearer $OPPER_API_KEY"
```

## Input, output, and storage

Generation endpoints (`/v3/images`, `/v3/audio/speech`, `/v3/videos`) return the result inline as base64 by default and also persist a copy to [Files](/build/multimodal/files) so you get a reusable `file_id` and a presigned `url`. That stored output can be fed straight into a later call — an `image` into a video generation, an audio `file_id` into a transcription — without re-encoding. Persistence respects your retention rules and is skipped on zero-data-retention projects.
