---
title: "Correct transcript words"
method: PATCH
path: "/v1/videos/{id}/clips/{clipId}/transcript/words"
tags: ["Clips"]
---

# Correct transcript words

`PATCH /v1/videos/{id}/clips/{clipId}/transcript/words`

Correct what a clip's transcript says, one or more words at a time (at most 100 per request). Each edit addresses a word by its transcript `index` and sets either `text` (the corrected wording, which also unhides the word) or `hidden` (whether the word appears in captions and subtitles). Edits change the transcript, captions and subtitles only — never the audio or the clip's timing; use cut-by-transcript to remove spoken words from the video. Visibility and wording are independent: hiding a word preserves any correction made to it. The whole batch is applied atomically as a single transaction, so a request never changes only some of its words. A `500` does not by itself mean nothing changed — the words can land and a later step of the commit still fail — so treat the outcome as either fully applied or not applied at all. Every edit assigns a word outright, so re-sending the identical request is safe and settles it.

## Path parameters

- `id` string, required — Video identifier
- `clipId` string, required — Clip identifier

## Request body

- UpdateClipTranscriptWordsRequest — Correct what the transcript says. Word edits change the transcript, captions and subtitles only — they never change the audio or the clip's timing. Use cut-by-transcript to remove spoken words from the video. The whole batch is applied atomically, so a request never changes only some of its words. A `500` does not by itself mean nothing changed — the words can land and a later step of the commit still fail — so treat the outcome as either fully applied or not applied at all, and re-send the identical request to settle it; every edit assigns a word outright, so re-sending is safe.
  - `words` TranscriptWordEdit[], required — Word edits to apply, at most one per word index and at most 100 per request. Indices are stable across cuts, but a word that is currently cut out of the clip cannot be edited.
    - `hidden` boolean — `true` hides the word from captions and subtitles without touching the audio; `false` shows it again. A correction already made to the word is preserved.
    - `index` integer, required — Index of the word to edit, as reported by the clip's transcript.
    - `text` string — Corrected text for the word. Replaces what the transcript, captions and subtitles say, and unhides the word. Must not be empty — hide a word with `hidden` instead.

## Response `200`

OK

- UpdateClipTranscriptWordsResponse — The words that were edited, after the edit.
  - `words` TranscriptWord[], required — The edited words in their new state, in the order they were sent.
    - `endTimeMs` number, required — Word end time, in ms on the clip's playback timeline
    - `hidden` boolean, required — Whether the word is hidden by an edit
    - `index` integer, required — Stable index of the word in the source recording
    - `startTimeMs` number, required — Word start time, in ms on the clip's playback timeline
    - `text` string, required — Word text

## Other responses

- `400` — The request was malformed or contained invalid parameters.
- `401` — Authentication is required. Provide a valid API key.
- `403` — You don't have permission to access this resource.
- `404` — The requested resource was not found.
- `429` — You have exceeded the rate limit. Please slow down.
- `500` — An unexpected error occurred
- `501` — The requested operation is not implemented.

---

[API](https://skmtc.dev/withchima/apis/tella-public-api.md) · [All operations](https://skmtc.dev/withchima/apis/tella-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/withchima/tella-public-api/revisions/cd69045c703a/schema)
