Skip to content

Overview

Upload videos, list past analyses, download reports, share sessions publicly via signed token. The session lifecycle (pending → processing → completed | failed) is what most integrations care about.

The upload → analyse loop (the most common partner workflow):

  1. POST /api/sessions/upload-intent/{ session_id, url, headers }
  2. PUT <url> the raw video bytes (MP4 / MOV / WebM, ≤200 MB) with the returned headers — direct to storage, no auth, expires in 15 min.
  3. POST /api/sessions/ with the same session_id and the public_url as video_url{ status: "pending" } (debits one session of quota; 402 if exhausted).
  4. Poll GET /api/sessions/<id>/ (~1 Hz) until status == "completed", then read metrics, metric_targets, and analyzed_url.

Most endpoints here are reachable with a partner aik_… API key. GET /api/shared/<token>/ needs no auth — the token is the credential.