Transcription
Convert audio to text. Multipart upload, 25MB cap, returns JSON or one of several timestamped formats. Currently routed to Deepgram Nova-3 and Nova-2.
Transcribe an audio file
POST
/v1/audio/transcriptionsauth · sk-echoMultipart upload. Accepts mp3, mp4, mpeg, mpga, m4a, wav, webm. 25MB max.
from openai import OpenAI
client = OpenAI(
base_url="https://api.echotokens.me/v1",
api_key="sk-echo-...",
)
with open("interview.mp3", "rb") as audio:
result = client.audio.transcriptions.create(
model="nova-3",
file=audio,
response_format="json",
)
print(result.text)Parameters
parameter
type
required
description
- parameter
modeltypestringrequiredrequirednova-3 (default in our studio) or nova-2. - parameter
filetypefile (multipart)requiredrequiredAudio binary. Max 25MB. mp3, mp4, mpeg, mpga, m4a, wav, webm. - parameter
response_formattypestringrequiredoptionaljson, text, srt, vtt, or verbose_json.default:json - parameter
languagetypestringrequiredoptionalISO 639-1 code or "multi" for Deepgram auto-detection. - parameter
prompttypestringrequiredoptionalOptional style / terminology hint the model can lean on while transcribing.
Response
response · 200
{
"text": "Hello, and welcome to the show. Today we're talking about...",
"cost_usd_cents": 1
}When you request response_format="verbose_json", the response also includes word-level timestamps and (where the model supports it) speaker diarization.
Other response formats
text— plain text body, no JSON envelope.srt— SubRip subtitle file.vtt— WebVTT subtitle file.verbose_json— JSON with per-word timestamps.
Picking a model
all speech-to-text models
Loading model catalog…
catalog auto-syncs from the upstream every 6h · canonical pricing at /pricing
audio length limits
The 25MB upload cap is enforced at the proxy. A 25MB MP3 at 128kbps is about 25 minutes — long enough for most podcasts and interviews. For longer files, chunk on natural pause boundaries before submitting.
try it in the studio
Voice studio · Transcribe
Drop an audio file in the browser and get the transcript back without writing the multipart code.