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

# Export Project Transcript

> Retrieve an original or translated project transcript as JSON, SRT, or VTT

# Export Project Transcript

Retrieve a transcript from an existing VoiceCheap project without using internal web-app endpoints. The endpoint supports the source transcript and every available target-language transcript.
Successful requests return HTTP `200`.

## Request

<ParamField header="x-api-key" type="string" required>
  Your VoiceCheap API key.
</ParamField>

<ParamField path="projectId" type="string" required>
  Project identifier returned by [Create Project](/docs/api-reference/create-project) or [Start Translation](/docs/api-reference/translate).
</ParamField>

<ParamField body="source" type="string" required>
  `original` or `translated`.
</ParamField>

<ParamField body="targetLanguage" type="string">
  Required when `source` is `translated`. Use the target-language name stored on the project, such as `french`.
</ParamField>

<ParamField body="outputFormat" type="string" default="json">
  `json`, `srt`, or `vtt`.
</ParamField>

<ParamField body="includeSpeakerLabels" type="boolean" default="false">
  Include visible speaker labels in SRT or VTT. JSON always includes speaker numbers.
</ParamField>

## Examples

```bash cURL — Original JSON theme={null}
curl -X POST "https://api.voicecheap.ai/v1/projects/project_123/transcript" \
  -H "x-api-key: vc_your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "original",
    "outputFormat": "json"
  }'
```

```bash cURL — Translated SRT theme={null}
curl -X POST "https://api.voicecheap.ai/v1/projects/project_123/transcript" \
  -H "x-api-key: vc_your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "translated",
    "targetLanguage": "french",
    "outputFormat": "srt",
    "includeSpeakerLabels": true
  }' \
  --output project_123-fr.srt
```

The JSON response uses the same normalized transcript structure documented in [Transcribe Media](/docs/api-reference/transcribe). Stored project transcripts include segment timestamps, speakers, language, confidence data when available, and a `workId` for translated output.

## Errors

| Status | Code                       | Description                                         |
| ------ | -------------------------- | --------------------------------------------------- |
| 400    | `TARGET_LANGUAGE_REQUIRED` | Translated output was requested without a language  |
| 401    | `INVALID_API_KEY`          | API key is missing or invalid                       |
| 403    | `FORBIDDEN`                | API key cannot access this project                  |
| 404    | `PROJECT_NOT_FOUND`        | Project does not exist                              |
| 404    | `TRANSCRIPT_NOT_FOUND`     | Requested source or translated transcript is absent |
| 409    | `TRANSCRIPT_NOT_READY`     | Requested transcript is still processing            |
