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

# Viggle API V1

> Create controllable character-motion videos with Viggle API V1.

<Note>
  **V1 is the current API.** Start new integrations with V1. Existing integrations using `/api/*` can follow the [migration guide](/v1/production/migrate-from-legacy).
</Note>

Viggle API is organized around reusable assets, asynchronous operations, and delivered artifacts. Create Characters and Motions once, then reuse them in multiple Renders. A Render is an operation; its MP4 and optional alpha video are its artifacts.

```mermaid theme={null}
graph LR
  A["Character asset"] --> D["Render operation"]
  B["Motion asset"] --> D
  C["Inline image or video"] --> D
  D --> E["Video artifacts"]
```

## Create your first render

<Steps>
  <Step title="Get an API key" icon="key">
    Create an API key in the [Viggle Dashboard](https://portal.viggle.ai/keys).
  </Step>

  <Step title="Create a render" icon="film">
    Upload an image and a motion video to `POST /v1/renders`.
  </Step>

  <Step title="Wait for the result" icon="clock">
    Poll `GET /v1/videos/{render_id}` until `status` is `ready`, then use `video_url`.
  </Step>
</Steps>

<Columns cols={2}>
  <Card title="Quick Start: Video Remix" icon="play" href="/v1/guides/quickstart-mix">
    Turn a character image and a motion video into a finished video.
  </Card>

  <Card title="Quick Start: Motion 3D" icon="activity" href="/v1/guides/quickstart-mocap">
    Turn a motion video into a downloadable 3D (glb) animation.
  </Card>
</Columns>

## Choose a workflow

<Columns cols={2}>
  <Card title="Quick Start: Reference to Video" icon="clapperboard" href="/v1/guides/quickstart-reference-to-video">
    Generate a video from a reference video or images and a text prompt.
  </Card>

  <Card title="Render now" icon="zap" href="/v1/guides/quickstart-mix">
    Upload an image and a motion video in one request. Best for a first render or one-off work.
  </Card>

  <Card title="Reuse assets" icon="refresh-cw" href="/v1/guides/reuse-assets">
    Create Characters and Motions once, then reference their IDs in later Render requests.
  </Card>
</Columns>

## Core concepts

| Concept | What it represents |
| - | - |
| Character | A reusable character created from an image. IDs start with `char_`. `type=vsplat`/`all` also extracts a 3D Gaussian splat. |
| Motion | A reusable driving motion created from a video, or generated from text. IDs start with `mot_`. `type=glb`/`all` also extracts or generates a 3D animation. |
| Render | An asynchronous video-generation job. IDs start with `render_`. |
| Motion Template | An official Viggle motion, referenced by its template ID, that you can reuse directly in a Render or import into your own Motion. |

## Next steps

<Columns cols={3}>
  <Card title="Authentication" icon="lock" href="/v1/authentication">Send API keys securely.</Card>
  <Card title="API reference" icon="code" href="/v1/api-reference/overview">Browse every V1 resource.</Card>
  <Card title="Production guide" icon="server" href="/v1/production/async-jobs">Handle async jobs and failures.</Card>
</Columns>


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