> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corti.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# File transcription

> Generate an offline transcript from a pre-recorded audio file with the /transcripts endpoint

<iframe className="w-full aspect-video rounded-xl" src="https://www.youtube.com/embed/d6WKOaS9_Ts?start=618&end=650" title="Transcribe an Audio File — walkthrough" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen />

<Info>
  **Follow along with the runnable example.** This guide walks through the [File transcription example](https://github.com/corticph/corti-examples/tree/main/sdk/typescript/applets/src/applets/file-transcription) in `corti-examples` — bootstrap your build from it or use it as reference.
</Info>

Not all dictation is real-time. When you have a **pre-recorded file** — an uploaded recording, or one you [archived](/stt/guides/dictation-audio-archive) from a live session — use the [`/transcripts`](/stt/transcripts) endpoint to generate a transcript offline. Unlike the streaming `/transcribe` path, this is a REST, synchronous-to-asynchronous workflow: you submit a recording and poll for the finished transcript.

***

## The pipeline

<Steps titleSize="h3">
  <Step title="Create or select an interaction">
    An interaction is the container that groups recordings and transcripts.
  </Step>

  <Step title="Upload the audio">
    Upload a new file, or reuse a recording already attached to the interaction.
  </Step>

  <Step title="Create the transcript (async)">
    Submit the recording with `async: true` to get a transcript id back immediately.
  </Step>

  <Step title="Poll, then fetch">
    Poll the transcript status until `completed`, then fetch the finalized transcript.
  </Step>
</Steps>

***

## Generate the transcript

The pipeline follows the four steps above. See the [file transcription example](https://github.com/corticph/corti-examples/tree/main/sdk/typescript/applets/src/applets/file-transcription) in `corti-examples` for the full SDK implementation.

<Note>
  For the endpoint details — the sync-to-async timeout, status codes, size/duration limits, and the full request/response schema — see the [Recordings and Transcripts](/stt/transcripts) reference and the [Create Transcript](/api-reference/transcripts/create-transcript) API spec.
</Note>

***

## Transcription parameters

`/transcripts` serves both dictation and conversational audio. Set the parameters to match your source:

| Parameter         | Use                                                                   |
| :---------------- | :-------------------------------------------------------------------- |
| `primaryLanguage` | The spoken language (e.g. `"en"`)                                     |
| `isDictation`     | `true` for single-speaker dictation; `false` for conversational audio |
| `isMultichannel`  | `true` when each speaker is on a separate audio channel               |
| `diarize`         | `true` to segment a single-channel recording by speaker               |

<Tip>
  For single-speaker dictation recordings, `isDictation: true` is the closest offline analog to the real-time `/transcribe` dictation path. For multi-speaker conversations, see [Diarization](/stt/diarization).
</Tip>

***

## Next steps

<CardGroup cols={2}>
  <Card title="Recordings and Transcripts" icon="file-lines" href="/stt/transcripts">
    The `/transcripts` endpoint reference: workflow, limits, and features.
  </Card>

  <Card title="Audio Archive" icon="box-archive" href="/stt/guides/dictation-audio-archive">
    Capture and store the live dictation audio you can later transcribe here.
  </Card>

  <Card title="Example code" icon="github" href="https://github.com/corticph/corti-examples/tree/main/sdk/typescript/applets/src/applets/file-transcription">
    The complete, runnable File transcription example in `corti-examples`.
  </Card>
</CardGroup>

<Note>Please [contact us](mailto:help@corti.ai) for help or questions.</Note>
