Skip to main content
POST
/
v1
/
Remix
Python
import requests

url = "https://api.musicgpt.com/api/public/v1/Remix"
headers = {"Authorization": "<API_KEY>"}
data = {
  "prompt": "Make it sound like Lo-fi with chill beats",
  "lyrics": "It's a brand new day",
  "gender": "female",
  "webhook_url": "https://example.com/my-webhook"
}

# Option 1: audio_url
files = {}
data["audio_url"] = "https://mybucket.s3.amazonaws.com/song.mp3"
response = requests.post(url, headers=headers, data=data, files=files)

# Option 2: File Upload
with open("song.mp3", "rb") as f:
    files = {"audio_file": f}
    response = requests.post(url, headers=headers, data=data, files=files)

print(response.json())
{
  "success": true,
  "message": "Remix request submitted successfully",
  "task_id": "task-remix-001",
  "conversion_id_1": "remix-a1b2",
  "conversion_id_2": "remix-c3d4",
  "eta": 42,
  "credit_estimate": 47.5
}

Documentation Index

Fetch the complete documentation index at: https://docs.musicgpt.com/llms.txt

Use this file to discover all available pages before exploring further.

Remix Audio Using Prompt and Optional Lyrics This endpoint allows users to remix an input audio file or URL using a descriptive prompt, optional lyrics, and a gender selection for vocal tone.

Endpoint

POST /Remix

Request Parameters

ParameterTypeRequiredDescription
audio_fileUploadFileOptionalUpload the audio file directly. Required if audio_url is not provided.
audio_urlStringOptionalPublic URL or S3 path to audio. Required if audio_file is not provided.
promptString✅ YesDescribes how the audio should be transformed.
lyricsStringOptionalLyrics to guide remix or vocal generation. Max 2000 characters.
genderStringOptionalVocal tone. One of: male, female, neutral.
webhook_urlStringOptionalCallback URL for async response.
💡Note: Either audio_file or audio_url must be provided.
content-type: multipart/form-data

Sample Output

Listen to a real output: Prompt: remix in classical slow vibe - audio input : Moana How Far We will Go. Download Audio

Try it Yourself

Use the Remix Endpoint Explorer to test this endpoint live.

Sample Request

cURL

curl -X POST "https://api.musicgpt.com/api/public/v1/Remix" \
-H "accept: application/json" \
-H "Authorization: <api_key>" \
-F "audio_file=@/path/to/your/audio.mp3" \
-F "prompt=Make it sound like Lo-fi with chill beats" \
-F "lyrics=It's a brand new day" \
-F "gender=female" \
-F "webhook_url=https://example.com/my-webhook"

Python

import requests

url = "https://api.musicgpt.com/api/public/v1/Remix"
headers = {"Authorization": "<API_KEY>"}
data = {
  "prompt": "Make it sound like Lo-fi with chill beats",
  "lyrics": "It's a brand new day",
  "gender": "female",
  "webhook_url": "https://example.com/my-webhook"
}

# Option 1: audio_url
data["audio_url"] = "https://mybucket.s3.amazonaws.com/song.mp3"
response = requests.post(url, headers=headers, data=data)

# Option 2: File upload
# with open("song.mp3", "rb") as f:
#     files = {"audio_file": f}
#     response = requests.post(url, headers=headers, data=data, files=files)

# print(response.json())

Sample Response

Success (200 OK)

{
  "success": true,
  "message": "Remix request submitted successfully",
  "task_id": "task-remix-001",
  "conversion_id_1": "remix-a1b2",
  "conversion_id_2": "remix-c3d4",
  "eta": 42,
  "credit_estimate": 47.5
}

Webhook Response

{
  "success": true,
  "conversion_type": "Remix",
  "task_id": "task-remix-001",
  "conversion_id": "remix-a1b2",
  "conversion_path": "https://lalals.s3.amazonaws.com/conversions/2104a105-2572-4412-b6fb-f67b0382582a.mp3",
  "conversion_path_wav": "https://lalals.s3.amazonaws.com/conversions/2104a105-2572-4412-b6fb-f67b0382582a.wav",
  "conversion_duration": 162.44,
  "is_flagged": false,
  "reason": "",
  "lyrics": "...",
  "lyrics_timestamped": "..."
}

Webhook Delivery

Once the generation is complete, webhooks will be triggered to deliver the following:

Standard Requests (non-instrumental):

  • 2 (webhooks) x Remix conversion details (one per version)
  • 2 (webhooks) x Lyrics with timestamp data
  • 1 Album Cover Image
Webhook responses include detailed metadata including task_id, conversion_id, audio files (conversion_path), lyrics etc.

Common Errors

  • 422 Unprocessable Entity Missing required field prompt, or neither audio_file nor audio_url provided.
  • 500 Internal Server Error An error occurred during processing or task queueing.

The /Remix endpoint produces a downloadable or streamable remixed audio file with optional lyrical overlays and style transformations.

Payload and Request Formation

Authorizations

Authorization
string
header
required

Body

multipart/form-data
audio_url
string
required

URL or S3 path to the input audio.

Example:

"https://mybucket.s3.amazonaws.com/song.mp3"

prompt
string
required

Describes how the audio should be transformed.

Example:

"Make it sound like Lo-fi with chill beats"

audio_file
file

Uploaded audio file to be remixed.

lyrics
string

Optional lyrics to guide vocal generation.

Maximum string length: 2000
Example:

"It's a brand new day"

gender
enum<string>

Voice style if vocal content is generated.

Available options:
male,
female,
neutral
Example:

"female"

webhook_url
string

Callback URL for async processing results.

Example:

"https://example.com/my-webhook"

Response

Successfully initiated remix task

success
boolean
task_id
string
conversion_id_1
string
conversion_id_2
string
eta
integer

Estimated processing time in seconds

credit_estimate
number<float>
message
string