Skip to main content

Generate Instrumental Music (v5)

  • The API supports both streaming and synchronous responses

Endpoints

  • POST /v5/generate/music - streaming
  • POST /v5/generate/music/sync - synchronous

Request Parameters

ParameterTypeDescriptionRequiredDefault Value
promptstringText prompt describing the desired music.YesN/A
stylestringMusical style or genre (e.g., jazz, classical, rock).NoN/A

Example Request

{
  "prompt": "upbeat jazz music with saxophone",
  "style": "jazz"
}

Code Examples - Streaming

import requests
import json

url = "https://api.soundverse.ai/v5/generate/music"
headers = {
    "Authorization": "Bearer your_api_key_here",
    "Content-Type": "application/json"
}
payload = {
    "prompt": "upbeat jazz music with saxophone",
    "style": "jazz"
}

response = requests.post(url, json=payload, headers=headers, stream=True)

# Process streaming response
for line in response.iter_lines():
    if line:
        text = line.decode('utf-8')
        if text.startswith('data: '):
            data = json.loads(text[6:])
            print(data)

Code Examples - Synchronous

import requests

url = "https://api.soundverse.ai/v5/generate/music/sync"
headers = {
    "Authorization": "Bearer your_api_key_here",
    "Content-Type": "application/json"
}
payload = {
    "prompt": "upbeat jazz music with saxophone",
    "style": "jazz"
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())

Streaming Response

Fields

🛈 The fields below are used in the chunks sent by SSE during the streaming process.
ParameterTypeDescription
isCompleteboolIndicates if the streaming response is complete.
statusstringCurrent status of the extension process.
chunkIndexintegerIndex of the current chunk in the streaming sequence.
message_idstringUnique identifier for the extension request.
stream_urlstringURL to access the generated audio stream when ready.
versionintegerVersion of the generated content.
album_artstringURL of the album art associated with the generated content.
song_namestringName of the generated track.
progressintegerProgress percentage of the generation process. 0-100
streaming_readyboolIndicates if audio is ready for streaming.
versionintegerVersion number of the generated audio.
audio_urlstringURL of the generated audio file.
errorstringError message if any issues occurred during processing.
operationstringType of operation being performed (e.g., “extend_song”).

Synchronous Response

Sample Synchronous Output

{
  "message_id": "...",
  "album_art": "https://storage.soundverse.ai/x-one/.../userData/album-arts/album_art_1766599034.webp",
  "song_name": "Midnight Drizzle Beats",
  "audio_data": [
    {
      "audio_url": "https://storage.soundverse.ai/x-one/.../userData/generated-audio/midnight_drizzle_beats_v1.mp3",
      "song_name": "Midnight Drizzle Beats",
    },
    {
      "audio_url": "https://storage.soundverse.ai/x-one/.../userData/generated-audio/midnight_drizzle_beats_v2.mp3",
      "song_name": "Midnight Drizzle Beats",
    }
  ] 
}

Possible Errors

Rate Limit Exceeded:
{
  "success": false,
  "message": "Rate limits have been passed for the user."
}
Insufficient Balance:
{
  "success": false,
  "message": "Insufficient balance for this operation."
}
Invalid Prompt:
{
  "detail": "Invalid or empty prompt provided"
}
NSFW Content Detected:
{
  "success": false,
  "message": "NSFW words detected. Please try again with different lyrics."
}
Service Unavailable:
{
  "success": false,
  "message": "Service temporarily unavailable. Please try again in a moment.",
  "error": "Database connection pool exhausted"
}