Log in

Cloud API

One API to understand video, retain context, and retrieve the right moment on demand.

Use the hosted REST contract from Web services, CLI tools, and agents. Upload, storage, and cloud execution stay explicit.

POST /search200 · 82ms
{
  "request_id": "req_01k2cerul7c41ad",
  "usage": {
    "billable": true,
    "quantity": 1,
    "unit": "request"
  },
  "warnings": [],
  "data": [
    {
      "id": "ev_7c41ad",
      "video_id": "asset_2a91fc",
      "start_seconds": 768,
      "end_seconds": 794,
      "score": 0.82,
      "type": "speech",
      "text": "Scaling laws still hold if you look at loss, not benchmarks.",
      "related": [
        {
          "type": "screen_text",
          "start_seconds": 770,
          "end_seconds": 780,
          "text": "Loss vs. compute"
        }
      ],
      "context": {
        "before": [
          {
            "type": "speech",
            "start_seconds": 751.2,
            "end_seconds": 767.9,
            "text": "So what actually changed over the last year?"
          }
        ],
        "after": []
      },
      "thumbnail_url": "https://media.cerul.ai/v/asset_2a91fc/thumb.jpg?t=768&exp=1790334000&sig=3f9c",
      "playback": {
        "url": "https://media.cerul.ai/v/asset_2a91fc/web.mp4?exp=1790334000&sig=3f9c#t=768,794",
        "format": "mp4",
        "expires_at": "2026-09-25T10:00:00Z"
      },
      "console_url": "https://cerul.ai/console/videos/asset_2a91fc?t=768",
      "video": {
        "filename": "dwarkesh-dario-amodei.mp4",
        "duration_seconds": 8640,
        "summary": "A long-form interview on scaling, training data and AI safety.",
        "summary_generated": true
      }
    }
  ]
}

Endpoints

POST
/videos

Upload a video file

GET
/videos/{video_id}

Check whether it is searchable yet

POST
/search

Search by meaning; returns timestamped clips

POST
/exports

Export a time range as an MP4 file

Full contract in the OpenAPI reference

A complete flow in four steps

Upload, wait for processing, search clips, and export a time range. Track the state at each step.

01

Create a key

Create one in Console → API Keys and save the secret shown once.

02

Request an upload

Request a direct upload and PUT the exact bytes with the returned headers.

03

Complete and wait

Confirm the upload, then poll until the video is ready.

04

Search / export

POST /search for clips, POST /exports to save a time range as MP4.

File upload is the current integration path. URL import is not included in this trial; annotation requires its own scope. Example output is not a performance or quality guarantee.

Find the right moment, inside your video.