---
title: "Create transcription"
method: POST
path: "/audio/transcriptions"
tags: ["STT"]
---

# Create transcription

`POST /audio/transcriptions`

Transcribes audio into text. Accepts base64-encoded audio input as JSON or an OpenAI-style multipart/form-data file upload, and returns the transcribed text.

## Request body

- STTRequest — Speech-to-text request input. Accepts a JSON body with input_audio containing base64-encoded audio.
  - `input_audio` STTInputAudio, required — Base64-encoded audio to transcribe
    - `data` string, required — Base64-encoded audio data (raw bytes, not a data URI)
    - `format` string, required — Audio format (e.g., wav, mp3, flac, m4a, ogg, webm, aac). Supported formats vary by provider.
  - `language` string — ISO-639-1 language code (e.g., "en", "ja"). Auto-detected if omitted.
  - `model` string, required — STT model identifier
  - `provider` object — Provider-specific passthrough configuration
    - `options` ProviderOptions — Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped.
      - `01ai` object
      - `ai21` object
      - `aion-labs` object
      - `akashml` object
      - `alibaba` object
      - `amazon-bedrock` object
      - `amazon-nova` object
      - `ambient` object
      - `anthropic` object
      - `anyscale` object
      - `arcee-ai` object
      - `atlas-cloud` object
      - `atoma` object
      - `avian` object
      - `azure` object
      - `baidu` object
      - `baseten` object
      - `black-forest-labs` object
      - `byteplus` object
      - `centml` object
      - `cerebras` object
      - `chutes` object
      - `cirrascale` object
      - `clarifai` object
      - `claude-on-aws` object
      - `cloudflare` object
      - `cohere` object
      - `coreweave` object
      - `crofai` object
      - `crucible` object
      - `crusoe` object
      - `darkbloom` object
      - `decart` object
      - `deepgram` object
      - `deepinfra` object
      - `deepseek` object
      - `dekallm` object
      - `digitalocean` object
      - `enfer` object
      - `fake-provider` object
      - `featherless` object
      - `fireworks` object
      - `fish-audio` object
      - `friendli` object
      - `gmicloud` object
      - `google-ai-studio` object
      - `google-vertex` object
      - `gopomelo` object
      - `groq` object
      - `heygen` object
      - `huggingface` object
      - `hyperbolic` object
      - `hyperbolic-quantized` object
      - `inception` object
      - `inceptron` object
      - `inferact-vllm` object
      - `inference-net` object
      - `infermatic` object
      - `inflection` object
      - `inocloud` object
      - `io-net` object
      - `ionstream` object
      - `klusterai` object
      - `krea` object
      - `lambda` object
      - `lepton` object
      - `liquid` object
      - `lynn` object
      - `lynn-private` object
      - `mancer` object
      - `mancer-old` object
      - `mara` object
      - `meta` object
      - `minimax` object
      - `mistral` object
      - `modal` object
      - `modelrun` object
      - `modular` object
      - `moonshotai` object
      - `morph` object
      - `ncompass` object
      - `nebius` object
      - `nex-agi` object
      - `nextbit` object
      - `nineteen` object
      - `novita` object
      - `nvidia` object
      - `octoai` object
      - `open-inference` object
      - `openai` object
      - `parasail` object
      - `perceptron` object
      - `perplexity` object
      - `phala` object
      - `poolside` object
      - `quiver` object
      - `recraft` object
      - `recursal` object
      - `reflection` object
      - `reka` object
      - `relace` object
      - `replicate` object
      - `runway` object
      - `sail-research` object
      - `sakana` object
      - `sakana-ai` object
      - `sambanova` object
      - `sambanova-cloaked` object
      - `seed` object
      - `sf-compute` object
      - `siliconflow` object
      - `sourceful` object
      - `stealth` object
      - `stepfun` object
      - `streamlake` object
      - `switchpoint` object
      - `targon` object
      - `tencent` object
      - `tenstorrent` object
      - `thinkingmachines` object
      - `together` object
      - `together-lite` object
      - `ubicloud` object
      - `upstage` object
      - `venice` object
      - `voyageai` object
      - `wafer` object
      - `wandb` object
      - `wandb-legacy` object
      - `xai` object
      - `xiaomi` object
      - `z-ai` object
  - `response_format` 'json' | 'verbose_json' — Output format. "json" (default) returns { text, usage }. "verbose_json" additionally returns task, language, duration, and segment-level timestamps; only supported by OpenAI-compatible providers.
  - `temperature` number, double — Sampling temperature for transcription
  - `timestamp_granularities` STTTimestampGranularity[] — Timestamp detail levels to include when response_format is "verbose_json". "segment" returns segment-level timestamps; "word" additionally returns word-level timestamps in the words array. Ignored unless response_format is "verbose_json".

## Response `200`

Transcription result

- STTResponse — STT response containing transcribed text and optional usage statistics
  - `duration` number, double — Duration of the input audio in seconds, present when response_format is verbose_json
  - `language` string — Detected or forced language, present when response_format is verbose_json
  - `segments` STTSegment[] — Timestamped transcript segments, present when response_format is verbose_json
    - `avg_logprob` number, double — Average log probability of the segment
    - `compression_ratio` number, double — Compression ratio of the segment
    - `end` number, double, required — Segment end time in seconds
    - `id` integer, required — Segment index within the transcript
    - `no_speech_prob` number, double — Probability the segment contains no speech
    - `seek` integer — Seek offset of the segment
    - `speaker` integer — Speaker index for the segment, present when the provider returns diarization data
    - `start` number, double, required — Segment start time in seconds
    - `temperature` number, double — Temperature used for the segment
    - `text` string, required — Transcribed text of the segment
    - `tokens` integer[] — Token IDs of the segment
  - `task` string — The task performed, present when response_format is verbose_json
  - `text` string, required — The transcribed text
  - `usage` STTUsage — Aggregated usage statistics for the request
    - `cost` number, double — Total cost of the request in USD
    - `input_tokens` integer — Number of input tokens billed for this request
    - `output_tokens` integer — Number of output tokens generated
    - `seconds` number, double — Duration of the input audio in seconds
    - `total_tokens` integer — Total number of tokens used (input + output)
  - `words` STTWord[] — Timestamped words, present when the provider returns word-level timestamps
    - `end` number, double, required — Word end time in seconds
    - `speaker` integer — Speaker index for the word, present when the provider returns diarization data
    - `start` number, double, required — Word start time in seconds
    - `word` string, required — The transcribed word

## Other responses

- `400` — Bad Request - Invalid request parameters or malformed input
- `401` — Unauthorized - Authentication required or invalid credentials
- `402` — Payment Required - Insufficient credits or quota to complete request
- `404` — Not Found - Resource does not exist
- `429` — Too Many Requests - Rate limit exceeded
- `500` — Internal Server Error - Unexpected server error
- `502` — Bad Gateway - Provider/upstream API failure
- `503` — Service Unavailable - Service temporarily unavailable
- `524` — Infrastructure Timeout - Provider request timed out at edge network
- `529` — Provider Overloaded - Provider is temporarily overloaded

---

[API](https://skmtc.net/openrouterteam/apis/openrouter-api.md) · [All operations](https://skmtc.net/openrouterteam/apis/openrouter-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openrouterteam/openrouter-api/versions/9d1da2c7d2c3/schema)
