curl --request POST \
--url https://api.deapi.ai/api/v2/audio/music \
--header 'Accept: <accept>' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'caption=upbeat electronic dance music with energetic synths' \
--form model=ACE-Step-v1.5-turbo \
--form 'lyrics=[Instrumental]' \
--form duration=30 \
--form inference_steps=8 \
--form guidance_scale=7 \
--form seed=-1 \
--form format=mp3 \
--form bpm=120 \
--form 'keyscale=C major' \
--form timesignature=4 \
--form vocal_language=en \
--form 'reference_audio=<string>' \
--form webhook_url=https://your-server.com/webhooks/deapi \
--form reference_audio.0='@example-file' \
--form reference_audio.1='@example-file'import requests
url = "https://api.deapi.ai/api/v2/audio/music"
files = {
"reference_audio.0": ("example-file", open("example-file", "rb")),
"reference_audio.1": ("example-file", open("example-file", "rb"))
}
payload = {
"caption": "upbeat electronic dance music with energetic synths",
"model": "ACE-Step-v1.5-turbo",
"lyrics": "[Instrumental]",
"duration": "30",
"inference_steps": "8",
"guidance_scale": "7",
"seed": "-1",
"format": "mp3",
"bpm": "120",
"keyscale": "C major",
"timesignature": "4",
"vocal_language": "en",
"reference_audio": "<string>",
"webhook_url": "https://your-server.com/webhooks/deapi"
}
headers = {
"Accept": "<accept>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('caption', 'upbeat electronic dance music with energetic synths');
form.append('model', 'ACE-Step-v1.5-turbo');
form.append('lyrics', '[Instrumental]');
form.append('duration', '30');
form.append('inference_steps', '8');
form.append('guidance_scale', '7');
form.append('seed', '-1');
form.append('format', 'mp3');
form.append('bpm', '120');
form.append('keyscale', 'C major');
form.append('timesignature', '4');
form.append('vocal_language', 'en');
form.append('reference_audio', '<string>');
form.append('webhook_url', 'https://your-server.com/webhooks/deapi');
form.append('reference_audio.0', '{
"fileName": "example-file"
}');
form.append('reference_audio.1', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {Accept: '<accept>', Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api.deapi.ai/api/v2/audio/music', 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.deapi.ai/api/v2/audio/music",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\nupbeat electronic dance music with energetic synths\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nACE-Step-v1.5-turbo\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"lyrics\"\r\n\r\n[Instrumental]\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"duration\"\r\n\r\n30\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"inference_steps\"\r\n\r\n8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance_scale\"\r\n\r\n7\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n-1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"format\"\r\n\r\nmp3\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bpm\"\r\n\r\n120\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"keyscale\"\r\n\r\nC major\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timesignature\"\r\n\r\n4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"vocal_language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Accept: <accept>",
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$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.deapi.ai/api/v2/audio/music"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\nupbeat electronic dance music with energetic synths\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nACE-Step-v1.5-turbo\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"lyrics\"\r\n\r\n[Instrumental]\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"duration\"\r\n\r\n30\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"inference_steps\"\r\n\r\n8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance_scale\"\r\n\r\n7\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n-1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"format\"\r\n\r\nmp3\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bpm\"\r\n\r\n120\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"keyscale\"\r\n\r\nC major\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timesignature\"\r\n\r\n4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"vocal_language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Accept", "<accept>")
req.Header.Add("Authorization", "Bearer <token>")
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.deapi.ai/api/v2/audio/music")
.header("Accept", "<accept>")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\nupbeat electronic dance music with energetic synths\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nACE-Step-v1.5-turbo\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"lyrics\"\r\n\r\n[Instrumental]\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"duration\"\r\n\r\n30\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"inference_steps\"\r\n\r\n8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance_scale\"\r\n\r\n7\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n-1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"format\"\r\n\r\nmp3\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bpm\"\r\n\r\n120\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"keyscale\"\r\n\r\nC major\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timesignature\"\r\n\r\n4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"vocal_language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deapi.ai/api/v2/audio/music")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Accept"] = '<accept>'
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\nupbeat electronic dance music with energetic synths\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nACE-Step-v1.5-turbo\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"lyrics\"\r\n\r\n[Instrumental]\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"duration\"\r\n\r\n30\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"inference_steps\"\r\n\r\n8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance_scale\"\r\n\r\n7\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n-1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"format\"\r\n\r\nmp3\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bpm\"\r\n\r\n120\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"keyscale\"\r\n\r\nC major\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timesignature\"\r\n\r\n4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"vocal_language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"data": {
"request_id": "c08a339c-73e5-4d67-a4d5-231302fbff9a"
}
}{
"data": {},
"message": "<string>",
"errors": [
"<unknown>"
],
"statusCode": 123
}{
"data": {},
"message": "<string>",
"errors": [
"<unknown>"
],
"statusCode": 123
}{
"message": "The selected model does not support Text To Image.",
"errors": {
"model": [
"The selected model does not support Text To Image."
]
}
}{
"message": "Too Many Attempts."
}Text-to-Music
Generate music from a text prompt.
curl --request POST \
--url https://api.deapi.ai/api/v2/audio/music \
--header 'Accept: <accept>' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'caption=upbeat electronic dance music with energetic synths' \
--form model=ACE-Step-v1.5-turbo \
--form 'lyrics=[Instrumental]' \
--form duration=30 \
--form inference_steps=8 \
--form guidance_scale=7 \
--form seed=-1 \
--form format=mp3 \
--form bpm=120 \
--form 'keyscale=C major' \
--form timesignature=4 \
--form vocal_language=en \
--form 'reference_audio=<string>' \
--form webhook_url=https://your-server.com/webhooks/deapi \
--form reference_audio.0='@example-file' \
--form reference_audio.1='@example-file'import requests
url = "https://api.deapi.ai/api/v2/audio/music"
files = {
"reference_audio.0": ("example-file", open("example-file", "rb")),
"reference_audio.1": ("example-file", open("example-file", "rb"))
}
payload = {
"caption": "upbeat electronic dance music with energetic synths",
"model": "ACE-Step-v1.5-turbo",
"lyrics": "[Instrumental]",
"duration": "30",
"inference_steps": "8",
"guidance_scale": "7",
"seed": "-1",
"format": "mp3",
"bpm": "120",
"keyscale": "C major",
"timesignature": "4",
"vocal_language": "en",
"reference_audio": "<string>",
"webhook_url": "https://your-server.com/webhooks/deapi"
}
headers = {
"Accept": "<accept>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('caption', 'upbeat electronic dance music with energetic synths');
form.append('model', 'ACE-Step-v1.5-turbo');
form.append('lyrics', '[Instrumental]');
form.append('duration', '30');
form.append('inference_steps', '8');
form.append('guidance_scale', '7');
form.append('seed', '-1');
form.append('format', 'mp3');
form.append('bpm', '120');
form.append('keyscale', 'C major');
form.append('timesignature', '4');
form.append('vocal_language', 'en');
form.append('reference_audio', '<string>');
form.append('webhook_url', 'https://your-server.com/webhooks/deapi');
form.append('reference_audio.0', '{
"fileName": "example-file"
}');
form.append('reference_audio.1', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {Accept: '<accept>', Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api.deapi.ai/api/v2/audio/music', 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.deapi.ai/api/v2/audio/music",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\nupbeat electronic dance music with energetic synths\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nACE-Step-v1.5-turbo\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"lyrics\"\r\n\r\n[Instrumental]\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"duration\"\r\n\r\n30\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"inference_steps\"\r\n\r\n8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance_scale\"\r\n\r\n7\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n-1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"format\"\r\n\r\nmp3\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bpm\"\r\n\r\n120\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"keyscale\"\r\n\r\nC major\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timesignature\"\r\n\r\n4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"vocal_language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Accept: <accept>",
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$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.deapi.ai/api/v2/audio/music"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\nupbeat electronic dance music with energetic synths\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nACE-Step-v1.5-turbo\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"lyrics\"\r\n\r\n[Instrumental]\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"duration\"\r\n\r\n30\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"inference_steps\"\r\n\r\n8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance_scale\"\r\n\r\n7\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n-1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"format\"\r\n\r\nmp3\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bpm\"\r\n\r\n120\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"keyscale\"\r\n\r\nC major\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timesignature\"\r\n\r\n4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"vocal_language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Accept", "<accept>")
req.Header.Add("Authorization", "Bearer <token>")
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.deapi.ai/api/v2/audio/music")
.header("Accept", "<accept>")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\nupbeat electronic dance music with energetic synths\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nACE-Step-v1.5-turbo\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"lyrics\"\r\n\r\n[Instrumental]\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"duration\"\r\n\r\n30\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"inference_steps\"\r\n\r\n8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance_scale\"\r\n\r\n7\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n-1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"format\"\r\n\r\nmp3\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bpm\"\r\n\r\n120\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"keyscale\"\r\n\r\nC major\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timesignature\"\r\n\r\n4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"vocal_language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deapi.ai/api/v2/audio/music")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Accept"] = '<accept>'
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\nupbeat electronic dance music with energetic synths\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nACE-Step-v1.5-turbo\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"lyrics\"\r\n\r\n[Instrumental]\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"duration\"\r\n\r\n30\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"inference_steps\"\r\n\r\n8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"guidance_scale\"\r\n\r\n7\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"seed\"\r\n\r\n-1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"format\"\r\n\r\nmp3\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bpm\"\r\n\r\n120\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"keyscale\"\r\n\r\nC major\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timesignature\"\r\n\r\n4\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"vocal_language\"\r\n\r\nen\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"webhook_url\"\r\n\r\nhttps://your-server.com/webhooks/deapi\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reference_audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"data": {
"request_id": "c08a339c-73e5-4d67-a4d5-231302fbff9a"
}
}{
"data": {},
"message": "<string>",
"errors": [
"<unknown>"
],
"statusCode": 123
}{
"data": {},
"message": "<string>",
"errors": [
"<unknown>"
],
"statusCode": 123
}{
"message": "The selected model does not support Text To Image.",
"errors": {
"model": [
"The selected model does not support Text To Image."
]
}
}{
"message": "Too Many Attempts."
}request_id for status polling.
slug and check its parameter limits.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
application/json Body
Music generation parameters
Text description of the music to generate
"upbeat electronic dance music with energetic synths"
The model to use for music generation. Available models can be retrieved via the GET /api/v2/models endpoint.
"ACE-Step-v1.5-turbo"
Lyrics for the music. Use "[Instrumental]" for instrumental tracks without vocals.
"[Instrumental]"
Duration in seconds (10-600)
30
Number of diffusion inference steps (1-100). Use 8 for turbo models, 32+ for base models.
8
Classifier-free guidance scale (0-20)
7
Random seed. Use -1 for random.
-1
Audio output format
"mp3"
Beats per minute (30-300)
120
Musical key/scale (e.g. "C major", "F# minor")
"C major"
Time signature. Must be 2, 3, 4, or 6.
4
Language code for vocals (e.g. "en", "es", "fr")
"en"
Optional reference audio file for style transfer. Supported formats: mp3, ogg, m4a. Max size configurable (default 10MB). Duration must be within model-specific limits.
Optional HTTPS URL to receive webhook notifications for job status changes (processing, completed, failed). Must be HTTPS. Max 2048 characters.
2048"https://your-server.com/webhooks/deapi"
Response
ID of the inference request.
Information from success endpoint
Show child attributes
Show child attributes
Was this page helpful?