Output
Transcription jobs are processed asynchronously by default: you submit a job, then check its status to see whether it has completed. To block for the result in a single request instead, use Synchronous transcription.
You can also configure notifications to be sent to a webhook when a job is completed. See Notifications for more details.
Check single job status
If you wish to retrieve a particular job, you can do so using the job ID for up to 7 days, after which time it will be automatically deleted in accordance with our Data Retention Policy.
You can make a GET request to check the status of a job as follows:
# $JOB_ID is from the submit command output
curl -L -X GET "https://eu1.asr.api.speechmatics.com/v2/jobs/$JOB_ID" \
-H "Authorization: Bearer $API_KEY"
curl -L -X GET "https://eu1.asr.api.speechmatics.com/v2/jobs/" \
-H "Authorization: Bearer $API_KEY"
This endpoint applies a short default wait, returning as soon as the job reaches a terminal state. Pass the wait query parameter to control the duration, or wait=0 to return immediately. See Synchronous transcription.
The response is a JSON object containing details of the job, with the status field showing whether the job is still processing or not. The possible values are:
running: The job is still processing.done: The job has been completed. The transcript is available for download at the/jobs/:jobid/transcriptendpoint.rejected: Transcription was not possible. This will be accompanied by an error message.
An example response looks like this:
HTTP/1.1 200 OK
Content-Type: application/json
{
"job": {
"config": {
"notification_config": null,
"transcription_config": {
"additional_vocab": null,
"channel_diarization_labels": null,
"language": "en"
},
"type": "transcription"
},
"created_at": "2019-01-17T17:50:54.113Z",
"data_name": "example.wav",
"duration": 275,
"id": "yjbmf9kqub",
"status": "running"
}
}
Check multiple job statuses
You can retrieve the status of the 100 most recent jobs submitted in the past 7 days. This is done by making a GET request without a Job ID as follows:
curl -L -X GET "https://eu1.asr.api.speechmatics.com/v2/jobs/" \
-H "Authorization: Bearer $API_KEY"
curl -L -X GET "https://eu1.asr.api.speechmatics.com/v2/jobs/" `
-H "Authorization: Bearer $API_KEY"
A deleted job is not included in the list unless you request it explicitly, as described in the API reference.
Load and process the transcript
The transcript endpoint returns plain text, JSON, or SRT. Request the format using the format query parameter. See the API reference.
A few useful things to know about transcript formats:
- The default format is JSON.
- Use the
format=txtquery parameter to get the transcript in plain text. Useful for quick access to the transcript. - Use the
format=srtquery parameter to get the transcript in SRT format. Useful for displaying the transcript in a subtitle file. - To access other data, including word timestamps, translations, and speech intelligence features, use the default JSON format.
Like the job status endpoint, this endpoint applies a short default wait. Pass the wait query parameter alongside format to block for the transcript instead of polling. See Synchronous transcription.
Transcript response schema
Below is the schema for the transcript response when using the default JSON format.
RetrieveTranscriptResponseIn the API reference: Get the transcript for a transcription jobformatstringSpeechmatics JSON transcript format version number.
jobJobInfoSummary information about an ASR job, to support identification and tracking.
metadataRecognitionMetadataSummary information about the output from an ASR job, comprising the job type and configuration parameters used when generating the output.
resultsRecognitionResult[]An ASR job output item. The primary item types are
wordandpunctuation. Other item types may be present, for example to provide semantic information of different forms.speakersoptionalSpeakersResultItem[]List of unique speaker identifiers detected in the transcript.
translationsoptionalRecord<string, TranslationSentence[]>Translations of the transcript into other languages. It is a map of ISO language codes to arrays of translated sentences. Configured using
translation_config.summaryoptionalSummarizationResultSummary of the transcript, configured using
summarization_config.sentiment_analysisoptionalSentimentAnalysisResultThe main object that holds sentiment analysis data.
topicsoptionalTopicDetectionResultMain object that holds topic detection results.
chaptersoptionalAutoChaptersResultAn array of objects that represent summarized chapters of the transcript
audio_eventsoptionalAudioEventItem[]Timestamped audio events, only set if
audio_events_configis in the configaudio_event_summaryoptionalobjectSummary statistics per event type, keyed by
type, e.g. music
Example response
The following is an example of a transcript response, which you should see as an output of the provided example.wav file used in the code samples in the quickstart.
{
"format": "2.9",
"job": {
"created_at": "2025-06-30T11:43:54.135Z",
"data_name": "example.wav",
"duration": 15,
"id": "650krlru2e"
},
"metadata": {
"created_at": "2025-06-30T11:44:08.133526Z",
"language_pack_info": {
"adapted": false,
"itn": true,
"language_description": "English",
"word_delimiter": " ",
"writing_direction": "left-to-right"
},
"orchestrator_version": "2025.06.28+1eb4127132+13.4.0",
"transcription_config": {
"language": "en",
"model": "enhanced"
},
"type": "transcription"
},
"results": [
{
"alternatives": [
{
"confidence": 1,
"content": "Welcome",
"language": "en",
"speaker": "UU"
}
],
"end_time": 1.36,
"start_time": 0.72,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "to",
"language": "en",
"speaker": "UU"
}
],
"end_time": 1.44,
"start_time": 1.36,
"type": "word"
},
{
"alternatives": [
{
"confidence": 0.98,
"content": "Speechmatics",
"language": "en",
"speaker": "UU"
}
],
"end_time": 2.44,
"start_time": 1.48,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": ".",
"language": "en",
"speaker": "UU"
}
],
"attaches_to": "previous",
"end_time": 2.44,
"is_eos": true,
"start_time": 2.44,
"type": "punctuation"
},
{
"alternatives": [
{
"confidence": 1,
"content": "We're",
"language": "en",
"speaker": "UU"
}
],
"end_time": 3.24,
"start_time": 3.04,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "delighted",
"language": "en",
"speaker": "UU"
}
],
"end_time": 3.64,
"start_time": 3.24,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "that",
"language": "en",
"speaker": "UU"
}
],
"end_time": 3.8,
"start_time": 3.64,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "you've",
"language": "en",
"speaker": "UU"
}
],
"end_time": 4.04,
"start_time": 3.8,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "decided",
"language": "en",
"speaker": "UU"
}
],
"end_time": 4.44,
"start_time": 4.04,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "to",
"language": "en",
"speaker": "UU"
}
],
"end_time": 4.56,
"start_time": 4.44,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "try",
"language": "en",
"speaker": "UU"
}
],
"end_time": 4.92,
"start_time": 4.56,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "our",
"language": "en",
"speaker": "UU"
}
],
"end_time": 5.2,
"start_time": 4.92,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "speech",
"language": "en",
"speaker": "UU"
}
],
"end_time": 5.48,
"start_time": 5.2,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "to",
"language": "en",
"speaker": "UU"
}
],
"end_time": 5.6,
"start_time": 5.48,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "text",
"language": "en",
"speaker": "UU"
}
],
"end_time": 5.92,
"start_time": 5.6,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "software",
"language": "en",
"speaker": "UU"
}
],
"end_time": 6.56,
"start_time": 5.92,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "to",
"language": "en",
"speaker": "UU"
}
],
"end_time": 7.16,
"start_time": 7.04,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "get",
"language": "en",
"speaker": "UU"
}
],
"end_time": 7.4,
"start_time": 7.2,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "going",
"language": "en",
"speaker": "UU"
}
],
"end_time": 7.88,
"start_time": 7.4,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": ".",
"language": "en",
"speaker": "UU"
}
],
"attaches_to": "previous",
"end_time": 7.88,
"is_eos": true,
"start_time": 7.88,
"type": "punctuation"
},
{
"alternatives": [
{
"confidence": 1,
"content": "Just",
"language": "en",
"speaker": "UU"
}
],
"end_time": 8.12,
"start_time": 7.92,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "create",
"language": "en",
"speaker": "UU"
}
],
"end_time": 8.44,
"start_time": 8.12,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "an",
"language": "en",
"speaker": "UU"
}
],
"end_time": 8.64,
"start_time": 8.48,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "API",
"language": "en",
"speaker": "UU"
}
],
"end_time": 9,
"start_time": 8.64,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "key",
"language": "en",
"speaker": "UU"
}
],
"end_time": 9.36,
"start_time": 9,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "and",
"language": "en",
"speaker": "UU"
}
],
"end_time": 9.6,
"start_time": 9.36,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "submit",
"language": "en",
"speaker": "UU"
}
],
"end_time": 9.88,
"start_time": 9.6,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "a",
"language": "en",
"speaker": "UU"
}
],
"end_time": 10.04,
"start_time": 9.92,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "transcription",
"language": "en",
"speaker": "UU"
}
],
"end_time": 10.6,
"start_time": 10.04,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "request",
"language": "en",
"speaker": "UU"
}
],
"end_time": 11.04,
"start_time": 10.6,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "to",
"language": "en",
"speaker": "UU"
}
],
"end_time": 11.12,
"start_time": 11.04,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "our",
"language": "en",
"speaker": "UU"
}
],
"end_time": 11.32,
"start_time": 11.16,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "API",
"language": "en",
"speaker": "UU"
}
],
"end_time": 11.88,
"start_time": 11.32,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": ".",
"language": "en",
"speaker": "UU"
}
],
"attaches_to": "previous",
"end_time": 11.88,
"is_eos": true,
"start_time": 11.88,
"type": "punctuation"
},
{
"alternatives": [
{
"confidence": 1,
"content": "We",
"language": "en",
"speaker": "UU"
}
],
"end_time": 12.36,
"start_time": 12.24,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "hope",
"language": "en",
"speaker": "UU"
}
],
"end_time": 12.56,
"start_time": 12.4,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "you'll",
"language": "en",
"speaker": "UU"
}
],
"end_time": 12.8,
"start_time": 12.56,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "be",
"language": "en",
"speaker": "UU"
}
],
"end_time": 12.88,
"start_time": 12.8,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "very",
"language": "en",
"speaker": "UU"
}
],
"end_time": 13.08,
"start_time": 12.88,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "impressed",
"language": "en",
"speaker": "UU"
}
],
"end_time": 13.4,
"start_time": 13.08,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "by",
"language": "en",
"speaker": "UU"
}
],
"end_time": 13.56,
"start_time": 13.4,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "the",
"language": "en",
"speaker": "UU"
}
],
"end_time": 13.68,
"start_time": 13.56,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "results",
"language": "en",
"speaker": "UU"
}
],
"end_time": 14.36,
"start_time": 13.68,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": ".",
"language": "en",
"speaker": "UU"
}
],
"attaches_to": "previous",
"end_time": 14.36,
"is_eos": true,
"start_time": 14.36,
"type": "punctuation"
},
{
"alternatives": [
{
"confidence": 1,
"content": "Thank",
"language": "en",
"speaker": "UU"
}
],
"end_time": 15.08,
"start_time": 14.8,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": "you",
"language": "en",
"speaker": "UU"
}
],
"end_time": 15.4,
"start_time": 15.08,
"type": "word"
},
{
"alternatives": [
{
"confidence": 1,
"content": ".",
"language": "en",
"speaker": "UU"
}
],
"attaches_to": "previous",
"end_time": 15.4,
"is_eos": true,
"start_time": 15.4,
"type": "punctuation"
}
]
}
Multilingual transcript output
For a Melia 1 job, the language property on each word reflects the language detected for that word, so it can change across the transcript. For Enhanced and Standard jobs, which transcribe one selected language, the same language is reported for every word.
The example below shows two words in different languages within one transcript:
{
"results": [
{
"alternatives": [
{ "content": "Hello", "confidence": 0.98, "language": "en" }
],
"start_time": 0.20,
"end_time": 0.52,
"type": "word"
},
{
"alternatives": [
{ "content": "مرحبا", "confidence": 0.95, "language": "ar" }
],
"start_time": 0.60,
"end_time": 1.04,
"type": "word"
}
]
}
For multilingual transcripts, language_pack_info reports the word delimiter and writing direction per language rather than for a single language pack:
{
"metadata": {
"language_pack_info": {
"per_language_word_delimiters": {
"en": " ",
"ar": " "
},
"per_language_writing_direction": {
"en": "left-to-right",
"ar": "right-to-left"
}
}
}
}
per_language_word_delimiters gives the word delimiter for each language in the transcript, and per_language_writing_direction gives its writing direction.
Tracking metadata
You can optionally add tracking metadata to a job when you create it. This can be used for tracking the job through your own management workflow.
The metadata will be returned when you check job status, or get the transcript for a transcription job.
The metadata object can contain the following properties:
tracking
TrackingDataIn the API reference: Create a new jobtitleoptionalstringThe title of the job.
referenceoptionalstringExternal system reference.
tagsoptionalstring[]detailsoptionalobjectCustomer-defined JSON structure.
For example:
{
"type": "transcription",
"transcription_config": {
"model": "enhanced",
"language": "en"
},
"tracking": {
"title": "ACME Q12018 Statement",
"reference": "/data/clients/ACME/statements/segs/2018Q1-seg8",
"tags": [
"quick-review",
"segment"
],
"details": {
"user_type": "agent",
"client": {
"name": "ACME Corp",
"type": "enterprise"
},
"seg_start": 963.201,
"seg_end": 1091.481
}
}
}
App usage tracking
First, please contact Support to enable this feature.
For integrations where customers use their own Speechmatics API keys, gain insights into application usage by aggregating data on unique users, processing hours, languages used, and more.
Once enabled, use the sm-app query parameter when starting a job. For example:
APP_ID="YourAppID"
API_KEY="YOUR_API_KEY"
PATH_TO_FILE="example.wav"
curl -L -X POST "https://eu1.asr.api.speechmatics.com/v2/jobs/?sm-app=${APP_ID}" \
-H "Authorization: Bearer ${API_KEY}" \
-F data_file=@${PATH_TO_FILE} \
-F config='{"type": "transcription","transcription_config": { "model": "enhanced","language": "en" }}'