---
title: "Speech-to-Text"
method: POST
path: "/v1/audio/transcriptions"
---

# Speech-to-Text

`POST /v1/audio/transcriptions`

## Request

- Base URL: `https://stt.freyavoice.ai`
- URL: `https://stt.freyavoice.ai/v1/audio/transcriptions`
- Auth: HTTP bearer

Transcribe an audio file to text. Accepts multipart form upload with the audio file and optional parameters. Compatible with the OpenAI audio transcription API.

## Request body `multipart/form-data`

- object
  - `file` string, binary, required: The audio file to transcribe. Supported formats: `wav`, `mp3`, `flac`, `ogg`, `m4a`, `webm`. Maximum size: 15 MB.
  - `model` string: The model to use for transcription.
  - `response_format` 'json' | 'text' | 'verbose_json': The format of the response. `json` returns `{"text": "..."}`. `text` returns plain text. `verbose_json` includes language, timing, and word-level data.
  - `temperature` number: Sampling temperature between 0 and 1. Lower values are more deterministic.

## Response `200`

Transcription successful.

- union
  - object: Standard JSON response (response_format=json)
    - `text` string: The transcribed text.
    - `inference_time_ms` number: Server-side inference time in milliseconds.
  - object: Verbose JSON response (response_format=verbose_json)
    - `text` string: The transcribed text.
    - `language` string: Detected or specified language.
    - `inference_time_ms` number: Server-side inference time in milliseconds.
    - `words` object[]: Word-level data with confidence scores.
      - `word` string
      - `confidence` number

## Other responses

- `400`: Bad request — missing file, unsupported format, or file too large.
- `403`: Authentication failed or insufficient credits.
- `429`: Rate limit exceeded.

---

[API](https://skmtc.dev/freyavoice/apis/freya-model-apis.md) - [All operations](https://skmtc.dev/freyavoice/apis/freya-model-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/freyavoice/apis/freya-model-apis/revisions/9618fd80fb1f?raw)
