---
title: "List avatar videos"
method: GET
path: "/v1/avatar-videos"
tags: ["Avatar Videos"]
---

# List avatar videos

`GET /v1/avatar-videos`

## Request

- Base URL: `https://api.anam.ai`
- URL: `https://api.anam.ai/v1/avatar-videos`
- Auth: HTTP bearer

## Query parameters

- `status` 'pending' | 'running' | 'finalizing' | 'completed' | 'failed' | 'cancelled'
- `createdAfter` string, date-time
- `createdBefore` string, date-time
- `limit` integer
- `cursor` string

## Response `200`

Newest-first page scoped to the API-key organization.

- object
  - `data` AvatarVideo[], required
    - `id` string, required
    - `status` 'pending' | 'running' | 'finalizing' | 'completed' | 'failed' | 'cancelled', required
    - `completionReason` 'script_completed' | 'max_duration_reached' | 'cancelled' | 'null', nullable
    - `truncated` boolean, required
    - `durationSeconds` number, nullable
    - `effectiveMaxDurationSeconds` integer, required
    - `sessionId` string, nullable: Underlying normal EngineSession ID. Use its recording deletion endpoint for deletion.
    - `region` 'eu' | 'us' | 'null', nullable, required: Region the job is pinned to: eu when created on api.eu.anam.ai, us when created on api.us.anam.ai. Its session, recording and retries stay in that region. Null when created on api.anam.ai.
    - `zeroDataRetention` boolean, required: Whether the job runs with Zero Data Retention, which keeps its script, and a direct request's style prompts, out of Lab's database. A persona-sourced job's director notes stay in its stored persona. Always true for a job created on a regional host.
    - `content` object, required
      - `available` boolean, required
      - `deleteAt` string, date-time, nullable, required: When the recording, report and job content are deleted. Null while the job runs, or when they are kept until deleted. Not the URL expiry.
      - `url` string, uri
      - `expiresAt` string, date-time: When this presigned url expires (one hour).
    - `failure` object, nullable
      - `code` string
      - `message` string
      - `retryable` boolean: Whether a retry can work, as far as the job record shows. False when the same failure would recur or the content a retry reuses has been deleted; create a new avatar video instead. When true, POST /v1/avatar-videos/{id}/retry can still return 409 content_expired if the content turns out to be gone.
    - `retryOf` string, nullable
    - `createdAt` string, date-time, required
    - `startedAt` string, date-time, nullable
    - `completedAt` string, date-time, nullable
    - `metadata` object, required
  - `nextCursor` string, nullable, required

## Other responses

- `400`: Invalid filters or cursor
- `401`: Missing or invalid API key
- `403`: API key lacks avatar-video read access

## Changes

- **2026-10-23** `6767eb6e88fb`: 2 info
  - added the required property `data/items/region` to the response with the `200` status
  - added the required property `data/items/zeroDataRetention` to the response with the `200` status
- **2026-10-23** `50c2b3e91610`: 1 info
  - added the required property `data/items/content/deleteAt` to the response with the `200` status
- **2026-08-06** `8cdd2035557c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/anam/apis/anam-ai-api/changes/v1/avatar-videos/get.md)

---

[API](https://skmtc.dev/anam/apis/anam-ai-api.md) - [All operations](https://skmtc.dev/anam/apis/anam-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/anam/apis/anam-ai-api/revisions/3e535ea89083?raw)
