Music
Music
Make full songs from a description, or from your own lyrics and style. Each request makes 2 takes for one price, and usually finishes in about a minute.
POST
/v1/musicMake a song
song.py
import osimport timeimport requestsapi = "https://api.zurelay.com/v1"headers = {"Authorization": f"Bearer {os.environ['ZURELAY_API_KEY']}"}song = requests.post(f"{api}/music", headers=headers, json={ "model": "suno-v6", "prompt": "A cheerful acoustic folk song about morning coffee",}).json()while song["status"] in ("queued", "in_progress"): time.sleep(5) song = requests.get(f"{api}/music/{song['id']}", headers=headers).json()for track in song["tracks"]: print(track["title"], track["url"])A song is made in the background. POST /v1/music answers at once with an id; ask for it with GET /v1/music/{id} every few seconds until its status is completed or failed.
Parameters
Send prompt to describe a song, or write it yourself with lyrics and style. Don't send both.
modelstringrequired- A music model ID from the table.
promptstring- What the song should be, up to 200 characters.
lyricsstring- Your own lyrics, up to 3,000 characters. Mark sections with tags such as
[Verse]and[Chorus]. stylestring- The genre, mood, instruments or voice, up to 120 characters.
exclude_stylestring- Styles or instruments to keep out, up to 120 characters.
titlestring- The song's title, up to 80 characters.
instrumentalboolean- No vocals. Works with
prompt, or withstyleand nolyrics.
The result
Each item in tracks
indexnumber- Which take it is, starting at 1. Use it as
trackwhen downloading. titlestring- The song's title. The model writes one if you don't.
duration_secondsnumber- How long the take is.
stylestring- The style the model used, in its own words.
lyricsstring- The words sung. Empty for an instrumental.
urlstring- A link to the MP3, good for 24 hours. Fetch the song again for a new one.
Download a take
GET
/v1/music/{id}/content?track=1Streams that take's MP3. Songs are kept for 30 days.
List your songs
GET
/v1/musicNewest first. Takes limit (up to 100) and after (a song's id) to page through them.
Good to know
- You're charged only when a song is delivered. If it fails, it's free.
- A request naming a famous artist, or using someone else's lyrics, may be refused with the error code
content_policy. Describe the sound instead. - Songs vary in length, usually from under a minute to about three and a half minutes. Length can't be set.
Not an official Suno API
Suno has no public API of its own, and Zurelay isn't affiliated with Suno. Requests run on third-party capacity, so availability can change. Check Suno's terms before publishing or selling a song.
Questions, or something missing? Ask our support team and we’ll answer by email, usually within a minute.