Videos
Submit videos, list them, and read their scenes.
Submit a video for indexing
Hand the indexing pipeline a video URL. The response is fast (202 Accepted) — the actual indexing runs asynchronously through scene detection → captioning → embedding → moderation. Poll `/v1/jobs/{job_id}` to track progress.
List videos in your account
List videos owned by your account (org), newest first. Paginate with the opaque `cursor`: pass the `next_cursor` from the previous response; a null `next_cursor` means the last page.
Upload one video file for indexing
Multipart-upload a single video file straight into the indexing pipeline. The same async flow as `POST /v1/videos`, but for a local file instead of a URL — poll `GET /v1/jobs/{job_id}` for progress.
Get indexing result for a video
Return the full indexing result for an indexed video: AI summary, genre / IAB categories, GARM brand-safety assessment, per-scene captions + transcripts, and whole-video aggregations (brands, products, people, locations, audio events, mood timeline).
Page through a video's scenes
Paginated, fully-hydrated scenes for a video — caption, transcript, on-screen text, mood (valence / arousal), detected brands / products / people / locations, plus presigned keyframe and clip URLs.
Stream scenes as they finish analysis (NDJSON)
Push each scene's analysis as soon as its caption is ready, without waiting for the whole video to finish indexing. NDJSON like `/v1/ads/match` — one JSON object per line: