System One
Ask structured questions about a video and get model answers, synchronously or as a job.
Ask questions (synchronous)
Send `state` and typed `questions` and get typed probabilities back in the same response. Use this for text or other short inputs; for a video use `POST /v1/systemone/jobs` (`videos` here returns `422` with `code: systemone_video_requires_job`).
Ask questions about a video (async job)
Queue questions about one video and poll `GET /v1/systemone/jobs/{job_id}` for the answer (or pass `callback_url` to receive the finished job as a POST). Give the video as exactly one of `video.url` (public http(s) file URL), `video.video_id` (a video in your library; `404` when not visible to you) or `video.upload_id` (a file from `POST /v1/systemone/uploads`; `404` with `code: systemone_upload_not_found` when not in your organization). Besides `noul`, `choice` and `score`, jobs accept `time` questions, answered with `{presence, best: {start, end, score} | null, segments, resolution_s}`.
List systemone jobs
List your organization's jobs, newest first. Page with `limit` (1-100, default 20) and `cursor` from `next_cursor`.
Get a systemone job
Fetch one job of your organization. `result` is the synchronous `POST /v1/systemone` response body once `status` is `succeeded`.
Upload a video for systemone jobs
Multipart-upload one video file (`.mp4`, `.m4v`, `.mov`, `.webm`, `.mkv`) and pass the returned `upload_id` as `video.upload_id` in `POST /v1/systemone/jobs`. The file is stored for your organization only and is not indexed. Uploading is free; each job is charged as usual. An organization keeps at most 50 uploads or 20 GiB in total — beyond that the response is `422` with `code: systemone_upload_limit_reached`; delete an upload first.
List systemone uploads
List your organization's uploads, newest first. Page with `limit` (1-100, default 20) and `cursor` from `next_cursor`.
Get a systemone upload
Fetch one of your organization's uploads, with a fresh `playback_url`.
Delete a systemone upload
Delete one of your organization's uploads. Jobs that still reference it end as `failed` and are returned to the quota.
List upload folders
List your organization's upload folders by name, with how many uploads each holds.
Create an upload folder
Create a folder to upload into (`folder_id` on `POST /v1/systemone/uploads`).
Delete an upload folder
Delete an empty folder. Delete its uploads first.