---
title: "Transcribe audio"
method: POST
path: "/v1/audio/transcriptions"
tags: ["Speech To Text (Hear)"]
---

# Transcribe audio

`POST /v1/audio/transcriptions`

## Request

- Base URL: `https://api.pyai.com`
- URL: `https://api.pyai.com/v1/audio/transcriptions`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

OpenAI-compatible transcription. Requires the `hear:transcribe` scope.

## Response `200`

Transcription result

- Transcription
  - `text` string
  - `model` string

## Other responses

- `401`: Missing or invalid API key (`code: unauthorized`)
- `402`: Billing gate: org out of prepaid credit, per-key budget hit, or plan quota exhausted (`code: credit_exhausted | key_budget_exceeded | insufficient_quota`). Do not retry; add credit or raise the limit. A brand-new key may see this on its first call until the account is funded.
- `403`: Key lacks the required scope or the origin is not allow-listed (`code: forbidden | origin_not_allowed`)
- `429`: Too many requests or too many concurrent realtime sessions; see Retry-After header (`code: rate_limit_exceeded | concurrency_limit_exceeded | daily_cap_exceeded`)

---

[API](https://skmtc.dev/pyai/apis/pyai-api.md) · [All operations](https://skmtc.dev/pyai/apis/pyai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pyai/apis/pyai-api/revisions/271a1539185b?raw)
