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

# Models

Choose a model based on the experience you want to build.

* **A-series** — for realtime avatar experiences and avatar video generation.
* **W-series** — for continuous realtime worlds and reference-guided world video generation.

Pass one of the supported model IDs below in the `model` field. Refer to the linked API guide for endpoint-specific requirements. To discover which models are enabled for your API key, call [`GET /v1/models`](#list-models).

<h2 id="model-overview">
  Model overview
</h2>

| Model | What it does | Docs |
| - | - | - |
| `vivix-a1-stream`<br />`vivix-a1-stream-lite` | Realtime avatar sessions | [Streaming Avatar](/streaming-avatar/overview) |
| `vivix-a1` | Avatar videos driven by script, audio and images | [Avatar Video Generation](/video-generation/avatar-video-generation) |
| `vivix-w1-stream` | Continuous realtime world sessions steered by open-ended Events | [Streaming World](/streaming-world/configuration) |
| `vivix-w1` | Reference-driven world video generation | [World Video Generation](/video-generation/world-video-generation) |

<h3 id="list-models">
  List Models
</h3>

Returns the models enabled for your API key. Use this to discover which `name` values you can pass as `model` on Streaming Avatar and Avatar Video Generation requests.

The list is scoped to your workspace: you only see models that are currently enabled for your key. Each item is the current primary version of that model. Pinned minor versions are not listed.

<Note>
  **Response envelope.** REST responses are wrapped in `{code, message, data}`: `code = 0` means success. Field descriptions below refer to fields inside `data`.
</Note>

**GET** `/v1/models`

#### Response Fields

<ResponseField name={"models"} type={"array"}>
  Models available to the current API key. An empty list means none are enabled for this key.

  <Expandable title="properties">
    <ResponseField name={"name"} type={"string"}>
      Public model ID. Pass this as the `model` field on later requests.
    </ResponseField>

    <ResponseField name={"tag"} type={"optional string"}>
      Optional version tag. Omitted for the default / latest version.
    </ResponseField>
  </Expandable>
</ResponseField>

#### Error Cases

| Condition | API error code |
| - | - |
| The API key is missing or invalid. | `10001 missing api key` or `10003 invalid api key` |
| The request exceeded the API key rate limit (HTTP 429; 60 requests/min per key by default; the response includes a Retry-After header). | `10008 API rate limit exceeded` |

```bash Request theme={null}
curl https://api.vivix.ai/v1/models \
  -H "Authorization: Bearer $VIVIX_API_KEY"
```

```json Response theme={null}
{
  "code": 0,
  "message": "success",
  "data": {
    "models": [
      {
        "name": "vivix-a1"
      },
      {
        "name": "vivix-a1-stream"
      },
      {
        "name": "vivix-a1-stream-lite"
      }
    ]
  }
}
```
