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/music
ModelIDPrice per song

Make a song

import os
import time
import requests
api = "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 with style and no lyrics.

The result

Each item in tracks
indexnumber
Which take it is, starting at 1. Use it as track when 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=1

Streams that take's MP3. Songs are kept for 30 days.

List your songs

GET/v1/music

Newest 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.