curl --request GET \
--url https://app.nivo.video/api/v1/videos/search \
--header 'Authorization: <api-key>'{
"videos": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"duration": 123,
"title": "<string>",
"description": "<string>",
"folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"externalProviderId": "<string>",
"externalStatus": "<string>",
"externalStreamUrl": "<string>",
"hlsPlaylistUrl": "<string>",
"processedAt": "2023-11-07T05:31:56Z",
"sizeInBytes": 123,
"language": "<string>",
"requestedDeletionAt": "2023-11-07T05:31:56Z",
"metadata": {},
"createdAt": "2023-11-07T05:31:56Z",
"author": {
"name": "<string>",
"image": "<string>"
}
}
],
"pageCount": 123,
"amountOfUploads": 123
}Search uploads in a collection using optional text (q) on the video title (ILIKE, so % and _ in q are wildcards), optional folder_id, and optional tag slugs (OR semantics). Requires collection_id for the collection to search. Authenticates with the same API key as other v1 routes. JSON responses use camelCase property names (same convention as the upload endpoint).
curl --request GET \
--url https://app.nivo.video/api/v1/videos/search \
--header 'Authorization: <api-key>'{
"videos": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"duration": 123,
"title": "<string>",
"description": "<string>",
"folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"externalProviderId": "<string>",
"externalStatus": "<string>",
"externalStreamUrl": "<string>",
"hlsPlaylistUrl": "<string>",
"processedAt": "2023-11-07T05:31:56Z",
"sizeInBytes": 123,
"language": "<string>",
"requestedDeletionAt": "2023-11-07T05:31:56Z",
"metadata": {},
"createdAt": "2023-11-07T05:31:56Z",
"author": {
"name": "<string>",
"image": "<string>"
}
}
],
"pageCount": 123,
"amountOfUploads": 123
}authorId, collectionId, organizationId), R2 storage keys, upload batch metadata (uploadBatchId, uploadOrder), and transcription regeneration status fields; see the OpenAPI schema for the exact response shape.API key for authentication. Include your company's API key in the Authorization header.
Collection to search within (must belong to the organization for the API key).
Case-insensitive substring match on the video title. % and _ act as SQL LIKE wildcards.
Optional folder UUID. Unknown or out-of-collection folders yield an empty videos array (not 404).
Tag slug per query key; repeat the parameter for multiple slugs (e.g. tags=foo&tags=bar). Same semantics as an array in URLSearchParams. Slugs are scoped to your organization. OR semantics across listed tags. Empty values are ignored. Unknown slugs yield 400.
Zero-based page index.
x >= 0Page size (1–100).
1 <= x <= 100Optional sort field. When omitted, results are ordered by created_at descending.
title, duration, size_in_bytes Sort direction when sort_by is set. Default asc.
asc, desc