Suno Voice Get Custom Voice Records
curl --request GET \
--url https://apibox.erweima.ai/api/v1/voice/record-info \
--header 'Authorization: Bearer <token>'import requests
url = "https://apibox.erweima.ai/api/v1/voice/record-info"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://apibox.erweima.ai/api/v1/voice/record-info', 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://apibox.erweima.ai/api/v1/voice/record-info",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://apibox.erweima.ai/api/v1/voice/record-info"
req, _ := http.NewRequest("GET", url, nil)
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.get("https://apibox.erweima.ai/api/v1/voice/record-info")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://apibox.erweima.ai/api/v1/voice/record-info")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"code": 200,
"msg": "success",
"data": {
"taskId": "xxx_task_id_xxx",
"voiceId": "xxx",
"status": "wait_processing, processing_validate: waiting for validation code, processing_validate_fail: failed to obtain validation code, wait_validating: waiting for verification, success, fail",
"errorCode": 500,
"errorMessage": "xxxxx"
}
}Suno Voice
Suno Voice Get Custom Voice Record
Query the custom Suno Voice generation result and obtain the generated voiceId.
GET
/
api
/
v1
/
voice
/
record-info
Suno Voice Get Custom Voice Records
curl --request GET \
--url https://apibox.erweima.ai/api/v1/voice/record-info \
--header 'Authorization: Bearer <token>'import requests
url = "https://apibox.erweima.ai/api/v1/voice/record-info"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://apibox.erweima.ai/api/v1/voice/record-info', 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://apibox.erweima.ai/api/v1/voice/record-info",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://apibox.erweima.ai/api/v1/voice/record-info"
req, _ := http.NewRequest("GET", url, nil)
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.get("https://apibox.erweima.ai/api/v1/voice/record-info")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://apibox.erweima.ai/api/v1/voice/record-info")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"code": 200,
"msg": "success",
"data": {
"taskId": "xxx_task_id_xxx",
"voiceId": "xxx",
"status": "wait_processing, processing_validate: waiting for validation code, processing_validate_fail: failed to obtain validation code, wait_validating: waiting for verification, success, fail",
"errorCode": 500,
"errorMessage": "xxxxx"
}
}Usage Guide
- Use the
taskIdreturned by the custom voice generation API. - When
statusissuccess, the response contains the generatedvoiceId. - If the task fails, use
errorCodeanderrorMessageto decide whether to retry validation or generation.
Status Handling
| Status | Meaning |
|---|---|
wait_processing | Task is waiting to be processed |
processing_validate | Verification is being processed |
processing_validate_fail | Verification failed |
wait_validating | Waiting for validation to complete |
success | Voice is ready and voiceId can be used |
fail | Task failed |
Related Endpoint
Check Voice Availability
Confirm whether the generated custom voice is available for supported Suno generation APIs
Authorizations
API Authentication
All endpoints require authentication using Bearer Token.
Get API Key
- Visit the API Key Management Page to obtain your API Key
Usage
Add to request headers:
Authorization: Bearer YOUR_API_KEY
Note:
- Keep your API Key secure and do not share it with others
- If you suspect your API Key has been compromised, reset it immediately from the management page
Query Parameters
任务id
