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

ParameterDescription
uuidTranscript UUID returned from the create call.

Response

1{
2 "success": true,
3 "item": {
4 "uuid": "550e8400-e29b-41d4-a716-446655440000",
5 "text": "Hello, this is a sample transcript...",
6 "words": [
7 {
8 "word": "Hello",
9 "start": 0.23,
10 "end": 0.67,
11 "confidence": 0.99
12 },
13 {
14 "word": "this",
15 "start": 0.7,
16 "end": 0.9,
17 "confidence": 0.98
18 }
19 ],
20 "query": "What are the key points?",
21 "answer": "The key points discussed were...",
22 "status": "completed",
23 "privacy_mode": false,
24 "file_url": "https://storage.resemble.ai/...",
25 "duration_seconds": 120.5,
26 "created_at": "2024-01-15T10:30:00Z",
27 "updated_at": "2024-01-15T10:32:00Z"
28 }
29}

Response Fields

FieldTypeDescription
uuidstringTranscript UUID.
textstringFull transcript (present once processing completes).
wordsarrayArray of word objects with timestamps.
querystringInitial Intelligence question.
answerstringAnswer to the query.
statusstringpending, processing, completed, or failed.
privacy_modebooleanWhether the transcript was created with zero retention.
file_urlstringURL to the original media file. Absent once the media has been deleted.
duration_secondsnumberMedia duration in seconds.
file_deleted_atdatetimeWhen the uploaded media was permanently deleted (zero retention). Absent otherwise.
content_deleted_atdatetimeWhen the transcript content was permanently purged (zero retention). Absent otherwise.
created_atdatetimeTimestamp when created.
updated_atdatetimeTimestamp 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.

1{
2 "success": true,
3 "item": {
4 "uuid": "550e8400-e29b-41d4-a716-446655440000",
5 "status": "completed",
6 "privacy_mode": true,
7 "duration_seconds": 120.5,
8 "file_deleted_at": "2024-01-15T10:32:05Z",
9 "content_deleted_at": "2024-01-15T10:32:12Z",
10 "created_at": "2024-01-15T10:30:00Z",
11 "updated_at": "2024-01-15T10:32:12Z"
12 }
13}

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

FieldTypeDescription
wordstringTranscribed word.
startnumberStart time in seconds.
endnumberEnd time in seconds.
confidencenumberConfidence score for the transcription.

Example

$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

$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

1{
2 "success": false,
3 "error": "Transcript not found"
4}

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