Suno 6
Suno 6 (suno-music-generate, short names suno and suno-v6; the old suno-v5 keeps working) generates vocal songs from a text prompt. It returns 2 tracks per request. Generation is async, like video: create a job, poll the status, download the finished mp3 files. The model is paid — requests are charged from your balance.
Parameters
Section titled “Parameters”A job is created with POST /v1/audio/music:
| Field | Description |
|---|---|
model |
suno or suno-v6 (the full key is suno-music-generate; suno-v5 is a legacy synonym) |
prompt |
Track description, up to 5000 characters; required in simple mode |
mode |
simple (from prompt) or custom (from lyrics + style + title); defaults to simple |
lyrics |
Song lyrics; required in custom mode, up to 5000 characters |
style |
Genre, style, tags; up to 500 characters |
title |
Track title; up to 200 characters |
A request with mode: simple and no prompt, or mode: custom and no lyrics, returns 400.
Examples
Section titled “Examples”Simple mode
Section titled “Simple mode”import time
import requests
API = "https://api.mixen.ai/v1/audio/music"headers = {"Authorization": f"Bearer {MIXEN_API_KEY}"}
job = requests.post( API, headers=headers, json={"model": "suno", "prompt": "Melancholic synth-pop about a night city, female vocals"},).json()
while job["status"] in ("queued", "in_progress"): time.sleep(5) job = requests.get(f"{API}/{job['id']}", headers=headers).json()
for i in (0, 1): # Suno yields two tracks for a single charge mp3 = requests.get(f"{API}/{job['id']}/content", params={"index": i}, headers=headers) with open(f"track_{i}.mp3", "wb") as f: f.write(mp3.content)curl https://api.mixen.ai/v1/audio/music \ -H "Authorization: Bearer $MIXEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "suno", "prompt": "Melancholic synth-pop about a night city, female vocals" }'Custom mode
Section titled “Custom mode”When you need specific lyrics rather than generated ones:
{ "model": "suno", "mode": "custom", "title": "Night Tram", "style": "indie rock, 90s, male vocals, live drums", "lyrics": "First verse...\n\nChorus..."}Poll and download
Section titled “Poll and download”The statuses are the same as for video: queued → in_progress → completed or failed; a finished answer carries a tracks array with index and title.
curl https://api.mixen.ai/v1/audio/music/music_... \ -H "Authorization: Bearer $MIXEN_API_KEY"
curl -L "https://api.mixen.ai/v1/audio/music/music_.../content?index=1" \ -H "Authorization: Bearer $MIXEN_API_KEY" -o track_1.mp3Two tracks per request is how the model behaves, not an error: both appear in the poll response, and a specific track is downloaded with the ?index=N parameter of /audio/music/{id}/content (numbering starts at zero, default 0). The endpoint returns mp3 and supports Range requests. A job that has not finished within 15 minutes is marked failed on the next poll and is not charged.
8.0216 ₽ ($0.09) per request — the per_request_rub field in the catalog. Music is billed per request rather than per second: Suno’s two tracks are one charge.
Strengths and limits
Section titled “Strengths and limits”- A vocal song from a text prompt; each request yields two track variants.
- Custom mode: your own lyrics, genre and title.
- Two tracks for a single charge — pick the better one from the poll response.
- Instrumental tracks without vocals are the Lyria model — see the music guide.
- Balance only; a job that times out is not charged.
All models — in the catalog. The full music workflow — music guide.