Active methods are shown with a method badge. Items grayed out in the navigation match the broader public API catalog but are not implemented in this deployment yet.
POSTGenerate Music
Generate Suno AI Music
/api/v1/generateCreates a queued music generation task and returns a taskId immediately.
Request
{
"customMode": true,
"instrumental": false,
"model": "v4.5-all",
"prompt": "Song lyrics",
"style": "rock, male vocal",
"title": "My Song",
"callBackUrl": "https://example.com/api/aibra/callback"
}
Response
{
"code": 200,
"msg": "success",
"data": {
"taskId": "song-1779890000000-a1b2c3d4"
}
}
- Use customMode for full control over lyrics, style, title, and model.
- Supported model labels include v5.5, v5, v4.5+, v4.5, v4.5-all, and v4.
- For custom voices, pass personaModel: "voice_persona" and the voiceId returned by the voice flow.
GETGenerate Music
Get Music Generation Details
/api/v1/generate/record-info?taskId={taskId}Polls a queued generation or replace-section task until it reaches a terminal status.
Response
{
"code": 200,
"msg": "success",
"data": {
"taskId": "song-1779890000000-a1b2c3d4",
"status": "SUCCESS",
"response": {
"sunoData": []
}
}
}
- Terminal statuses include SUCCESS, CREATE_TASK_FAILED, GENERATE_AUDIO_FAILED, and CALLBACK_EXCEPTION.
- The response includes snake_case media URLs plus camelCase aliases for existing integrations.
POSTGenerate Music
Replace Music Section
/api/v1/generate/replace-sectionCreates a queued task that replaces a selected section of an existing generated clip.
Request
{
"taskId": "song-1779890000000-a1b2c3d4",
"audioId": "clip-id",
"prompt": "Replacement lyrics or section prompt",
"tags": "rock, male vocal",
"title": "My Song",
"fullLyrics": "Full updated lyrics",
"infillStartS": 10.5,
"infillEndS": 20.75,
"callBackUrl": "https://example.com/api/aibra/callback"
}
Response
{
"code": 200,
"msg": "success",
"data": {
"taskId": "replace-1779890000000-a1b2c3d4"
}
}
- The replacement window must be between 6 and 60 seconds.
- Poll the same record-info endpoint used for music generation.
POSTGenerate Music
Generate Persona
/api/v1/generate/generate-personaCreates a reusable style persona from an existing generated clip.
Request
{
"taskId": "song-1779890000000-a1b2c3d4",
"audioId": "clip-id",
"name": "Electronic Pop Singer",
"description": "Modern electronic pop voice",
"vocalStart": 0,
"vocalEnd": 30,
"style": "Electronic Pop"
}
Response
{
"code": 200,
"msg": "success",
"data": {
"personaId": "persona-id",
"name": "Electronic Pop Singer"
}
}
- Use the returned personaId in the music generation endpoint.
- Persona creation is recorded in the operator statistics view.
POSTSuno Voice
Generate Verification Phrase
/api/v1/voice/validateStarts the custom voice validation flow from a source voice recording.
Request
{
"voiceUrl": "https://example.com/source-voice.mp3",
"vocalStart": 0,
"vocalEnd": 30,
"language": "en",
"callBackUrl": "https://example.com/api/aibra/callback"
}
Response
{
"code": 200,
"msg": "success",
"data": {
"taskId": "voice-validate-1779890000000-a1b2c3d4"
}
}
- The task finishes with validateInfo containing the phrase to record.
- Use validate-info to poll or receive the same information by callback.
GETSuno Voice
Get Verification Phrase
/api/v1/voice/validate-info?taskId={taskId}Returns the validation phrase task state and phrase details.
Response
{
"code": 200,
"msg": "success",
"data": {
"taskId": "voice-validate-1779890000000-a1b2c3d4",
"status": "wait_validating",
"validateInfo": {
"phrase": "..."
}
}
}
- Use the phrase from validateInfo to create the verification recording.
- Regenerated phrases are also read through this endpoint.
POSTSuno Voice
Regenerate Verification Phrase
/api/v1/voice/regenerateRequests a new validation phrase for an existing validation task.
Request
{
"taskId": "voice-validate-1779890000000-a1b2c3d4",
"callBackUrl": "https://example.com/api/aibra/callback"
}
Response
{
"code": 200,
"msg": "success",
"data": {
"taskId": "voice-validate-1779890000000-d4c3b2a1"
}
}
- The adapter accepts callBackUrl, callbackUrl, callback_url, and calBackUrl.
- Poll the new task id with validate-info.
POSTSuno Voice
Create Custom Voice
/api/v1/voice/generateVerifies the recorded phrase and creates a reusable custom voice.
Request
{
"taskId": "voice-validate-1779890000000-a1b2c3d4",
"verifyUrl": "https://example.com/verification.mp3",
"voiceName": "Studio Voice",
"singerSkillLevel": "professional",
"callBackUrl": "https://example.com/api/aibra/callback"
}
Response
{
"code": 200,
"msg": "success",
"data": {
"taskId": "voice-generate-1779890000000-a1b2c3d4"
}
}
- Use voice record-info to get the final voiceId.
- Use the voiceId as personaId with personaModel: "voice_persona" in music generation.
GETSuno Voice
Get Custom Voice Record
/api/v1/voice/record-info?taskId={taskId}Returns the custom voice generation task status and final voiceId.
Response
{
"code": 200,
"msg": "success",
"data": {
"taskId": "voice-generate-1779890000000-a1b2c3d4",
"status": "SUCCESS",
"voiceId": "voice-persona-id"
}
}
- The endpoint can be used after callback delivery as a source of truth.
- A completed voice can be checked with the availability endpoint.
POSTSuno Voice
Check Availability
/api/v1/voice/check-voiceChecks whether a custom voice task or voice id is available locally.
Request
{
"voiceId": "voice-persona-id"
}
Response
{
"code": 200,
"msg": "success",
"data": {
"available": true
}
}
- The request can use voiceId, voice_id, taskId, or task_id.
- Availability is true after a local custom voice task completes successfully.
POSTVocal Removal
Vocal & Instrument Stem Separation
/api/v1/vocal-removal/generateCreates a queued task that separates vocals and instrumental stems.
Request
{
"taskId": "song-1779890000000-a1b2c3d4",
"audioId": "clip-id",
"type": "separate_vocal",
"callBackUrl": "https://example.com/api/aibra/callback"
}
Response
{
"code": 200,
"msg": "success",
"data": {
"taskId": "vocal-removal-1779890000000-a1b2c3d4"
}
}
- The source taskId and audioId are kept for traceability.
- Completion returns direct vocalUrl and instrumentalUrl aliases.
GETVocal Removal
Get Audio Separation Details
/api/v1/vocal-removal/record-info?taskId={taskId}Returns the stem separation task status and output URLs.
Response
{
"code": 200,
"msg": "success",
"data": {
"taskId": "vocal-removal-1779890000000-a1b2c3d4",
"status": "SUCCESS",
"vocalUrl": "https://...",
"instrumentalUrl": "https://..."
}
}
- Use this endpoint to reconcile callback delivery failures.
- The response includes a vocal_removal_info object for clients that expect it.
GETAccount Management
Get Remaining Credits
/api/get_limitReturns the current account credit and usage limit information from the Suno account behind this deployment.
Response
{
"credits_left": 100,
"period": "monthly"
}
- This deployment exposes the limit check through the local compatibility service.
- The exact fields are passed through from the upstream Suno account response.