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

# Reuse characters and motions

> Create reusable assets for repeated V1 renders.

Create a Character or Motion once when you expect to use it in more than one Render. V1 keeps these as separate reusable resources.

## Create a Character

```bash theme={null}
curl -X POST "https://apis.viggle.ai/v1/characters" \
  -H "Authorization: Bearer $VIGGLE_API_KEY" \
  -F "image=@character.png" \
  -F "name=Presenter"
```

## Create a Motion

```bash theme={null}
curl -X POST "https://apis.viggle.ai/v1/motions" \
  -H "Authorization: Bearer $VIGGLE_API_KEY" \
  -F "motion_video=@dance.mp4" \
  -F "name=Dance loop"
```

Both operations return an asynchronous resource. Wait until each resource has `status: "ready"` before using it in a Render.

## Render with reusable IDs

```bash theme={null}
curl -X POST "https://apis.viggle.ai/v1/renders" \
  -H "Authorization: Bearer $VIGGLE_API_KEY" \
  -F "character_id=char_123abc" \
  -F "motion_id=mot_456def"
```

## Asset readiness

Characters and Motions expose a `capabilities` array. Use an asset in a Render only when its `status` is `ready` and `capabilities` includes `video_render`.

<Tip>
  Use direct inputs for a one-time job. Use reusable assets when the same character or motion appears in multiple renders.
</Tip>
