POST
/
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
}
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.
audio_pathString❌ DeprecatedUse audio_url instead.
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. Other parameters like mode, replace_start_at, extend_after, etc. have been deprecated and removed.

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

Response

200
application/json

Successfully initiated remix task

The response is of type object.