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"
.
Payment Card Industry Compliance
Call recordings are not PCI compliant by default. To make them compliant, you need to enable PCI Mode in your Twilio Voice Settings.
Note that transcriptions aren't available when PCI mode is enabled.
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.
The SID of the Account that created the Transcription resource.
^AC[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The date and time in GMT that the resource was created specified in RFC 2822 format.
The date and time in GMT that the resource was last updated specified in RFC 2822 format.
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.
The currency in which price
is measured, in ISO 4127 format (e.g. usd
, eur
, jpy
).
The SID of the Recording from which the transcription was created.
^RE[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The unique string that that we created to identify the Transcription resource.
^TR[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The status of the transcription. Can be: in-progress
, completed
, failed
.
in-progress
completed
failed
The URI of the resource, relative to https://api.twilio.com
.
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 HTTP404
status code. -
To return only the transcription text, append "
.txt
" to the Transcription resource's URI:/2010-04-01/Accounts/{AccountSid}/Transcriptions/{TranscriptionSid}.txt
The SID of the Account that created the Transcription resource to fetch.
^AC[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The Twilio-provided string that uniquely identifies the Transcription resource to fetch.
^TR[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID and Auth Token at twilio.com/console5// and set the environment variables. See http://twil.io/secure6const accountSid = process.env.TWILIO_ACCOUNT_SID;7const authToken = process.env.TWILIO_AUTH_TOKEN;8const client = twilio(accountSid, authToken);910async function fetchTranscription() {11const transcription = await client12.transcriptions("TRXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")13.fetch();1415console.log(transcription.accountSid);16}1718fetchTranscription();
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}
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.
How many resources to return in each list page. The default is 50, and the maximum is 1000.
1
Maximum: 1000
The page token. This is provided by the API.
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID and Auth Token at twilio.com/console5// and set the environment variables. See http://twil.io/secure6const accountSid = process.env.TWILIO_ACCOUNT_SID;7const authToken = process.env.TWILIO_AUTH_TOKEN;8const client = twilio(accountSid, authToken);910async function listTranscription() {11const transcriptions = await client.transcriptions.list({ limit: 20 });1213transcriptions.forEach((t) => console.log(t.accountSid));14}1516listTranscription();
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:
1curl -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 HTTP404
status code. -
To return only the transcription text, append "
.txt
" to the Transcription resource's URI:1curl -G https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Transcriptions.txt \2-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
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.
The SID of the Account that created the Transcription resources to delete.
^AC[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The Twilio-provided string that uniquely identifies the Transcription resource to delete.
^TR[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID and Auth Token at twilio.com/console5// and set the environment variables. See http://twil.io/secure6const accountSid = process.env.TWILIO_ACCOUNT_SID;7const authToken = process.env.TWILIO_AUTH_TOKEN;8const client = twilio(accountSid, authToken);910async function deleteTranscription() {11await client.transcriptions("TRXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").remove();12}1314deleteTranscription();