Skip to main content
POST
/
audio
/
transcriptions
Create transcription
curl --request POST \
  --url https://openrouter.ai/api/v1/audio/transcriptions \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "input_audio": {
    "data": "UklGRiQA...",
    "format": "wav"
  },
  "language": "en",
  "model": "openai/whisper-large-v3"
}
'
{
  "text": "Hello, this is a test of OpenAI speech-to-text transcription.",
  "usage": {
    "cost": 0.000508,
    "input_tokens": 83,
    "output_tokens": 30,
    "seconds": 9.2,
    "total_tokens": 113
  }
}

Authorizations

Authorization
string
header
required

API key as bearer token in Authorization header

Body

application/json

Speech-to-text request input. Accepts a JSON body with input_audio containing base64-encoded audio.

input_audio
object
required

Base64-encoded audio to transcribe

Example:
{ "data": "UklGRiQA...", "format": "wav" }
model
string
required

STT model identifier

Example:

"openai/whisper-large-v3"

language
string

ISO-639-1 language code (e.g., "en", "ja"). Auto-detected if omitted.

Example:

"en"

provider
object

Provider-specific passthrough configuration

temperature
number<double>

Sampling temperature for transcription

Example:

0

Response

Transcription result

STT response containing transcribed text and optional usage statistics

text
string
required

The transcribed text

Example:

"Hello, this is a test of OpenAI speech-to-text transcription. The weather is sunny today and the temperature is around 72 degrees."

usage
object

Aggregated usage statistics for the request

Example:
{
"cost": 0.000508,
"input_tokens": 83,
"output_tokens": 30,
"seconds": 9.2,
"total_tokens": 113
}