Semantic search
POST/api/v1/search
Search the indexed video corpus by natural-language query. Returns scene-level matches grouped by parent video, scored across caption and optionally transcript and multimodal embeddings.
Pick the modality based on what you care about:
caption— narrative description (default)transcript— verbatim speech (silent scenes excluded)omni— visual/audio embeddingboth— caption + omni, side-by-sideall— caption + transcript + omni (three columns)
Filter with iab_t1 (content category) and garm_min_level (brand-safety level) to narrow the result set. video_id restricts the search to one video's scenes.
AI judge (opt-in): judge: "text" (requires modality: "caption") makes the response an NDJSON stream: a meta line with the plain search result, one result line per judged scene (0-10 relevance + reason), a summary keeping only scenes at or above min_relevance (default 3; videos ordered by best relevance then best cosine, score unchanged, top k videos), then done. summary.empty means nothing matched; summary.all_errors means the judge itself failed.
Request
Responses
- 200
- 401
- 403
- 422
- 500
JSON SearchResponse by default. With judge: "text" the body is an NDJSON stream instead (application/x-ndjson).
Missing or invalid API key. Add Authorization: Bearer vuf_live_<keyid>.<secret>.
Key used outside the public API roots (/api/v1, /api/v1.1).
Request body failed validation.
Upstream service error — usually safe to retry.