> ## 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.

# Introduction

<h2 id="introduction">
  Build content that's alive
</h2>

Today's content is offline and passive — you watch, you scroll, and that's it. Vivix is building the next generation of content infrastructure to turn it into something fundamentally different: interactive, real-time generated experiences. Avatars that perform, listen, and improvise. Worlds and stories that react to what users say, type, or do.

The Vivix API gives developers a single platform to generate, orchestrate, and stream this new kind of content — turning viewers into participants, and participants into creators.

<h2 id="core-capabilities">
  Core capabilities
</h2>

Bring characters to life with expressive movement, interaction with their surroundings, and continuous real-time generation.

<Columns cols={2}>
  <Card title={"Full-body motion & lip sync"}>
    Create expressive characters with full-body movement and natural lip sync. From speaking and gesturing to singing and dancing, bring large, dynamic actions to life in real time.
  </Card>

  <Card title={"Spatial interaction"}>
    Let characters move through the scene as the interaction unfolds. Ask them to walk across a room, turn toward you, or approach an object, all guided by your input.
  </Card>

  <Card title={"Consistent object references"}>
    Bring a product or prop into the scene from a reference image. Keep it in view and visually consistent as the character holds, presents, or interacts with it.
  </Card>

  <Card title={"Unlimited streaming"}>
    Run live sessions for as long as you want, with no time limit. Keep conversations, performances, and interactive experiences going as your audience shapes what happens next.
  </Card>
</Columns>

<h2 id="use-cases">
  Use cases
</h2>

Four examples of what developers can build with Vivix.

<Columns cols={2}>
  <Card title={"Customer Support"} img={"https://static.vivi-x.ai/images/2026/06/25/c90cf1b4832cb2d0.png"}>
    Engage users in natural, personalized conversations using your knowledge base.
  </Card>

  <Card title={"Full-Body Live Performance"} img={"https://static.vivi-x.ai/images/2026/07/08/1c5ae7ed82cf69de.png"}>
    Create full-body performers that move, interact with their surroundings, and respond live.
  </Card>

  <Card title={"Interactive Learning"} img={"https://static.vivi-x.ai/images/2026/07/08/7bccb73dcf0a4a58.webp"}>
    Turn stories and lessons into interactive experiences that respond as the learner participates.
  </Card>

  <Card title={"Interactive Worlds · Preview"} img={"https://static.vivi-x.ai/images/2026/07/08/4350423aed47b45b.jpg"}>
    Create worlds and stories that react to what users say, type, or do.

    [Watch preview](https://static.vivi-x.ai/videos/2026/06/18/3c872e5860904940.mp4)
  </Card>
</Columns>

For a full walkthrough of how these scenarios are built, including the core integration code, see the sample cases: [Customer Support](/overview/sample-cases/customer-support) and [Live Performance](/overview/sample-cases/live-performance).

<h2 id="choose-an-api">
  Choose your API
</h2>

The Vivix API has two product lines. Which one you need comes down to **real-time interaction** versus **asynchronous video generation**:

| Product line | When you need | Integration path | Models |
| - | - | - | - |
| [Streaming Avatar](/streaming-avatar/overview) | Real-time interaction: an avatar that talks with users live, performs actions, sings and dances — with support for interrupting, swapping the avatar, or swapping the image at any time. | Create a session over REST → join the real-time media stream (TRTC) → drive the session over the WSS control channel. | `vivix-a1-stream` (variant `vivix-a1-stream-lite`) |
| [Blazing Fast Video Generation](/video-generation/avatar-video-generation) | Asynchronous generation: produce a finished video from [text, audio, and images](/video-generation/avatar-video-generation). | Submit a generation task over REST → poll the task status → fetch the playback URL of the finished video. | A1 line: `vivix-a1-lite` / `vivix-a1`; W1 line: `vivix-w1` |

A simple test: **does your user need to influence the picture while watching it**? If yes — the user says something and the avatar responds in real time — choose Streaming Avatar: it delivers a continuous real-time audio and video stream plus a WSS control channel. If not — you just need a video file to play or distribute — choose Blazing Fast Video Generation: it delivers an asynchronous task and a playback URL for the finished video. Both product lines share the same Base URL, the same API key authentication, and the unified `{code, message, data}` response envelope.

See [Models](/overview/models) for each model's capability boundaries and selection guidance, including [`GET /v1/models`](/overview/models#list-models) to list the models enabled for your API key. A third product line, **Streaming World** (a real-time world model, `vivix-w1-stream`), is in private beta and not yet publicly available — see [Streaming World](/streaming-world/configuration).

<h2 id="quickstart">
  Quickstart
</h2>

Create your account and API key to get started. For Streaming Avatar, try a template next.

<Steps>
  <Step title={"Create your Vivix account"}>
    Register for the Vivix developer platform and sign in to your account.
  </Step>

  <Step title={"Generate an API key"}>
    Open **API Keys** in the developer platform, create a key, and store it somewhere secure.
  </Step>

  <Step title={"Start with a template"}>
    Building with Streaming Avatar? Run the Avatar Playground template locally with the Vivix Studio CLI to see how an avatar speaks and moves.

    [Open Avatar Playground →](/streaming-avatar/get-started/avatar-playground)
  </Step>
</Steps>

Send REST requests to `https://api.vivix.ai` with your API key in the request header:

```text theme={null}
Authorization: Bearer <API_KEY>
```

<Note>
  **Keep your API key on your server.** Any call that sends `Authorization: Bearer <VIVIX_API_KEY>` — creating or closing a session, submitting a generation — must run on your own backend; never ship your Vivix API key to a browser or mobile app. A browser only needs the values returned by session creation: `control.url` and `control.client_secret` for the control channel, plus the TRTC media credentials. `control.client_secret` is a short-lived, single-session credential: it authenticates one session's control channel, stays valid only until that session ends (up to `max_duration_seconds`, 20 minutes by default), and cannot be refreshed — create a new session for a new one. It is not single-use: you can reconnect the control channel with it during the same session, and it stops working the moment the session closes or expires (there is no separate way to revoke it). It is safe to use from the browser; your API key is not. A browser appends it to the returned control URL as the token query parameter; a server-side client may instead send Authorization: Bearer \<control.client\_secret>. The query parameter name must be token, not client\_secret. Do not log the credential or the complete `control.url` out of logs and analytics as well.
</Note>

Once you are ready, continue with the product line that matches what you are building:

<Columns cols={2}>
  <Card title={"Continue with Streaming Avatar"} href={"/streaming-avatar/overview"}>
    For conversation-first, real-time avatar products.
  </Card>

  <Card title={"Continue with Blazing Fast Video Generation"} href={"/video-generation/avatar-video-generation"}>
    For asynchronous video generation.
  </Card>
</Columns>
