Skip to main content
Transcribe audio through Eden AI’s OpenAI-compatible transcriptions endpoint. Point any OpenAI client at https://api.edenai.run/v3 and client.audio.transcriptions works as a drop-in replacement for OpenAI’s speech to text.

Overview

The call is synchronous: the transcript comes back in the response, with Eden’s cost (USD) and provider fields added.
Transcription models are only available on /v3/audio/transcriptions. They are not in GET /v3/models, which lists chat models.
This is different from Expert Model speech to text, an asynchronous job API through /v3/universal-ai/async that covers more providers (Amazon, AssemblyAI, Gladia, Google, Microsoft and others) and options such as speaker diarization. Use /v3/audio/transcriptions when you want an OpenAI-compatible, drop-in transcription surface.

Models

Call GET /v3/audio/transcriptions/models for the full list available in your region, with the per-second price of each model.

Transcribing a file

The endpoint takes the audio in one of two ways, chosen by the request’s Content-Type:
  • multipart/form-data: the audio is uploaded as a file part. This is what the OpenAI SDK sends.
  • application/json: the audio is referenced by file_url (an https:// URL or a data:audio/...;base64,... URL) or by file_id (a file uploaded to Eden AI through File Upload). Set exactly one of the two.

Uploading the file

The official OpenAI SDK works unchanged once base_url points at Eden AI:

Referencing a URL

Request parameters

Unknown fields are ignored. The audio can be at most 25 MB.

Response format

With "response_format": "verbose_json", the response also carries the detected language, the audio duration in seconds, and segments with start and end times. Models that support word timestamps add words when timestamp_granularities includes "word".
Use json or verbose_json. Unlike OpenAI, text, srt and vtt do not return a plain-text or subtitle body. The Groq and Deepgram models ignore them and return the JSON transcript; other models may return an error. With the OpenAI SDK, keep the default json format: passing response_format="text" makes the SDK return the raw JSON string instead of a Transcription object.

Listing transcription models

cURL
Each entry carries its pricing, e.g. {"input_cost_per_second": 0.00001111} for groq/whisper-large-v3-turbo. The endpoint takes the same view parameter as the other model listings.

Pricing

Transcription is billed per second of audio, at the rate GET /v3/audio/transcriptions/models shows: an 11-second clip on groq/whisper-large-v3-turbo costs 11 × 0.00001111≈0.00001111 ≈ 0.000122. The amount charged is in the response’s cost field.

Limitations

  • Files up to 25 MB. A larger file returns 413. A file whose duration cannot be read returns 400.
  • No @edenai routing. "model": "@edenai" returns 400; name a model.
  • No fallbacks. The field is ignored, like any unknown field: only model is tried, and a failure is not retried on another model.
  • No streaming. The transcript is returned in one response once the whole file is transcribed.
  • No translations endpoint. /v3/audio/translations (speech to English text) is not implemented.

Next Steps

Text to Speech

Generate speech through the OpenAI-compatible speech endpoint

Expert Speech to Text

Asynchronous transcription with more providers and diarization