API & webhooks
Authentication
Create a key under Dashboard → Developers (Pro). Send it as a bearer token:
curl https://api.scenerecap.com/v1/recordings \
-H "Authorization: Bearer sr_live_…"Core endpoints
| Method & path | Purpose |
|---|---|
GET /v1/recordings | List recordings (workspace, folder, q, cursor pagination) |
GET /v1/recordings/:id | Recording, chapters, transcript, AI outputs, playback URLs |
POST /v1/uploads → POST /v1/uploads/:id/complete → POST /v1/recordings | Upload flow (multipart presigned parts, then create the recording) |
POST /v1/recordings/:id/reanalyze | Run another mode |
POST /v1/recordings/:id/exports | Async export → poll GET …/exports for a signed URL |
POST /v1/recordings/:id/shares | Create a share link |
GET /v1/search?q= | Hybrid search across titles, summaries and timeline segments |
Errors are RFC 7807 application/problem+json. Requests are rate-limited per key.
Webhooks
Register a URL under Developers with the events you want: recording.ready, recording.shared, comment.created. Each delivery is a JSON POST with headers X-SceneRecap-Event, X-SceneRecap-Delivery and X-SceneRecap-Signature: sha256=<hex> — an HMAC-SHA256 of the raw body using the secret shown once at creation. Verify like so:
const expected = "sha256=" + crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
if (!crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected))) reject();Non-2xx responses are retried three times with exponential backoff; the Deliveries panel shows every attempt.