VideohatiDocs
API referenceVideos

List videos

List videos

GET/v1/videos

This 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) or Authorization: Bearer vh_test_... (test mode). Keys carry read and/or write scopes.
  • sessionCookie — Dashboard session cookie set by POST /v1/auth/login. Video and playback endpoints additionally require the projectId query parameter under cookie auth.

Parameters

NameInTypeRequiredDescription
projectIdquerystring (Ulid)NoRequired when authenticating with the session cookie; ignored under API-key auth (the key is already project-scoped).
limitqueryintegerNo
cursorquerystring (Ulid)NoULID of the last item from the previous page.
statequerystring (VideoState)No
qquerystringNoCase-insensitive literal substring match over title and originalFilename.
tagquerystringNoReturn only videos carrying exactly this tag.

Request body

This operation takes no request body.

Responses

StatusMeaning
200One page of videos.
400The request body or query failed validation. The per-operation description lists the exact error.code values.
401No valid credential was presented.
403The credential is valid but does not permit this action. The per-operation description lists the exact error.code values.
404The resource does not exist or is not visible to this caller.
429Rate limit exceeded.

Try it

GET
/v1/videos
Test mode only

API playground

Send a live request to api.videohati.com with a test-mode key.

This playground blocks vh_live_ keys. Use a key that starts with vh_test_ only; a request with a live key never leaves your browser.

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