Returns every video owned by the account that the API key belongs to. No filtering or pagination — the current v1 endpoint returns the full set. Pagination will be added before any account can exceed ~500 items.
Endpoint
GET /v1/video
Authentication
| Method | Required scope |
|---|---|
| API Key | video:read |
Parameters
None.
Response
200 OK
{
"success": true,
"data": [
{
"id": "vid_abc123def456",
"title": "Product Demo",
"description": "Q2 launch demo",
"status": "COMPLETED",
"durationSec": 120,
"targetQuality": "1080p",
"qualities": ["1080p", "720p", "480p"],
"createdAt": "2026-05-20T10:00:00Z",
"completedAt": "2026-05-20T10:03:45Z"
}
]
}
Video object
| Field | Type | Notes |
|---|---|---|
id | string | Opaque ID, format vid_… |
title | string | User-provided title |
description | string | null | Optional |
status | enum | PENDING · PROCESSING · COMPLETED · FAILED |
durationSec | integer | Video length in seconds |
targetQuality | string | Highest rendition produced |
qualities | string[] | All renditions available |
createdAt | timestamp | When the upload finished |
completedAt | timestamp | null | When transcoding finished |
⚠️ No URLs in this response
Video URLs are never included in metadata responses. To play a video, generate a short-lived Playback Token and pass it to the Player SDK or the Playback Manifest endpoint.
Errors
| Status | Code | When |
|---|---|---|
| 401 | API_KEY_REQUIRED | Header missing |
| 401 | INVALID_API_KEY | Key revoked or unknown |
| 403 | INSUFFICIENT_SCOPE | Key lacks video:read |
Examples
cURL
curl -H "x-ansdev-key: ak_live_8f3a9b2c1d4e5f6a7b8c9d0e1f2a3b4c" \
https://api.ansdev.cloud/v1/video
JavaScript
const res = await fetch('https://api.ansdev.cloud/v1/video', {
headers: { 'x-ansdev-key': process.env.ANSDEV_API_KEY },
});
const { success, data } = await res.json();
if (!success) throw new Error('List failed');
for (const video of data) {
console.log(video.id, video.title, video.status);
}