Transcriptions

Get a transcription

Fetch a single transcription. With format=full (default) returns the legacy bundled shape (text, segments, structured, subtitles all together). Otherwise returns one focused payload: summary, text, segments, paragraphs, chapters, or subtitles. If the requested format isn't available for this row (e.g. chapters on a row that has none), responds with 422 format_unavailable.

from_seconds/to_seconds narrow text/segments/paragraphs/chapters/dialog to a time window (seconds, either bound optional): an item is included if its interval overlaps [from_seconds, to_seconds). Passing them with format=summary/subtitles, or from_seconds >= to_seconds, returns 400 invalid_value. If this transcription's paragraphs/text has no timestamps to filter by, returns 422 range_unavailable.

get/v1/transcriptions/{id}

Request

  • Base URL: https://api.quillhub.ai
  • URL: https://api.quillhub.ai/v1/transcriptions/{id}
  • Auth: HTTP bearer

Path parameters

idstring required

Transcription id: trs_… (canonical), numeric request.id from web/desktop URLs, or trs_legacy_<n>.

Example:trs_01HZXK9P2Q7R8S4T5V6W7X8Y9Z

Query parameters

format'full' | 'summary' | 'text' | 'segments' | 'paragraphs' | 'chapters' | 'subtitles' | 'dialog'

Response shape. full (default) is the legacy bundled response. Other formats return one focused payload each — pick the smallest format that answers your question.

Example:summary
from_secondsnumber nullable

Inclusive lower bound (seconds) — return only items overlapping [from_seconds, to_seconds). Only valid with format ∈ {text, segments, paragraphs, chapters, dialog}. Either bound may be omitted for a one-sided range.

Example:120
to_secondsnumber nullable

Exclusive upper bound (seconds). See from_seconds.

Example:300
localestring

UI locale segment (en, ru) for share_url in full and summary — the same one POST /transcriptions/{id}/share puts into the URL it returns. Unknown values fall back to en.

Example:ru

Response

Current state of the transcription in the requested format.

OR
OR
OR
OR
OR
OR
OR

Example response

{
  "id": "trs_01HZXK9P2Q7R8S4T5V6W7X8Y9Z",
  "internal_id": 212241,
  "kind": "dictation",
  "title": "Q3 planning sync",
  "status": "queued",
  "stage": "transcribing",
  "progress": 0.42,
  "source": {
    "type": "youtube",
    "channel": "desktop"
  },
  "duration_seconds": 1843,
  "language": "en",
  "points_spent": 28,
  "result": {
    "segments": [
      {
        "start": 3.84,
        "end": 7.12,
        "text": "Welcome back to the channel.",
        "speaker": "Speaker 1"
      }
    ]
  },
  "error_code": "GOT_ARCHIVE",
  "workspace_id": 42,
  "project_id": 7,
  "created_at": "2026-04-23T10:14:22Z"
}

Changes

No recorded changes to this operation across all 1 revision of this API.