API referenceVideo analyses

A picture of an analysed source at any time, width and crop

One hosted JPEG per requested time of the analysed source: "the reference at 47.3 s, 640 wide, the lower third" without re-sensing a window.

The urls are named by content, so the same request returns the same urls and a repeat decodes nothing. A time past the end returns the last frame (noted). Free; CPU, seconds.

GET
/video-analyses/{analysisId}/frames

Authorization

bearerAuth
AuthorizationBearer <token>

Typecut API key. Generate one in app.typecut.ai → Settings → API keys. Send as Authorization: Bearer tc_live_….

In: header

Path Parameters

analysisId*string
Formatuuid

Query Parameters

t*string

Seconds on the SOURCE clock: one number or a comma list, up to 12 (e.g. "47.3" or "1,2.5,40").

width?integer

Output width in px (default 480). Height keeps the aspect.

Range64 <= value <= 1920
crop?string

x,y,w,h as fractions of the frame, e.g. "0,0.6667,1,0.3333" is the lower third.

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/video-analyses/497f6eca-6276-4993-bfeb-53cbbbba6f08/frames?t=string"
{
  "data": {
    "analysis_id": "string",
    "duration_sec": 0,
    "notes": [
      "string"
    ],
    "frames": [
      {
        "t": 0,
        "width": 0,
        "crop": {
          "x": 0,
          "y": 0,
          "w": 0,
          "h": 0
        },
        "url": "string",
        "cached": true
      }
    ]
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}