List videos
List videos
/v1/videosThis operation supports dashboard session-cookie authentication. Call it only from trusted server code; browsers must not manufacture or expose the session cookie.
Keyset pagination ordered by id descending, with optional state,
q, and tag filters. q is a case-insensitive literal substring
match over title and originalFilename (% and _ match
themselves); tag matches videos carrying exactly that tag. Requires
an API key with read scope, or session-cookie auth plus
projectId. Rate limit: 120 requests per 60 s per caller.
Error codes: unauthorized (401), insufficient_scope (403),
account_not_approved (403), invalid_project_id (400),
not_found (404), invalid_query (400).
Authentication
- apiKey — Project API key:
Authorization: Bearer vh_live_...(live mode) orAuthorization: Bearer vh_test_...(test mode). Keys carryreadand/orwritescopes. - sessionCookie — Dashboard session cookie set by
POST /v1/auth/login. Video and playback endpoints additionally require theprojectIdquery parameter under cookie auth.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
projectId | query | string (Ulid) | No | Required when authenticating with the session cookie; ignored under API-key auth (the key is already project-scoped). |
limit | query | integer | No | — |
cursor | query | string (Ulid) | No | ULID of the last item from the previous page. |
state | query | string (VideoState) | No | — |
q | query | string | No | Case-insensitive literal substring match over title and originalFilename. |
tag | query | string | No | Return only videos carrying exactly this tag. |
Request body
This operation takes no request body.
Responses
| Status | Meaning |
|---|---|
200 | One page of videos. |
400 | The request body or query failed validation. The per-operation description lists the exact error.code values. |
401 | No valid credential was presented. |
403 | The credential is valid but does not permit this action. The per-operation description lists the exact error.code values. |
404 | The resource does not exist or is not visible to this caller. |
429 | Rate limit exceeded. |
Try it
/v1/videosAPI playground
Send a live request to api.videohati.com with a test-mode key.
The key is stored in your browser on docs.videohati.com only.
Required when authenticating with the session cookie; ignored under API-key auth (the key is already project-scoped).
ULID of the last item from the previous page.
Case-insensitive literal substring match over `title` and `originalFilename`.
Return only videos carrying exactly this tag.
https://api.staging.videohati.com/v1/videos