Short answer:
401points to a missing, malformed or invalid API key.402, or a 403 response containinginsufficient account balance, requires a balance check before retrying. Other 403 responses usually indicate a disabled key or restricted account. Fix the cause instead of sending the same request in a loop.
Separate the errors first
| Status / message | Meaning | Correct action |
|---|---|---|
| 401 | Missing, malformed, expired or invalid key | Send Authorization: Bearer YOUR_API_KEY; create a valid key if needed |
| 402 | Insufficient balance | Top up or use a key with available funds |
403 + insufficient account balance | Balance or quota precheck failed | Check the balance endpoint before retrying |
| 403 without balance wording | Disabled key, account or permission issue | Inspect console state |
| 429 | Rate limit | Honor retry_after and reduce concurrency |
Check balance before topping up
curl "https://www.suno-api.io/api/user/balance" \
-H "Authorization: Bearer $SUNO_API_KEY"Read data.balance.formatted_effective_amount. This endpoint is free and does not start or bill a generation.
{
"success": true,
"data": {
"balance": {
"effective_amount": 8.4,
"amount_unit": "yuan",
"formatted_effective_amount": "8.40 yuan"
}
}
}Diagnostic order
- Read the HTTP status.
- Read
error.codeanderror.message. - If the message mentions insufficient balance, query the balance.
- If authentication failed, fix the key header or create a new key.
- If the account or key is disabled, inspect the console.
- Record time, key name, request ID and response for support.
Retry matrix
| Case | Retry unchanged? | Action |
|---|---|---|
| 401 / 403 | No | Fix authentication or account state |
| 402 / insufficient balance | No | Top up first |
| 429 | After delay | Read retry_after and lower concurrency |
| 5xx | After backoff | Reuse the same idempotency key |
| Create timeout | Check first | Inspect song or request history before resubmitting |
Refunds and task state
Balance failures normally happen before a song task exists. A generated task that explicitly fails follows the platform refund policy. Wait for task and balance state to settle; if they still disagree, provide the account, key name, request time and task ID to support.
FAQ
Does 403 always mean low balance?
No. Use the response text. insufficient account balance points to funding; other 403 cases require account-state checks.
Can I retry the same request after an auth error?
No. Fix the underlying key, balance or account issue first.
Are failed generations refunded?
Failed generations follow the platform billing and refund rules. Verify the final task and balance records if needed.
Read the balance API, full error guide, and task-field reference.
¥0.6 per generation, 2 tracks, unlimited downloads
Runs on the Suno V6 engine. Download MP3 or WAV as often as you like. Signing up needs an email address, not a phone number.


