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

# Protoface API

> Frontier media models and live avatars behind one API.

<div
  style={{
border: "1px solid rgba(12, 13, 14, 0.10)",
borderRadius: "12px",
marginBottom: "2rem",
marginTop: "0.5rem",
overflow: "hidden"
}}
>
  <img src="https://mintcdn.com/protoface/fA4WUYDZVm2TeHHW/images/home/studio-video-still.webp?fit=max&auto=format&n=fA4WUYDZVm2TeHHW&q=85&s=f58892bdb8f978497941fc39c9c375aa" alt="Still from a generated Protoface video" style={{ display: "block", height: "auto", margin: 0, width: "100%" }} width="1448" height="1086" data-path="images/home/studio-video-still.webp" />
</div>

Protoface is a generative media inference platform, running frontier
models for video, images, speech, music, 3D assets, and realtime avatars
behind a single API key.

## Inference

Generating a video takes one call to start it and one to fetch the
result. In the example below, MiniMax H3 returns eight seconds of video
with sound.

```bash theme={null}
curl -X POST https://api.protoface.com/v1/run/minimax/minimax-h3 \
  -H "Authorization: Bearer $PROTOFACE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A wide shot of a sailboat crossing a quiet bay at sunrise.",
    "duration_seconds": 8,
    "quality": "768p",
    "aspect_ratio": "16:9"
  }'
```

The request returns a run ID immediately, and `GET /v1/runs/{id}` carries
the file once the run finishes.

```json theme={null}
{
  "id": "run_...",
  "status": "completed",
  "video": {
    "url": "https://...",
    "content_type": "video/mp4",
    "file_name": "output.mp4"
  }
}
```

Every model follows this pattern. Only the body changes, and you build it
from the model's [catalog entry](/guides/models). The
[inference quickstart](/guides/model-inference) runs the full sequence.

## Realtime

Protoface Realtime adds a realtime face to your voice agent, driven by
the audio it already produces. It works across languages and with any
pipeline, whether speech-to-speech or separate STT, LLM, and TTS. Use the
LiveKit or Pipecat plugin, another supported platform, or the REST API.
The [realtime quickstart](/quickstart) adds a live avatar to a LiveKit
agent.

## Next steps

<Columns cols={2}>
  <Card title="Inference quickstart" href="/guides/model-inference" icon="rocket">
    Generate a video with curl, Python, or JavaScript.
  </Card>

  <Card title="Model catalog" href="/guides/models" icon="layers">
    Browse every model and read its input contract.
  </Card>

  <Card title="Realtime quickstart" href="/quickstart" icon="radio">
    Run a LiveKit agent with a live avatar.
  </Card>

  <Card title="Other integrations" href="/guides/more-integrations" icon="blocks">
    Starters for Pipecat, Agora, Vapi, and more.
  </Card>

  <Card title="Avatars" href="/guides/avatars" icon="user-round">
    Create and manage avatars for realtime sessions.
  </Card>

  <Card title="Errors" href="/reference/errors" icon="triangle-alert">
    Stable error codes, rate limits, and retries.
  </Card>
</Columns>


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