---
title: "Suggest up to three source-grounded clips for review"
method: POST
path: "/repurpose-suggestions"
tags: ["Repurpose"]
---

# Suggest up to three source-grounded clips for review

`POST /repurpose-suggestions`

## Request

- Base URL: `https://app.openpo.st/api/v1`
- URL: `https://app.openpo.st/api/v1/repurpose-suggestions`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `openpost_session`

## Headers

- `Idempotency-Key` string, required

## Request body

- SuggestionRequest
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `audience` string
  - `desired_duration_seconds` integer: Preferred clip duration, not a forced length. Defaults to 45 seconds; shorter complete thoughts are allowed.
  - `source` TranscriptSource, required
    - `audio_track_index` integer, required
    - `duration` number, double, required
    - `id` string, required
    - `media_id` string: Set for workspace Media sources. Access and availability are rechecked before analysis.
    - `revision` string, required: Caller snapshot fingerprint, not a server-verified media revision. Compare with the current source before applying.
    - `words` TranscriptWord[], nullable, required
      - `end` number, double, required
      - `start` number, double, required
      - `text` string, required
  - `topic` string
  - `workspace_id` string, required

## Response `200`

OK

- ClipSuggestions
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `candidates` ClipCandidate[], nullable, required
    - `context_warning` string, required
    - `end` number, double, required: Exact end of last_word in source seconds, never generated by AI.
    - `first_word` integer, required: Inclusive zero-based index in the submitted source words.
    - `id` string, required
    - `last_word` integer, required: Inclusive zero-based index in the submitted source words.
    - `rationale` string, required
    - `start` number, double, required: Exact start of first_word in source seconds, never generated by AI.
    - `title` string, required
  - `error_message` string
  - `id` string, required
  - `revision` integer, required
  - `source_id` string, required
  - `source_revision` string, required: The caller snapshot fingerprint captured at submission.
  - `state` 'queued' | 'analyzing' | 'ready' | 'failed' | 'cancelled', required
  - `updated_at` string, date-time, required
  - `workspace_id` string, required

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `422`: Unprocessable Entity
- `429`: Too Many Requests
- `500`: Internal Server Error
- `503`: Service Unavailable

---

[API](https://skmtc.dev/openpo/apis/openpost-api.md) · [All operations](https://skmtc.dev/openpo/apis/openpost-api/llms.txt) · [OpenAPI document](https://skmtc.dev/openpo/apis/openpost-api/revisions/67d3964458a7?raw)
