# List Videos

## cURL

```bash
curl --request GET \
  --url 'https://api.heygen.com/v3/videos?limit=10' \
  --header 'x-api-key: <api-key>'
```

### Status Codes

- **200**
- **400**
- **401**
- **429**

### Sample Response

```json
{
  "data": [
    {
      "id": "<string>",
      "status": "pending",
      "title": "My Generated Video",
      "created_at": 1711929600,
      "completed_at": 1711930200,
      "video_url": "https://files.heygen.ai/video/abc123.mp4",
      "thumbnail_url": "https://files.heygen.ai/thumb/abc123.jpg",
      "gif_url": "https://files.heygen.ai/gif/abc123.gif",
      "captioned_video_url": "https://files.heygen.ai/video/abc123_captioned.mp4",
      "subtitle_url": "https://files.heygen.ai/srt/abc123.srt",
      "duration": 30.5,
      "folder_id": "folder_abc123",
      "output_language": "en-US",
      "failure_code": "rendering_failed",
      "failure_message": "Avatar rendering timed out",
      "video_page_url": "https://app.heygen.com/video/abc123"
    }
  ],
  "has_more": true,
  "next_token": "<string>"
}
```

## Authorizations

### ApiKeyAuth

- **x-api-key**: string (header, required)

HeyGen API key. Obtain it from your HeyGen dashboard.

## Query Parameters

- **limit**: integer (default: 10)  
  Maximum number of items to return per page. Required range: `1 <= x <= 100`

- **token**: string  
  Opaque pagination cursor from a previous response.

- **folder_id**: string  
  Filter videos by folder ID.

- **title**: string  
  Filter videos by title substring. Minimum string length: `1`.

### Response

- **200** (application/json): Successful response.

#### Data (VideoDetail)

- **data**: VideoDetail · object[]  
  Show child attributes.

- **has_more**: boolean  
  Whether more pages are available.

- **next_token**: string | null  
  Opaque cursor for the next page.
