---
title: "Update Clip Captions"
method: PUT
path: "/api/v1/projects/{project_id}/clips/{clip_id}/captions"
tags: ["Export"]
---

# Update Clip Captions

`PUT /api/v1/projects/{project_id}/clips/{clip_id}/captions`

## Request

- Base URL: `https://api.clipmaster.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.clipmaster.app/api/v1/projects/{project_id}/clips/{clip_id}/captions`
- Auth: HTTP bearer

Save user-edited captions for a clip.

Persists the word timings on the clip record so future GET calls
return the edited version instead of the raw transcription.

## Path parameters

- `project_id` integer, required
- `clip_id` integer, required

## Request body

- CaptionsUpdateRequest
  - `words` CaptionWord[], required
    - `text` string, required
    - `start` number, required
    - `end` number, required
    - `highlight` boolean, nullable

## Response `200`

Successful Response

- CaptionsResponse
  - `words` CaptionWord[], required
    - `text` string, required
    - `start` number, required
    - `end` number, required
    - `highlight` boolean, nullable
  - `duration` number, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/clipmaster/apis/semantic-video-clip-ai-agent.md) · [All operations](https://skmtc.dev/clipmaster/apis/semantic-video-clip-ai-agent/llms.txt) · [OpenAPI document](https://skmtc.dev/clipmaster/apis/semantic-video-clip-ai-agent/revisions/c9b8333cd22b?raw)
