Docs › Endpoints
Endpoints
All paths are relative to the base URL. Every field and response is in the API reference below, and in the spec: openapi.yaml · openapi.json.
| Endpoint | Description | Success |
|---|---|---|
GET/videos | List your videos, newest first (limit 1–100, nextToken). | 200 |
POST/videos | Create a video: an upload (fileName, sizeBytes, maxHeight, camera, streaming, prestart) or an edit (edit). | 201 |
POST/videos/{id}/parts | Pre-signed upload URLs: partNumbers (or parts with sizes, for streaming), file: source | camera. | 200 |
POST/videos/{id}/complete | Finish the upload and start processing, with options. | 202 |
GET/videos/{id} | Status, progress, timing and download link. | 200 |
POST/videos/{id}/reprocess | Process again as a new video with new options (maxHeight, trim, redactions, deleteOriginal). Nothing is re-uploaded, and options aren't inherited. Returns the new videoId. | 201 |
POST/videos/{id}/cancel | Stop processing. The upload is kept, so you can reprocess later. | 200 |
DELETE/videos/{id} | Remove a video permanently (irreversible). Cancels processing, removes outputs and work files. Stops billing storage. Returns {videoId, deleted: true, originalDeleted, freedBytes}. | 200 |
PATCH/videos/{id} | Update metadata: {metadata: {key: value, …}}. Set keys or null to remove them. | 200 |
GET/videos/{id}/thumbnails | Candidate frames for the thumbnail (with links) and the current choice. | 200 |
POST/videos/{id}/thumbnail | Choose the thumbnail: {candidate}, or your own image {image, contentType} (JPEG/PNG, up to 2 MB). | 200 |
POST/videos/{id}/abort | Discard an unfinished upload and its parts. | 200 |
POST/videos/{id}/heartbeat | Keep a pre-started recording job waiting (while recording). | 200 |
GET/usage | Usage for a calendar month: processing time and storage, for billing. Query param month=YYYY-MM (defaults to current month). Returns aggregated minutes, storage, and current storage in GB. | 200 |
POST/auth/start | Public (no auth). Email a sign-in code: {email}. Returns {sent: true, expiresInSeconds: 600}. | 200 |
POST/auth/verify | Public (no auth). Verify a code: {email, code, acceptTerms}. Returns {sessionToken, expiresAt, account, created}. | 200 |
POST/auth/signout | End a session (session token only). | 200 |
GET/account | Your account: email, plan, limits and this month's usage. | 200 |
GET/account/keys | Your API keys (never the keys themselves; shown once at creation). | 200 |
POST/account/keys | Create an API key: {label}. Signed-in sessions only. Returns {key, keyId, label, note}. | 201 |
DELETE/account/keys/{keyId} | Revoke an API key. Signed-in sessions only. | 200 |
GET/webhook | Your webhook configuration: endpoint URL, events, enabled status, secret and timestamps. | 200 |
PUT/webhook | Set or update your webhook endpoint: {url, events?, enabled?}. Returns the full config. | 200 |
DELETE/webhook | Remove your webhook endpoint. | 200 |
POST/webhook/rotate | Generate a new signing secret (keep the URL). Returns the full config. | 200 |
POST/webhook/test | Send a test event now and report the result: {ok, status, ms, error, response, eventId}. | 200 |
GET/webhook/deliveries | Recent delivery attempts (last 30 days, newest first). Returns {deliveries} array of {eventId, type, attempt, ok, status, ms, error, at, final}. | 200 |