---
title: "Get a source-video transcript"
method: GET
path: "/api/transcripts"
tags: ["transcripts"]
---

# Get a source-video transcript

`GET /api/transcripts`

Fetch the trimmed source-video transcript for a project. ASR internals (seek, tokens, log-probabilities, etc.) are stripped. For API callers on a range-limited project, paragraphs are filtered to the billed curation range; internal callers and full-source submissions get the full transcript.

## Query parameters

- `q` 'findByProjectId', required
- `projectId` string, required

## Response `200`

- TranscriptResponse — Wrapper for the transcript response. `data[0]` is the transcript, or `null` when the project has no transcript yet.
  - `data` array[]
    - TranscriptExportParagraph[], nullable
      - `id` integer, required — Paragraph index within the transcript.
      - `start` number, required — Start time in seconds.
      - `end` number, required — End time in seconds.
      - `text` string, required — Paragraph text.
      - `speaker` string — Speaker label, when diarization is available.
      - `words` TranscriptExportWord[], required — Per-word timings inside this paragraph.
        - `word` string, required — The word.
        - `start` number, required — Start time in seconds.
        - `end` number, required — End time in seconds.
        - `isFillerWord` boolean — True if the word is a filler (um, uh, ...).

---

[API](https://skmtc.dev/opus/apis/clip-api.md) · [All operations](https://skmtc.dev/opus/apis/clip-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/opus/clip-api/revisions/7fa7ca3147b7/schema)
