---
title: "List avatars for talking-head videos"
method: GET
path: "/avatars"
tags: ["Videos"]
---

# List avatars for talking-head videos

`GET /avatars`

Returns every avatar you can use for talking-head videos: built-in avatars available to everyone, plus your own characters.

Pass the `id` as `avatarId` in `POST /videos/generate` with `mediaType: "avatar"`. Create a new avatar with `POST /elements` (type `character`, with a photo) or in the AITuber dashboard.

## Response `200`

OK

- object[]
  - `id` string, uuid, required — Avatar ID. Pass as `avatarId` in POST /videos/generate with `mediaType: "avatar"`.
  - `name` string, required — Display name.
  - `description` string, nullable, required — Look description, when set.
  - `custom` boolean, required — True for avatars you created in the dashboard, false for built-in avatars.
  - `previewImageUrl` string, nullable, required — The avatar reference image.
  - `defaultVoiceId` string, nullable, required — A voice previously paired with this avatar, when set. You can pass it as `voiceId`, or pick any voice from `GET /voices`.

## Other responses

- `401` — 401
- `402` — 402
- `403` — 403

## Changes

- **2026-08-15** `ac1de8fd0dfc` — 1 breaking, 2 info
  - the `oneOf[subschema #1]/data` response's property type/format changed from ``/`` to `object`/`` for status `403`
  - the response property `oneOf[subschema #1]/data` became required for the status `403`
  - added the required property `oneOf[subschema #1]/data/feature` to the response with the `403` status

[Change history](https://skmtc.dev/aituber/apis/aituber-api/changes/avatars/get.md)

---

[API](https://skmtc.dev/aituber/apis/aituber-api.md) · [All operations](https://skmtc.dev/aituber/apis/aituber-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/aituber/aituber-api/revisions/ac1de8fd0dfc/schema)
