---
title: "List clip suggestions for a media item"
method: GET
path: "/v1/media/{id}/suggestions"
tags: ["clips"]
---

# List clip suggestions for a media item

`GET /v1/media/{id}/suggestions`

## Request

- Base URL: `https://api.cueframe.ai`
- URL: `https://api.cueframe.ai/v1/media/{id}/suggestions`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://api.cueframe.ai/api/auth/mcp/authorize`, token URL `https://api.cueframe.ai/api/auth/mcp/token`, scopes: `media:read`)
  - API key in header `PAYMENT-SIGNATURE`

Required permission: media:read

## Path parameters

- `id` string, required

## Query parameters

- `limit` integer
- `after` string
- `platform` string
- `format` string
- `topic` string

## Response `200`

Clip suggestions envelope.

- SuggestionsEnvelope: GET /media/:id/suggestions envelope.
  - `status` 'idle' | 'generating' | 'completed' | 'failed', required
  - `createdAt` string, nullable, required
  - `analyzedAt` string, nullable, required
  - `jobId` string, nullable, required
  - `topics` string[], required
  - `suggestions` Suggestion[], required
    - `id` string, required
    - `briefId` string, nullable, required
    - `rank` integer, required
    - `trim` object, required
      - `start` number, required
      - `end` number, required
    - `score` number, required
    - `title` string, required
    - `reason` string, required
    - `topic` string, required
    - `hook` string, required
    - `platforms` string[], required
    - `format` string, required
    - `caption` string, required
    - `hashtags` string[], required
    - `textOverlays` string[], required
    - `editingNotes` string, required
    - `motionStyle` object, required
      - `textAnimation` string, required
      - `transitions` string, required
      - `colorMood` string, required
      - `captionStyle` string, required
    - `visualTreatment` object[], required
      - `time` union, required
        - number
        - string
      - `visual` string, required
    - `brollSuggestions` object[], required
      - `moment` string, required
      - `searchTerms` string[], required
      - `rationale` string, required
    - `thumbnailConcept` string, required
  - `pagination` PaginationMeta, required: Cursor pagination metadata.
    - `hasMore` boolean, required
    - `nextCursor` string, nullable, required
    - `prevCursor` string, nullable, required

## Other responses

- `400`: Bad request — validation_error / invalid_cursor / invalid_query.
- `401`: Missing or invalid Authorization header.
- `402`: Payment required. Returned when the caller presents no API key on a priced operation: the body AND the `Payment-Required` header carry the x402 v2 challenge (accepted scheme, network, USDC asset, amount, payTo). Sign the EIP-3009 authorization and retry with a `PAYMENT-SIGNATURE` header. A KEYED caller sees this status instead when their plan lacks or has exhausted the feature (`billing_required`).
- `403`: Forbidden — permission insufficient.
- `404`: Resource not found.
- `422`: Unprocessable — invalid_composition / media_in_use / session_in_use / render_not_cancellable.
- `429`: Rate limited. Retry-After header present.
- `500`: Internal error.

---

[API](https://skmtc.dev/cueframe/apis/cueframe-api.md) · [All operations](https://skmtc.dev/cueframe/apis/cueframe-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cueframe/apis/cueframe-api/revisions/8f9bfe362b4a?raw)
