WAV generation/retrieval API
Endpoint description
The WAV endpoint generates or retrieves a lossless WAV audio address for an existing song.
Endpoint: POST /api/music/wav
Billing: Free. This endpoint generates or retrieves the WAV address of an existing song and does not deduct quota.
Wait times and timeouts (important): this is a synchronous endpoint — the order is only accepted when the response arrives. Measured, most requests return in 1-3 seconds, about 10% take longer than 30 seconds, and the longest is about 230 seconds. Set your client timeout to 300 seconds or more; no response does not mean nothing was generated, and do not retry immediately after a timeout. If the connection dropped, confirm later with
GET /api/music/songs. See "Wait times and timeout settings" in the New API overview.
Request parameters
Headers
| Parameter | Type | Required | Notes |
|---|---|---|---|
| Authorization | string | yes | Bearer YOUR_API_KEY |
| Content-Type | string | yes | application/json |
Body parameters
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
| model | string | yes | - | Model version, for example suno-v6 |
| audioId | string | yes | - | Song ID |
| maxAttempts | number | no | 24 | Maximum number of polling attempts |
| intervalSeconds | number | no | 5 | Polling interval in seconds |
maxAttempts and intervalSeconds are both JSON numbers; intervalSeconds is measured in seconds, not milliseconds, and keeping the defaults is usually enough. They only control how many times and at what interval this endpoint internally waits for the WAV to become ready; they do not change the state of the generation task itself.
Request example
curl -X POST https://www.suno-api.io/api/music/wav \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-v6",
"audioId": "clip_id",
"maxAttempts": 24,
"intervalSeconds": 5
}'
Response
{
"code": 200,
"message": "success",
"data": {
"audioId": "clip_id",
"status": "complete",
"wavUrl": "https://media.code-go.com/assets/example.wav"
}
}
Notes
WAV generation and lookup are selected automatically by the server from the song record; the customer does not need to provide any account information.
Normal songs and separated tracks use the same controlled media delivery path. The WAV is first downloaded and written to disk by CN2, and the data.wavUrl in a successful response returns only a controlled CDN address — never a temporary Suno or S3 source address.
When a ready WAV asset already exists it is reused, without re-requesting Suno or moving files again. A WAV that has not been prepared yet is not exposed as a Suno/S3 address through /api/music/query; it is prepared on demand only after calling this endpoint or the unified download endpoint.
⚠️ WAV address validity: 7 days — save it in time. The returned
data.wavUrlis served by the platform's object storage and expires after 7 days by default (the file is reclaimed and the old address returns 404). Save the WAV to your own storage within the validity period; once it expires, call this endpoint again to get a new valid address.
If the song resource is temporarily unavailable, the endpoint returns 409. Retry later; the server will not return unstable temporary addresses.
Get an API key
Create an API key in the console after signing up. ¥0.6 per run returns 2 tracks, downloads are unlimited, and no phone number is required.
Get API key Back to overview