---
title: "List clips of a broadcast"
method: GET
path: "/monitors/{id}/broadcasts/{broadcastId}/clips"
tags: ["Monitoring"]
---

# List clips of a broadcast

`GET /monitors/{id}/broadcasts/{broadcastId}/clips`

## Request

- Base URL: `https://api.cut.pro/api/v1`
- URL: `https://api.cut.pro/api/v1/monitors/{id}/broadcasts/{broadcastId}/clips`
- Auth: API key in header `X-Api-Key`

Returns the clips this workspace got from one broadcast, best rated first by default. While the broadcast is on air, new clips land every 10 minutes, so poll this list rather than waiting for the broadcast to end.

A clip with an `edit_id` is ready to render or post; one without it renders with the default layout through `POST /monitors/{id}/broadcasts/{broadcastId}/clips/{clipId}/render`. Returns `410` once the recording was purged.

## Path parameters

- `id` string, required
- `broadcastId` string, required

## Query parameters

- `page` number: Page number (default: 1)
- `limit` number: Items per page (default: 20, max: 100)
- `sort` 'rating' | 'duration' | 'title' | 'created_at'
- `order` 'asc' | 'desc'
- `min_rating` number: Only clips with `rating` at or above this value
- `max_rating` number: Only clips with `rating` at or below this value

## Response `200`

Response for status 200

- object
  - `clips` object[], required
    - `id` string, required
    - `title` string, required: AI-generated title
    - `description` string, nullable, required: AI-generated explanation of why the moment is worth clipping
    - `rating` number, required: AI relevance score from 0 to 10
    - `started_at` string, required: ISO 8601 timestamp of when the moment started airing
    - `ended_at` string, required: ISO 8601 timestamp of when the moment finished airing
    - `duration` number, required: Length of the clip, in seconds
    - `thumbnail_url` string, nullable, required: Signed URL, time-limited: fetch fresh when needed
    - `play_url` string, required: Signed URL to stream the raw clip, time-limited: fetch fresh when needed
    - `edit_id` string, nullable, required: Edit of this clip, once a template was applied (by the monitor or `apply_template`) or it was rendered. Pass it to `POST /renders` or `POST /posts`
    - `render_id` string, nullable, required: Latest finished render that still matches the edit; download it from `GET /renders/{renderId}/download`
    - `rendering` boolean, required: `true` while a render of this clip is queued or running
  - `pagination` object, required
    - `current_page` number, required: Current page number (1-based)
    - `total_pages` number, required: Total number of pages
    - `total_count` number, required: Total number of items across all pages
    - `has_next_page` boolean, required
    - `has_previous_page` boolean, required
    - `limit` number, required: Items per page used for this response

## Other responses

- `400`: Response for status 400
- `404`: Response for status 404
- `410`: Response for status 410

---

[API](https://skmtc.dev/cut/apis/cutpro-api.md) · [All operations](https://skmtc.dev/cut/apis/cutpro-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cut/apis/cutpro-api/revisions/89d0bafe529c?raw)
