> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.resemble.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.resemble.ai/_mcp/server.

# Get Transcript

Use the transcript UUID to retrieve status, transcript text, word-level timestamps, and Intelligence answers.

## Endpoint

`GET https://app.resemble.ai/api/v2/speech-to-text/{uuid}`

### Path Parameter

| Parameter | Description                                    |
| --------- | ---------------------------------------------- |
| `uuid`    | Transcript UUID returned from the create call. |

## Response

```json
{
  "success": true,
  "item": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "text": "Hello, this is a sample transcript...",
    "words": [
      {
        "word": "Hello",
        "start": 0.23,
        "end": 0.67,
        "confidence": 0.99
      },
      {
        "word": "this",
        "start": 0.7,
        "end": 0.9,
        "confidence": 0.98
      }
    ],
    "query": "What are the key points?",
    "answer": "The key points discussed were...",
    "status": "completed",
    "privacy_mode": false,
    "file_url": "https://storage.resemble.ai/...",
    "duration_seconds": 120.5,
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T10:32:00Z"
  }
}
```

### Response Fields

| Field                | Type     | Description                                                                            |
| -------------------- | -------- | -------------------------------------------------------------------------------------- |
| `uuid`               | string   | Transcript UUID.                                                                       |
| `text`               | string   | Full transcript (present once processing completes).                                   |
| `words`              | array    | Array of word objects with timestamps.                                                 |
| `query`              | string   | Initial Intelligence question.                                                         |
| `answer`             | string   | Answer to the query.                                                                   |
| `status`             | string   | `pending`, `processing`, `completed`, or `failed`.                                     |
| `privacy_mode`       | boolean  | Whether the transcript was created with zero retention.                                |
| `file_url`           | string   | URL to the original media file. Absent once the media has been deleted.                |
| `duration_seconds`   | number   | Media duration in seconds.                                                             |
| `file_deleted_at`    | datetime | When the uploaded media was permanently deleted (zero retention). Absent otherwise.    |
| `content_deleted_at` | datetime | When the transcript content was permanently purged (zero retention). Absent otherwise. |
| `created_at`         | datetime | Timestamp when created.                                                                |
| `updated_at`         | datetime | Timestamp when last updated.                                                           |

### Zero-Retention Transcripts

For transcripts created with `zero_retention_mode`, the content is delivered once to your `callback_url` and then permanently purged. After the purge, this endpoint keeps returning the transcript as a content-free stub: `text`, `words`, `query`, `answer`, and `file_url` are no longer present, while `file_deleted_at` and `content_deleted_at` record when each deletion happened.

```json
{
  "success": true,
  "item": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "status": "completed",
    "privacy_mode": true,
    "duration_seconds": 120.5,
    "file_deleted_at": "2024-01-15T10:32:05Z",
    "content_deleted_at": "2024-01-15T10:32:12Z",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T10:32:12Z"
  }
}
```

Do not rely on polling this endpoint to retrieve zero-retention results — the callback delivery is the only time the content is available.

### Word Object

| Field        | Type   | Description                             |
| ------------ | ------ | --------------------------------------- |
| `word`       | string | Transcribed word.                       |
| `start`      | number | Start time in seconds.                  |
| `end`        | number | End time in seconds.                    |
| `confidence` | number | Confidence score for the transcription. |

## Example

```bash
curl --request GET \
  'https://app.resemble.ai/api/v2/speech-to-text/550e8400-e29b-41d4-a716-446655440000' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
```

## Polling Pattern

```bash
transcript_uuid="550e8400-e29b-41d4-a716-446655440000"
delay=2

while true; do
  response=$(curl -s -H "Authorization: Bearer YOUR_API_TOKEN" \
    "https://app.resemble.ai/api/v2/speech-to-text/$transcript_uuid")

  status=$(echo "$response" | jq -r '.item.status')
  if [ "$status" = "completed" ] || [ "$status" = "failed" ]; then
    echo "$response"
    break
  fi

  sleep $delay
  delay=$((delay * 2))
done
```

## Errors

```json
{
  "success": false,
  "error": "Transcript not found"
}
```

Typical status codes: `401` for bad tokens, `403` for insufficient roles, `404` for unknown UUIDs, and `500` for processing failures.