Avatars & Images
# Avatars & image generation
An **avatar** is created from a reference selfie; Odrazio then generates
portrait images (landscape and portrait) you can use for video. Each endpoint
below has its own page with a full request and response example.
| Method | Path | Description |
| --- | --- | --- |
| `GET` | [`/v1/avatars`](/avatars-list) | List your avatars with their generated images. |
| `GET` | [`/v1/avatars/built-in`](/avatars-built-in) | List built-in (platform) avatars you can use without cloning. |
| `GET` | [`/v1/avatars/:id`](/avatars-get) | One avatar and its images — poll `status`. |
| `POST` | [`/v1/avatars`](/avatars-create) | Create an avatar from a selfie; starts a 4-image batch. |
| `POST` | [`/v1/avatars/:id/images`](/avatars-create-image) | Generate one more image from a scene preset. |
## Typical flow
1. Upload a selfie with [`POST /v1/uploads/image`](/uploads-image).
2. [Create an avatar](/avatars-create) from the uploaded URL.
3. [Poll it](/avatars-get) until the required image is `COMPLETED` and the
avatar reaches `IMAGE_READY`.
4. Use a completed image's `id` as `avatarImageId` in
[Create a generation](/generations-create).
Don't want to clone your own? [List built-in avatars](/avatars-built-in)
instead — no upload or polling required.
## Costs
Avatar creation and each custom image deduct credits up front (refunded on
terminal failure). See [Account & Credits](/account).
The initial `POST /v1/avatars` response contains the avatar record only. The
asynchronous worker creates `generatedImages` afterwards, so always poll the
avatar before selecting an image for video.