---
title: "Transcription"
method: POST
path: "/v1/audio/transcribe"
tags: ["Suprsonic"]
---

# Transcription

`POST /v1/audio/transcribe`

## Request

- Base URL: `https://suprsonic.ai`
- URL: `https://suprsonic.ai/v1/audio/transcribe`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/suprsonic/apis/suprsonic-unified-agent-api/docs/v1/audio/transcribe/post.ts> (a function with typed inputs; its response is checked against the schema)

Transcribe audio with speaker diarization and timestamps. Returns the full transcript with its confidence, language, duration, word and speaker counts, and the utterances, each with its speaker and start and end time. Use for meetings, interviews and podcasts, where who spoke when matters. For a short clip's word timings use stt; for caption files use subtitle. Cost: 3 credits, charged only when a call succeeds.

## Request body

- AppApiUnifiedTranscriptionTranscribeRequest
  - `audio_url` string, required
  - `language` string
  - `speaker_labels` boolean

## Response `200`

The call's envelope: success, data (the capability's result), metadata, and credits_used (0 when the call did not succeed).

- UnifiedResponse: Standard envelope for all unified API responses.
  - `success` boolean, required
  - `data` union
    - object
    - unknown[]
      - unknown
  - `error` UnifiedError: RFC 7807 problem detail for machine-actionable errors.
    - `type` string, required
    - `title` string, required
    - `status` integer, required
    - `detail` string, nullable
    - `is_retriable` boolean
    - `retry_after_seconds` integer, nullable
    - `alternative_action` string, nullable
    - `error_category` string
    - `caller_error` string, nullable
  - `metadata` UnifiedMetadata: Metadata included in every unified API response.
    - `provider_used` string, nullable
    - `providers_tried` string[]
    - `mode_used` string, nullable
    - `response_time_ms` integer
    - `request_id` string
    - `capability` string, nullable
    - `params` object, nullable
  - `credits_used` integer

## Other responses

- `401`: No API key, or one that was not found or is revoked.
- `402`: Not enough credits for this call. The error's alternative_action says where to add them.
- `403`: The account is restricted by a billing issue.
- `422`: Validation Error
- `429`: The key's rate limit is reached. The error's retry_after_seconds says when to try again.

## Changes

- **2026-11-01** `120f2dd4c855`: 7 info
  - added the optional property `detail/caller_error` to the response with the `401` status
  - added the optional property `detail/caller_error` to the response with the `402` status
  - added the optional property `detail/caller_error` to the response with the `403` status
  - added the optional property `detail/caller_error` to the response with the `429` status
  - …3 more
- **2026-10-23** `9edc3bfe1b9c`: 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status
- **2026-10-19** `8134f9a5b206`: 2 breaking, 15 info
  - the response's body type changed from no type to `object` for status `200`
  - the `detail/items/` response's property type changed from no type to `object` for status `422`
  - api operation id `unified_transcribe_v1_audio_transcribe_post` removed and replaced with `transcribe`
  - api tag `Suprsonic` added
  - …13 more

[Operation history](https://skmtc.dev/suprsonic/apis/suprsonic-unified-agent-api/changes/v1/audio/transcribe/post.md)

---

[API](https://skmtc.dev/suprsonic/apis/suprsonic-unified-agent-api.md) - [All operations](https://skmtc.dev/suprsonic/apis/suprsonic-unified-agent-api/llms.txt) - [OpenAPI document](https://skmtc.dev/suprsonic/apis/suprsonic-unified-agent-api/revisions/120f2dd4c855?raw)
