---
title: "Retry an avatar video"
method: POST
path: "/v1/avatar-videos/{id}/retry"
tags: ["Avatar Videos"]
---

# Retry an avatar video

`POST /v1/avatar-videos/{id}/retry`

## Request

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

Creates a new job from the original immutable snapshot and links it through retryOf. Only terminal jobs can be retried.

## Path parameters

- `id` string, required

## Headers

- `Idempotency-Key` string, required

## Response `202`

New retry job accepted.

- AvatarVideo
  - `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

## Other responses

- `400`: Missing or invalid Idempotency-Key
- `401`: Missing or invalid API key
- `403`: API key lacks avatar-video write access
- `404`: Original avatar video not found
- `409`: avatar_video_not_retryable when the job is still running or failed in a way a retry cannot fix (failure.retryable is false); content_expired when its retention has ended, even before Lab has deleted the content, or its content was deleted by a session or force deletion; or an Idempotency-Key conflict
- `429`: Session duration unavailable or session/avatar-video concurrency exhausted
- `502`: Worker or session dispatch failed
- `503`: Avatar-video generation is disabled or the worker is unavailable, or the API key could not be checked because of a temporary server problem (the key may be valid; retry after `Retry-After` seconds).

## Changes

- **2026-10-23** `6767eb6e88fb`: 2 info
  - added the required property `region` to the response with the `202` status
  - added the required property `zeroDataRetention` to the response with the `202` status
- **2026-10-23** `50c2b3e91610`: 1 info
  - added the required property `content/deleteAt` to the response with the `202` status
- **2026-08-08** `67afd1c5db59`: 3 info
  - added the non-success response with the status `400`
  - added the non-success response with the status `502`
  - added the non-success response with the status `503`
- **2026-08-06** `8cdd2035557c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/anam/apis/anam-ai-api/changes/v1/avatar-videos/:id/retry/post.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)
