ElevenLabsSpeech to textAvailable now

scribe_v2

scribe_v2 is a speech to text tool from ElevenLabs that runs in the background and returns structured JSON. Pay as you go from $0.00013 per credit, with one API key.

Try itfrom $0.00013 / credit

Pricing

$0.286 per hour of audio, measured from the input file. Each channel counts when use_multi_channel is on. The final charge comes from usage.

Limits

Runs
In the background
Returns
json
Longest queue wait
3600s
Run deadline
1800s
Largest inline input
1024 KB
Largest input file
500 MB
Largest output
4768 MB
Outputs per run
16

Input

FieldKindDefaultDescription
fileURL or file—A link to the audio or video file to transcribe (a Toolbox file link or a public https URL), sent to ElevenLabs as the file. At least 100 ms of audio and at most 500 MB; give a larger file as `source_url`. Exactly one of `file` and `source_url`.
seednumber (whole)
0 to 2147483647
—If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed. Must be an integer between 0 and 2147483647.
diarizetrue or falsefalseWhether to annotate which speaker is currently talking in the uploaded file.
source_urlURL or file—The URL of an audio or video file for ElevenLabs to fetch and transcribe: hosted audio or video files, YouTube and TikTok video URLs and other video hosting services. Exactly one of `file` and `source_url`.
file_formatone of
pcm_s16le_16, other
otherThe format of input audio. Options are 'pcm_s16le_16' or 'other' For `pcm_s16le_16`, the input audio must be 16-bit PCM at a 16kHz sample rate, single channel (mono), and little-endian byte order. Latency will be lower than with passing an encoded waveform.
no_verbatimtrue or falsefalseIf true, the transcription will not have any filler words, false starts and non-speech sounds. Only supported with scribe_v2 model.
temperaturenumber
0 to 2
—Controls the randomness of the transcription output. Accepts values between 0.0 and 2.0, where higher values result in more diverse and less deterministic results. If omitted, we will use a temperature based on the model you selected which is usually 0.
num_speakersnumber (whole)
1 to 32
—The maximum amount of speakers talking in the uploaded file. Can help with predicting who speaks when. The maximum amount of speakers that can be predicted is 32. Defaults to null, in this case the amount of speakers is set to the maximum value the model supports.
language_codetext—An ISO-639-1 or ISO-639-3 language_code corresponding to the language of the audio file. Can sometimes improve transcription performance if known beforehand. Defaults to null, in this case the language is predicted automatically.
tag_audio_eventstrue or falsetrueWhether to tag audio events like (laughter), (footsteps), etc. in the transcription.
use_multi_channeltrue or falsefalseWhether the audio file contains multiple channels where each channel contains a single speaker. When enabled, each channel is transcribed independently. By default a separate transcript is returned per channel; set multichannel_output_style='combined' to instead receive a single transcript with all channels merged and sorted by time. Each word in the response includes a 'channel_index' field indicating which channel it was spoken on. A maximum of 5 channels is supported. Each channel is billed independently at the full audio duration, so cost scales linearly with the number of channels.
detect_speaker_rolestrue or falsefalseWhether to detect speaker roles (agent vs customer). Requires diarize=true. Cannot be used with use_multi_channel=true. When enabled, speaker_id values will be 'agent' and 'customer' instead of 'speaker_0', 'speaker_1', etc. Usage incurs an additional 10% surcharge on base transcription cost.
diarization_thresholdnumber
0.1 to 0.4
—Diarization threshold to apply during speaker diarization. A higher value means there will be a lower chance of one speaker being diarized as two different speakers but also a higher chance of two different speakers being diarized as one speaker (less total speakers predicted). A low value means there will be a higher chance of one speaker being diarized as two different speakers but also a lower chance of two different speakers being diarized as one speaker (more total speakers predicted). Can only be set when diarize=True and num_speakers=None. Defaults to None, in which case we will choose a threshold based on the model_id (0.22 usually).
timestamps_granularityone of
none, word, character
wordThe granularity of the timestamps in the transcription. 'word' provides word-level timestamps and 'character' provides character-level timestamps per word.
multichannel_output_styleone of
separate, combined
separateControls the response shape when use_multi_channel is enabled. 'separate' (default) returns one transcript per channel under 'transcripts'. 'combined' merges all channels into a single transcript whose words are sorted by start time, each carrying a 'channel_index' - matching the single-channel response shape. 'combined' requires timestamps (timestamps_granularity must not be 'none') and does not support entity detection or redaction.

Same request in code

curl https://api.spiral.ai/v1/runs \
  -H "Authorization: Bearer $SPIRAL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "provider": "elevenlabs",
    "model": "scribe_v2",
    "input": {}
  }'