---
title: "Get Custom Agent Video Status"
method: GET
path: "/v3/custom-agents/videos/{video_id}"
tags: ["Custom Agents"]
---

# Get Custom Agent Video Status

`GET /v3/custom-agents/videos/{video_id}`

## Request

- Base URL: `https://api.heygen.com`
- URL: `https://api.heygen.com/v3/custom-agents/videos/{video_id}`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Returns status + presigned output MP4 URL once the workflow completes.

## Path parameters

- `video_id` string, required

## Response `200`

Successful response

- object
  - `data` CustomAgentVideoStatusResponse: 200 response body for GET /v3/custom-agents/videos/{video_id}.
    - `video_id` string, required
    - `status` string, required: RUNNING | COMPLETED | FAILED | CANCELED | TIMED_OUT | TERMINATED.
    - `output_video_url` string, nullable: Presigned MP4 URL when status=COMPLETED.
    - `output_snapshot_s3_uri` string, nullable: Agent workspace snapshot (debug/replay).
    - `error` string, nullable

## Other responses

- `400`: Invalid request parameters
- `401`: Authentication failed
- `404`: Resource not found
- `429`: Rate limit exceeded

## Changes

- **2026-11-03** `7dfa5e59b4f5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/heygen/apis/heygen-external-api/changes/v3/custom-agents/videos/:video_id/get.md)

---

[API](https://skmtc.dev/heygen/apis/heygen-external-api.md) - [All operations](https://skmtc.dev/heygen/apis/heygen-external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/heygen/apis/heygen-external-api/revisions/7dfa5e59b4f5?raw)
