Skip to contentSkip to navigationSkip to topbar
On this page

Recording Transcription


A transcription represents the transcribed text and metadata from a transcribed recording of a voice call.

The transcription text comes from converting an audio recording to readable text. To generate transcriptions from call recordings, use the TwiML <Record> verb and set transcribe="true".

(information)

Payment Card Industry Compliance

Call recordings are not PCI compliant by default. To make them compliant, you need to enable PCI Mode(link takes you to an external page) in your Twilio Voice Settings.

Note that transcriptions aren't available when PCI mode is enabled.

(warning)

Warning

If you request recording transcription, your account incurs additional charges. Transcription is a paid feature. Twilio only transcribes recordings initiated with the TwiML <Record> verb and that have a duration no longer than two minutes in length.
To learn about pricing, see the transcriptions pricing page(link takes you to an external page).


Transcription Properties

transcription-properties page anchor
Property nameTypeRequiredDescriptionChild properties
accountSidSID<AC>

Optional

Not PII

The SID of the Account that created the Transcription resource.

Pattern: ^AC[0-9a-fA-F]{32}$Min length: 34Max length: 34

apiVersionstring

Optional

The API version used to create the transcription.


dateCreatedstring<date-time-rfc-2822>

Optional

The date and time in GMT that the resource was created specified in RFC 2822(link takes you to an external page) format.


dateUpdatedstring<date-time-rfc-2822>

Optional

The date and time in GMT that the resource was last updated specified in RFC 2822(link takes you to an external page) format.


durationstring

Optional

The duration of the transcribed audio in seconds.


pricenumber

Optional

The charge for the transcript in the currency associated with the account. This value is populated after the transcript is complete so it may not be available immediately.


priceUnitstring<currency>

Optional

The currency in which price is measured, in ISO 4127(link takes you to an external page) format (e.g. usd, eur, jpy).


recordingSidSID<RE>

Optional

The SID of the Recording from which the transcription was created.

Pattern: ^RE[0-9a-fA-F]{32}$Min length: 34Max length: 34

sidSID<TR>

Optional

The unique string that that we created to identify the Transcription resource.

Pattern: ^TR[0-9a-fA-F]{32}$Min length: 34Max length: 34

statusenum<string>

Optional

The status of the transcription. Can be: in-progress, completed, failed.

Possible values:
in-progresscompletedfailed

transcriptionTextstring

Optional

PII MTL: 30 days

The text content of the transcription.


typestring

Optional

The transcription type. Can only be: fast.


uristring

Optional

The URI of the resource, relative to https://api.twilio.com.


Fetch a Transcription resource

fetch-a-transcription-resource page anchor

GET https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Transcriptions/{Sid}.json

Returns the JSON metadata for the Transcription.

  • The Recording Transcription resource doesn't support CSV and HTML formatted responses.
    Requests made for CSV and HTML files return an HTTP 404 status code.

  • To return only the transcription text, append ".txt" to the Transcription resource's URI:

    /2010-04-01/Accounts/{AccountSid}/Transcriptions/{TranscriptionSid}.txt

Path parameters

path-parameters page anchor
Property nameTypeRequiredPIIDescription
accountSidSID<AC>
required

The SID of the Account that created the Transcription resource to fetch.

Pattern: ^AC[0-9a-fA-F]{32}$Min length: 34Max length: 34

sidSID<TR>
required

The Twilio-provided string that uniquely identifies the Transcription resource to fetch.

Pattern: ^TR[0-9a-fA-F]{32}$Min length: 34Max length: 34
Fetch a specific TranscriptionLink to code sample: Fetch a specific Transcription
1
// Download the helper library from https://www.twilio.com/docs/node/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function fetchTranscription() {
11
const transcription = await client
12
.transcriptions("TRXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
13
.fetch();
14
15
console.log(transcription.accountSid);
16
}
17
18
fetchTranscription();

Response

Note about this response
1
{
2
"account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
3
"api_version": "2008-08-01",
4
"date_created": "Sun, 13 Feb 2011 02:12:08 +0000",
5
"date_updated": "Sun, 13 Feb 2011 02:30:01 +0000",
6
"duration": "1",
7
"price": "-0.05000",
8
"price_unit": "USD",
9
"recording_sid": "REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
10
"sid": "TRXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
11
"status": "failed",
12
"transcription_text": "(blank)",
13
"type": "fast",
14
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Transcriptions/TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
15
}

Read multiple Transcription resources

read-multiple-transcription-resources page anchor

GET https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Transcriptions.json

Returns the full set of Transcriptions generated from all recordings in an account.

The response contains a paginated list.

Property nameTypeRequiredPIIDescription
accountSidSID<AC>
required

The SID of the Account that created the Transcription resources to read.

Pattern: ^AC[0-9a-fA-F]{32}$Min length: 34Max length: 34
Property nameTypeRequiredPIIDescription
pageSizeinteger<int64>

Optional

How many resources to return in each list page. The default is 50, and the maximum is 1000.

Minimum: 1Maximum: 1000

pageinteger

Optional

The page index. This value is simply for client state.

Minimum: 0

pageTokenstring

Optional

The page token. This is provided by the API.

1
// Download the helper library from https://www.twilio.com/docs/node/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function listTranscription() {
11
const transcriptions = await client.transcriptions.list({ limit: 20 });
12
13
transcriptions.forEach((t) => console.log(t.accountSid));
14
}
15
16
listTranscription();

Response

Note about this response
1
{
2
"end": 0,
3
"first_page_uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Transcriptions.json?PageSize=1&Page=0",
4
"next_page_uri": null,
5
"page": 0,
6
"page_size": 1,
7
"previous_page_uri": null,
8
"start": 0,
9
"transcriptions": [
10
{
11
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
12
"api_version": "2008-08-01",
13
"date_created": "Thu, 25 Aug 2011 20:59:45 +0000",
14
"date_updated": "Thu, 25 Aug 2011 20:59:45 +0000",
15
"duration": "10",
16
"price": "0.00000",
17
"price_unit": "USD",
18
"recording_sid": "REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
19
"sid": "TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
20
"status": "completed",
21
"transcription_text": null,
22
"type": "fast",
23
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Transcriptions/TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
24
}
25
],
26
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Transcriptions.json?PageSize=1&Page=0"
27
}

To access a full list of transcriptions from a given Recording, pass the RecordingSid to the Recording resource:

/2010-04-01/Accounts/{YourAccountSid}/Recordings/{RecordingSid}/Transcriptions.json

To fetch Transcriptions from a Recording, write a cURL command that resembles the following:

1
curl -G https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Transcriptions.json \
2
-u 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token'
  • To return an XML-formatted response, change the end of this URI from .json to .xml.

  • The Recording Transcription resource doesn't support CSV and HTML formatted responses.
    Requests made for CSV and HTML files return an HTTP 404 status code.

  • To return only the transcription text, append ".txt" to the Transcription resource's URI:

    1
    curl -G https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Transcriptions.txt \
    2
    -u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN

Delete a Transcription resource

delete-a-transcription-resource page anchor

DELETE https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Transcriptions/{Sid}.json

Deletes one transcription from your account.

If the request succeeds, Twilio returns HTTP 204 (No Content) with no body.

Property nameTypeRequiredPIIDescription
accountSidSID<AC>
required

The SID of the Account that created the Transcription resources to delete.

Pattern: ^AC[0-9a-fA-F]{32}$Min length: 34Max length: 34

sidSID<TR>
required

The Twilio-provided string that uniquely identifies the Transcription resource to delete.

Pattern: ^TR[0-9a-fA-F]{32}$Min length: 34Max length: 34
1
// Download the helper library from https://www.twilio.com/docs/node/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function deleteTranscription() {
11
await client.transcriptions("TRXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").remove();
12
}
13
14
deleteTranscription();