curl --request POST \
--url https://api.musicgpt.com/api/public/v2/MusicAI \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "A happy, upbeat song about summer",
"music_style": "<string>",
"negative_tags": "<string>",
"lyrics": "<string>",
"make_instrumental": false,
"vocal_only": false,
"title": "My Generated Track",
"gender": "",
"voice_id": "",
"generate_album_cover": false,
"lyrics_timestamps": false,
"model": "v7",
"webhook_url": "https://example.com/my-webhook"
}
'import requests
url = "https://api.musicgpt.com/api/public/v2/MusicAI"
payload = {
"prompt": "A happy, upbeat song about summer",
"music_style": "<string>",
"negative_tags": "<string>",
"lyrics": "<string>",
"make_instrumental": False,
"vocal_only": False,
"title": "My Generated Track",
"gender": "",
"voice_id": "",
"generate_album_cover": False,
"lyrics_timestamps": False,
"model": "v7",
"webhook_url": "https://example.com/my-webhook"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: 'A happy, upbeat song about summer',
music_style: '<string>',
negative_tags: '<string>',
lyrics: '<string>',
make_instrumental: false,
vocal_only: false,
title: 'My Generated Track',
gender: '',
voice_id: '',
generate_album_cover: false,
lyrics_timestamps: false,
model: 'v7',
webhook_url: 'https://example.com/my-webhook'
})
};
fetch('https://api.musicgpt.com/api/public/v2/MusicAI', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.musicgpt.com/api/public/v2/MusicAI",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => 'A happy, upbeat song about summer',
'music_style' => '<string>',
'negative_tags' => '<string>',
'lyrics' => '<string>',
'make_instrumental' => false,
'vocal_only' => false,
'title' => 'My Generated Track',
'gender' => '',
'voice_id' => '',
'generate_album_cover' => false,
'lyrics_timestamps' => false,
'model' => 'v7',
'webhook_url' => 'https://example.com/my-webhook'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.musicgpt.com/api/public/v2/MusicAI"
payload := strings.NewReader("{\n \"prompt\": \"A happy, upbeat song about summer\",\n \"music_style\": \"<string>\",\n \"negative_tags\": \"<string>\",\n \"lyrics\": \"<string>\",\n \"make_instrumental\": false,\n \"vocal_only\": false,\n \"title\": \"My Generated Track\",\n \"gender\": \"\",\n \"voice_id\": \"\",\n \"generate_album_cover\": false,\n \"lyrics_timestamps\": false,\n \"model\": \"v7\",\n \"webhook_url\": \"https://example.com/my-webhook\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.musicgpt.com/api/public/v2/MusicAI")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"A happy, upbeat song about summer\",\n \"music_style\": \"<string>\",\n \"negative_tags\": \"<string>\",\n \"lyrics\": \"<string>\",\n \"make_instrumental\": false,\n \"vocal_only\": false,\n \"title\": \"My Generated Track\",\n \"gender\": \"\",\n \"voice_id\": \"\",\n \"generate_album_cover\": false,\n \"lyrics_timestamps\": false,\n \"model\": \"v7\",\n \"webhook_url\": \"https://example.com/my-webhook\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.musicgpt.com/api/public/v2/MusicAI")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"A happy, upbeat song about summer\",\n \"music_style\": \"<string>\",\n \"negative_tags\": \"<string>\",\n \"lyrics\": \"<string>\",\n \"make_instrumental\": false,\n \"vocal_only\": false,\n \"title\": \"My Generated Track\",\n \"gender\": \"\",\n \"voice_id\": \"\",\n \"generate_album_cover\": false,\n \"lyrics_timestamps\": false,\n \"model\": \"v7\",\n \"webhook_url\": \"https://example.com/my-webhook\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Message published to queue",
"task_id": "50c04348-7077-5ffd-a407-55f031db20ef",
"eta": 154,
"conversion_id_1": "5a2c6385-e2e1-5531-a530-aab3ff040a3c",
"conversion_id_2": "e3c65d75-d1fd-549c-9e63-4b303a01cd23",
"is_flagged": false,
"reason": "",
"credit_estimate": 0.06
}{
"success": false,
"error_code": "INSUFFICIENT_CREDITS",
"message": ""
}{
"success": false,
"error_code": "UNPROCESSABLE_CONTENT",
"message": ""
}{
"success": false,
"error_code": "INTERNAL_SERVER_ERROR",
"message": ""
}Sample Conversion Request
Create music powered by AI using just a prompt, lyrics, or a defined music style.
curl --request POST \
--url https://api.musicgpt.com/api/public/v2/MusicAI \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "A happy, upbeat song about summer",
"music_style": "<string>",
"negative_tags": "<string>",
"lyrics": "<string>",
"make_instrumental": false,
"vocal_only": false,
"title": "My Generated Track",
"gender": "",
"voice_id": "",
"generate_album_cover": false,
"lyrics_timestamps": false,
"model": "v7",
"webhook_url": "https://example.com/my-webhook"
}
'import requests
url = "https://api.musicgpt.com/api/public/v2/MusicAI"
payload = {
"prompt": "A happy, upbeat song about summer",
"music_style": "<string>",
"negative_tags": "<string>",
"lyrics": "<string>",
"make_instrumental": False,
"vocal_only": False,
"title": "My Generated Track",
"gender": "",
"voice_id": "",
"generate_album_cover": False,
"lyrics_timestamps": False,
"model": "v7",
"webhook_url": "https://example.com/my-webhook"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: 'A happy, upbeat song about summer',
music_style: '<string>',
negative_tags: '<string>',
lyrics: '<string>',
make_instrumental: false,
vocal_only: false,
title: 'My Generated Track',
gender: '',
voice_id: '',
generate_album_cover: false,
lyrics_timestamps: false,
model: 'v7',
webhook_url: 'https://example.com/my-webhook'
})
};
fetch('https://api.musicgpt.com/api/public/v2/MusicAI', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.musicgpt.com/api/public/v2/MusicAI",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => 'A happy, upbeat song about summer',
'music_style' => '<string>',
'negative_tags' => '<string>',
'lyrics' => '<string>',
'make_instrumental' => false,
'vocal_only' => false,
'title' => 'My Generated Track',
'gender' => '',
'voice_id' => '',
'generate_album_cover' => false,
'lyrics_timestamps' => false,
'model' => 'v7',
'webhook_url' => 'https://example.com/my-webhook'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.musicgpt.com/api/public/v2/MusicAI"
payload := strings.NewReader("{\n \"prompt\": \"A happy, upbeat song about summer\",\n \"music_style\": \"<string>\",\n \"negative_tags\": \"<string>\",\n \"lyrics\": \"<string>\",\n \"make_instrumental\": false,\n \"vocal_only\": false,\n \"title\": \"My Generated Track\",\n \"gender\": \"\",\n \"voice_id\": \"\",\n \"generate_album_cover\": false,\n \"lyrics_timestamps\": false,\n \"model\": \"v7\",\n \"webhook_url\": \"https://example.com/my-webhook\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.musicgpt.com/api/public/v2/MusicAI")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"A happy, upbeat song about summer\",\n \"music_style\": \"<string>\",\n \"negative_tags\": \"<string>\",\n \"lyrics\": \"<string>\",\n \"make_instrumental\": false,\n \"vocal_only\": false,\n \"title\": \"My Generated Track\",\n \"gender\": \"\",\n \"voice_id\": \"\",\n \"generate_album_cover\": false,\n \"lyrics_timestamps\": false,\n \"model\": \"v7\",\n \"webhook_url\": \"https://example.com/my-webhook\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.musicgpt.com/api/public/v2/MusicAI")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"A happy, upbeat song about summer\",\n \"music_style\": \"<string>\",\n \"negative_tags\": \"<string>\",\n \"lyrics\": \"<string>\",\n \"make_instrumental\": false,\n \"vocal_only\": false,\n \"title\": \"My Generated Track\",\n \"gender\": \"\",\n \"voice_id\": \"\",\n \"generate_album_cover\": false,\n \"lyrics_timestamps\": false,\n \"model\": \"v7\",\n \"webhook_url\": \"https://example.com/my-webhook\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Message published to queue",
"task_id": "50c04348-7077-5ffd-a407-55f031db20ef",
"eta": 154,
"conversion_id_1": "5a2c6385-e2e1-5531-a530-aab3ff040a3c",
"conversion_id_2": "e3c65d75-d1fd-549c-9e63-4b303a01cd23",
"is_flagged": false,
"reason": "",
"credit_estimate": 0.06
}{
"success": false,
"error_code": "INSUFFICIENT_CREDITS",
"message": ""
}{
"success": false,
"error_code": "UNPROCESSABLE_CONTENT",
"message": ""
}{
"success": false,
"error_code": "INTERNAL_SERVER_ERROR",
"message": ""
}Authorizations
Body
A natural language prompt for music generation. Keep it under 1000 characters. Be clear and descriptive for better results.
"A happy, upbeat song about summer"
Style of music to generate (e.g., Rock, Pop)
Tags or themes you want to avoid in the song (e.g., sad, slow)
Custom lyrics for the generated music
Whether to make the music instrumental
Whether to generate only vocals of output audio
Title of the generated music track
"My Generated Track"
Gender of the voice model
""
Voice model to convert generated audio
""
Whether to generate an album cover for the generated audio
Whether to generate timestamps for the lyrics
Model version to use for generation
v6, v6-pro, v7, v7-pro "v7"
URL for callback upon completion
"https://example.com/my-webhook"