---
title: "download (mp3 / m4a / wav)"
method: POST
path: "/api/v1/sonic/download"
tags: ["sonic"]
---

# download (mp3 / m4a / wav)

`POST /api/v1/sonic/download`

## Request

- Base URL: `https://api.musicapi.ai`
- URL: `https://api.musicapi.ai/api/v1/sonic/download`
- Auth: HTTP bearer

Download a finished track as **mp3**, **m4a**, and/or **wav**.

This replaces `POST /api/v1/sonic/wav`, which remains available but is no longer the recommended way to fetch a WAV. A WAV requested here resolves to the same stored file, so if you have already downloaded one through `/wav` it is returned immediately.

## Credits

**2 credits per call, regardless of how many formats you request.** Asking for all three costs the same as asking for one, so request everything you need in a single call rather than one call per format.

You are charged only when every requested format is returned. A `202` response costs nothing.

## Request

| Field | Type | Required | Notes |
|---|---|---|---|
| `clip_id` | string | yes | The clip to download. `music_id` is accepted as an alias. |
| `formats` | string[] | no | Any of `mp3`, `m4a`, `wav`. Defaults to `["mp3"]`. |

An unrecognised value in `formats` returns `400` — the request is rejected rather than partially fulfilled.

## Responses

**200** — every requested format is ready. `data.files` contains one entry per format.

**202** — the files are being prepared. **Retry the same request in a few seconds.** No credits are charged for a `202`, so retrying is free.

**404** — the clip could not be downloaded. Source audio is retained for a limited period after generation, so an older clip may no longer be downloadable; regenerate the track or use a more recent `clip_id`.

**403** — insufficient credits.

## Notes

- Files are served from our own CDN. The URLs are stable and safe to store.
- Requesting a format you have already downloaded returns instantly and does not re-prepare the file.

## Request body

- object
  - `clip_id` string, required: The clip to download. `music_id` is accepted as an alias.
  - `formats` string[]: Any of mp3, m4a, wav. Defaults to ["mp3"].

## Response `200`

Every requested format is ready.

- object
  - `message` string, required
  - `data` object, required
    - `music_id` string, required
    - `files` object[], required
      - `format` string, required
      - `file_url` string, required

## Other responses

- `202`: Files are being prepared. Retry in a few seconds. No credits are charged.

---

[API](https://skmtc.dev/musicapi/apis/musicapi-docs-suno-style-ai-music-generation-api.md) - [All operations](https://skmtc.dev/musicapi/apis/musicapi-docs-suno-style-ai-music-generation-api/llms.txt) - [OpenAPI document](https://skmtc.dev/musicapi/apis/musicapi-docs-suno-style-ai-music-generation-api/revisions/f94a2c7ed4a1?raw)
