---
title: "Every audio format we produce, and exactly what its bytes are"
method: GET
path: "/v1/audio/format"
tags: ["audio"]
---

# Every audio format we produce, and exactly what its bytes are

`GET /v1/audio/format`

## Request

- Base URL: `https://api.ditto.audio` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ditto.audio/v1/audio/format`
- Auth: none declared

Audio defaults to MPEG-2 Layer III (MP3), 24 kHz, mono, 128 kbps, with no Xing/LAME header and no ID3 tag — the body starts at the first audio frame. Set `response_format` for anything else: mp3, mp3_64, mp3_160, wav, wav24, wav32f, flac, flac24, pcm, pcm_f32, aiff, caf, au, mulaw, alaw. The exact numbers for a given response are echoed in the `X-Ditto-Audio-*` headers; decode and resample from those rather than assuming a rate. GET /v1/audio/format describes every encoding in full, without authentication.

This endpoint is the machine-readable version: every `response_format` with its media type, codec, bit depth, bitrate, cost multiplier and a one-line description; the spellings we accept as aliases; the formats we do NOT produce and what to use instead; the response headers that echo the encoding; and a symptom→cause→fix table for the playback mistakes these encodings invite.

## Response `200`

- object
  - `object` string
  - `default` string
  - `sampleRateHz` number
  - `channels` number
  - `costMultipliers` object: The two rates a format can bill at, and what the surcharge is for.
    - `standard` number
    - `hiFidelity` number
    - `note` string
  - `formats` object[]
    - `id` 'mp3' | 'mp3_64' | 'mp3_160' | 'wav' | 'wav24' | 'wav32f' | 'flac' | 'flac24' | 'pcm' | 'pcm_f32' | 'aiff' | 'caf' | 'au' | 'mulaw' | 'alaw'
    - `mimeType` string
    - `extension` string
    - `container` string
    - `codec` string
    - `compression` 'lossy' | 'lossless' | 'none'
    - `sampleRateHz` number
    - `channels` number
    - `bitsPerSample` number
    - `float` boolean
    - `bitrateBps` number, nullable: Null for `flac`, whose bitrate depends on the content.
    - `bytesPerSecond` number, nullable
    - `costMultiplier` number
    - `bitExact` boolean: True only for the format that keeps the model’s floats untouched.
    - `summary` string
    - `mpegVersion` string
    - `mpegLayer` number
    - `hasXingHeader` boolean
    - `hasId3Tag` boolean
  - `aliases` object: Other spellings we accept, mapped to the canonical id.
  - `unsupported` object: Formats we do not produce, each with what to use instead.
  - `headers` string[]
  - `notes` string[]
  - `troubleshooting` object[]
    - `symptom` string
    - `cause` string
    - `fix` string

---

[API](https://skmtc.dev/ditto/apis/ditto-audio-api.md) · [All operations](https://skmtc.dev/ditto/apis/ditto-audio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ditto/apis/ditto-audio-api/revisions/30c8d7c218da?raw)
