For the complete documentation index, see llms.txt. This page is also available as Markdown.

Renders

Render a captioned clip or audiogram from a recording.

Render a captioned clip (for video recordings) or an audiogram (for audio recordings) from a segment of a recording. Rendering is asynchronous — poll GET /v1/renders/:id for progress and the finished asset URL.

The recording must have a completed transcript. Clips are capped at 3 minutes.

Tier: platform. Base URL https://app.castmagic.io.

Create a render

POST https://app.castmagic.io/v1/renders

Give a window with start_ms/end_ms, or pass a suggestion_id from GET /v1/recordings/:id/clip-suggestions to use that suggestion's window and title.

Request Body

Name
Type
Description

recording_id*

String

The recording to render from

start_ms*

Integer

Clip start in ms (required unless suggestion_id is given), window max 3 minutes

end_ms*

Integer

Clip end in ms (required unless suggestion_id is given)

suggestion_id*

String

Use a clip suggestion's window and title (alternative to start_ms/end_ms)

aspect_ratio

String

9:16 (default) · 1:1 · 16:9 · 4:5 · original

title

String

Overlay title

The window snaps to spoken words. A window with no speech is rejected.

{
    "render": {
        "id": "r1...",
        "status": "rendering",
        "style": "captions",
        "aspect_ratio": "9:16",
        "start_ms": 154000,
        "end_ms": 178000,
        "progress": 0.02,
        "message": "Queued for export...",
        "asset_url": null,
        "created_at": "2026-08-21T22:15:00Z"
    }
}
{ "error": "no speech in that window; pick a range with spoken words" }

Fetch a render

GET https://app.castmagic.io/v1/renders/:id

Poll for progress. Statuses are rendering, completed, and failed. When completed, asset_url is a signed URL.

Last updated