curl --request PUT \
--url https://api.soundpiece.co/v1/create.remix_instrumental \
--header 'Content-Type: application/json' \
--data '
{
"idempotency_key": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": {
"url": "<string>"
},
"callback_url": "<string>",
"n_variations": 1,
"prompt": "<string>"
}
'import requests
url = "https://api.soundpiece.co/v1/create.remix_instrumental"
payload = {
"idempotency_key": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": { "url": "<string>" },
"callback_url": "<string>",
"n_variations": 1,
"prompt": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
idempotency_key: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
source: {url: '<string>'},
callback_url: '<string>',
n_variations: 1,
prompt: '<string>'
})
};
fetch('https://api.soundpiece.co/v1/create.remix_instrumental', 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.soundpiece.co/v1/create.remix_instrumental",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'idempotency_key' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'source' => [
'url' => '<string>'
],
'callback_url' => '<string>',
'n_variations' => 1,
'prompt' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.soundpiece.co/v1/create.remix_instrumental"
payload := strings.NewReader("{\n \"idempotency_key\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"source\": {\n \"url\": \"<string>\"\n },\n \"callback_url\": \"<string>\",\n \"n_variations\": 1,\n \"prompt\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
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.put("https://api.soundpiece.co/v1/create.remix_instrumental")
.header("Content-Type", "application/json")
.body("{\n \"idempotency_key\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"source\": {\n \"url\": \"<string>\"\n },\n \"callback_url\": \"<string>\",\n \"n_variations\": 1,\n \"prompt\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.soundpiece.co/v1/create.remix_instrumental")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"idempotency_key\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"source\": {\n \"url\": \"<string>\"\n },\n \"callback_url\": \"<string>\",\n \"n_variations\": 1,\n \"prompt\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"remixed_instrumental": {
"id": "<string>",
"status": "processing",
"created_at": "2023-11-07T05:31:56Z",
"idempotency_key": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"n_variations": 2,
"prompt": "<string>",
"outputs": [
{
"url": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"duration": 123
}
],
"error": {
"code": "internal_error",
"message": "<string>"
}
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}create.remix_instrumental
Submit an instrumental remix request.
Returns immediately with status: processing. Use the matching GET to
poll for completion, or supply a callback_url to receive a webhook.
Takes an existing instrumental track (no vocals) and produces new
instrumental variations of it. By default the source itself guides the
output. Optionally supply a prompt to steer the result toward a described
style or mood — it’s echoed back on the operation. For remixing a track
that contains vocals, use create.remix_song instead. Set n_variations
(1-3) for how many variations to produce — each appears as a separate
entry in outputs when the operation is ready.
Credits cost: 3 per variation (so n_variations: 3 costs 9).
Insufficient credits returns 402 — see errors.
curl --request PUT \
--url https://api.soundpiece.co/v1/create.remix_instrumental \
--header 'Content-Type: application/json' \
--data '
{
"idempotency_key": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": {
"url": "<string>"
},
"callback_url": "<string>",
"n_variations": 1,
"prompt": "<string>"
}
'import requests
url = "https://api.soundpiece.co/v1/create.remix_instrumental"
payload = {
"idempotency_key": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": { "url": "<string>" },
"callback_url": "<string>",
"n_variations": 1,
"prompt": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
idempotency_key: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
source: {url: '<string>'},
callback_url: '<string>',
n_variations: 1,
prompt: '<string>'
})
};
fetch('https://api.soundpiece.co/v1/create.remix_instrumental', 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.soundpiece.co/v1/create.remix_instrumental",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'idempotency_key' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'source' => [
'url' => '<string>'
],
'callback_url' => '<string>',
'n_variations' => 1,
'prompt' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.soundpiece.co/v1/create.remix_instrumental"
payload := strings.NewReader("{\n \"idempotency_key\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"source\": {\n \"url\": \"<string>\"\n },\n \"callback_url\": \"<string>\",\n \"n_variations\": 1,\n \"prompt\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
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.put("https://api.soundpiece.co/v1/create.remix_instrumental")
.header("Content-Type", "application/json")
.body("{\n \"idempotency_key\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"source\": {\n \"url\": \"<string>\"\n },\n \"callback_url\": \"<string>\",\n \"n_variations\": 1,\n \"prompt\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.soundpiece.co/v1/create.remix_instrumental")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"idempotency_key\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"source\": {\n \"url\": \"<string>\"\n },\n \"callback_url\": \"<string>\",\n \"n_variations\": 1,\n \"prompt\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"remixed_instrumental": {
"id": "<string>",
"status": "processing",
"created_at": "2023-11-07T05:31:56Z",
"idempotency_key": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"n_variations": 2,
"prompt": "<string>",
"outputs": [
{
"url": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"duration": 123
}
],
"error": {
"code": "internal_error",
"message": "<string>"
}
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Body
A unique UUID you choose. Send the same key to retry safely; we'll return the original response without doing the work again.
The instrumental track (no vocals) to remix. The audio must be a WAV, MP3, or FLAC file between 1 second and 5 minutes long, and at most 50 MB.
Show child attributes
Show child attributes
Optional HTTPS URL we'll POST the final response to when the operation reaches ready or failed. Polling remains the canonical source of truth; webhooks are a best-effort latency optimisation.
1 - 2048How many output variations to produce (1-3).
1 <= x <= 3Optional description of the musical style, mood and instrumentation to steer the remix toward — a short phrase or sentence, not comma-separated tags. The output stays instrumental, so vocal or lyric direction has no effect. Examples: A hopeful, driving rock anthem, A slow, emotional solo piano piece around 80 BPM, Dreamy, melancholic synthwave, mid-tempo, Powerful, uplifting orchestral.
1 - 1024Response
Successful Response
Show child attributes
Show child attributes
