cURL
curl --request POST \
--url https://api.ttapi.io/suno/v1/vox \
--header 'Content-Type: application/json' \
--header 'TT-API-KEY: <api-key>' \
--data '
{
"music_id": "<string>",
"vocal_start_s": 0,
"vocal_end_s": 10.15
}
'import requests
url = "https://api.ttapi.io/suno/v1/vox"
payload = {
"music_id": "<string>",
"vocal_start_s": 0,
"vocal_end_s": 10.15
}
headers = {
"TT-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'TT-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({music_id: '<string>', vocal_start_s: 0, vocal_end_s: 10.15})
};
fetch('https://api.ttapi.io/suno/v1/vox', 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.ttapi.io/suno/v1/vox",
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([
'music_id' => '<string>',
'vocal_start_s' => 0,
'vocal_end_s' => 10.15
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"TT-API-KEY: <api-key>"
],
]);
$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.ttapi.io/suno/v1/vox"
payload := strings.NewReader("{\n \"music_id\": \"<string>\",\n \"vocal_start_s\": 0,\n \"vocal_end_s\": 10.15\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("TT-API-KEY", "<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.ttapi.io/suno/v1/vox")
.header("TT-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"music_id\": \"<string>\",\n \"vocal_start_s\": 0,\n \"vocal_end_s\": 10.15\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ttapi.io/suno/v1/vox")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["TT-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"music_id\": \"<string>\",\n \"vocal_start_s\": 0,\n \"vocal_end_s\": 10.15\n}"
response = http.request(request)
puts response.read_body{
"status": "SUCCESS",
"message": "success",
"data": {
"id": "<string>",
"status": "<string>",
"source_clip_id": "<string>",
"vocal_start_s": 123,
"vocal_end_s": 123,
"wave_response": {}
}
}{
"status": "FAILED",
"message": "<string>",
"data": {}
}{
"status": "FAILED",
"message": "Wrong TT-API-KEY or email is not activated."
}Suno
Suno Vox Extraction API Documentation
deprecated
Use the Suno Vox extraction API to capture vocal segments and generate a vox_audio_id for singer-style reuse and persona-based workflows.
POST
/
suno
/
v1
/
vox
cURL
curl --request POST \
--url https://api.ttapi.io/suno/v1/vox \
--header 'Content-Type: application/json' \
--header 'TT-API-KEY: <api-key>' \
--data '
{
"music_id": "<string>",
"vocal_start_s": 0,
"vocal_end_s": 10.15
}
'import requests
url = "https://api.ttapi.io/suno/v1/vox"
payload = {
"music_id": "<string>",
"vocal_start_s": 0,
"vocal_end_s": 10.15
}
headers = {
"TT-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'TT-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({music_id: '<string>', vocal_start_s: 0, vocal_end_s: 10.15})
};
fetch('https://api.ttapi.io/suno/v1/vox', 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.ttapi.io/suno/v1/vox",
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([
'music_id' => '<string>',
'vocal_start_s' => 0,
'vocal_end_s' => 10.15
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"TT-API-KEY: <api-key>"
],
]);
$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.ttapi.io/suno/v1/vox"
payload := strings.NewReader("{\n \"music_id\": \"<string>\",\n \"vocal_start_s\": 0,\n \"vocal_end_s\": 10.15\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("TT-API-KEY", "<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.ttapi.io/suno/v1/vox")
.header("TT-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"music_id\": \"<string>\",\n \"vocal_start_s\": 0,\n \"vocal_end_s\": 10.15\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ttapi.io/suno/v1/vox")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["TT-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"music_id\": \"<string>\",\n \"vocal_start_s\": 0,\n \"vocal_end_s\": 10.15\n}"
response = http.request(request)
puts response.read_body{
"status": "SUCCESS",
"message": "success",
"data": {
"id": "<string>",
"status": "<string>",
"source_clip_id": "<string>",
"vocal_start_s": 123,
"vocal_end_s": 123,
"wave_response": {}
}
}{
"status": "FAILED",
"message": "<string>",
"data": {}
}{
"status": "FAILED",
"message": "Wrong TT-API-KEY or email is not activated."
}Deprecated: This API has been deprecated. Its functionality has been integrated into the Persona API, and no additional call is required.
Please use the Persona API instead.
Authorizations
You can obtain your API key from the TTAPI Dashboard.
Body
application/json
Last modified on August 9, 2026
⌘I