Check Voice Status
Check whether a previously created custom voice is deployed and available for use in music generation tasks. Returns real-time training status and the isAvailable confirmation flag with zero credit consumption.
Key Verification Features
Polling voice readiness consumes 0 credits, allowing frequent pre-flight verification without billing overhead.
Verify isAvailable: true before kicking off expensive generation tasks, preventing wasted credits on unready models.
Supports callBackUrl so your application can react immediately when a long-running custom voice finishes training.
Validation Rules & Usage
Task Identification
task_idis required and must correspond to a voice generation task submitted via/doc/suno-voice-generate.- If the task is still training,
isAvailablewill returnfalse. - Once training completes,
isAvailablereturnstrueand the voice model can be safely used.
Usage in Subsequent Endpoints
- After confirmation, pass the returned
voiceIdaspersona_idin/api/v1/createTask. - Ensure you set
persona_model: "voice_persona"when calling music generation endpoints.
Authentication & Headers
| Header | Requirement | Description |
|---|---|---|
| Authorization | required | Bearer YOUR_API_KEY Secret API Key obtained from your Suno API dashboard. |
| Content-Type | required | application/json Request payload format. |
Request Body Schema
3 fieldstask_idstringrequiredUnique task identifier from the custom voice generation request (/doc/suno-voice-generate) to check.
taskTypestringoptionalTask routing identifier. Explicitly set to "suno_voice_check_voice".
callBackUrlstringoptionalPublic HTTPS webhook URL to receive asynchronous status updates with the voice availability result.
When Callbacks Are Sent
The SongMesh API automatically triggers an HTTP POST request to your designated callBackUrl under these events:
- Voice availability query submitted
- Backend checks training and deployment state
- Voice availability result returned (code: 200, isAvailable: true/false)
- Task failed due to invalid task_id or expired voice record (code: 400, 404, 500)
Webhook Payload Format
{
"code": 200,
"msg": "success",
"data": {
"taskId": "check_task_1234567890abcdef",
"isAvailable": true,
"voiceId": "voice_4a5b6c7d8e9f0123456789ab",
"voice_name": "Aria - Pop Vocalist",
"status": "ready"
}
}Callback Payload Fields
| Field | Type | Description |
|---|---|---|
code | integer | Status code (200: Success, 400: Invalid task_id, 404: Voice record not found, 500: Server error). |
msg | string | Execution message ("success" or specific error reason). |
data.taskId | string | Unique task identifier corresponding to this check request. |
data.isAvailable | boolean | Indicates whether the custom voice model is ready to be used in music generation tasks (true/false). |
data.voiceId | string | The unique Voice ID associated with the checked task. |
data.status | string | Current voice deployment status (e.g., "ready", "training", "failed"). |
Receiver Implementation Example
// Next.js App Router Webhook Receiver (/api/webhook/suno/route.ts)
import { NextRequest, NextResponse } from 'next/server';
export async function POST(req: NextRequest) {
const payload = await req.json();
const { code, msg, data } = payload;
if (code === 200 && data) {
const { isAvailable, voiceId, voice_name } = data;
if (isAvailable) {
console.log(`Voice "${voice_name}" (${voiceId}) is ready for song generation!`);
// Update your database flag to enable this voice model in your UI...
} else {
console.log(`Voice "${voice_name}" is still training or unavailable.`);
}
} else {
console.error(`Voice check failed (${code}): ${msg}`);
}
return NextResponse.json({ received: true });
}Webhook Security Recommendation
Always verify incoming webhook payloads on your server. Respond with a 200 OK immediately after parsing the payload to prevent redundant delivery retries from the webhook dispatcher.
curl -X POST "https://api.sunoapi.top/api/v1/createTask" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"taskType": "suno_voice_check_voice",
"task_id": "voice_task_8f9a0b1c2d3e4f5a6b7c",
"callBackUrl": "https://api.yourdomain.com/webhook/suno"
}'{
"code": 200,
"msg": "success",
"data": {
"taskId": "check_task_1234567890abcdef"
}
}Check custom voice availability anytime
Always verify custom voice models before launching music generations. Free of charge.