Switch from sunoapi.org / Kie.ai to Tunova in 5 minutes
Updated 2026-07-10
sunoapi.org and Kie.ai expose the same Suno API surface — same endpoint shape, same customMode/callBackUrl fields, same taskId flow — so this one guide covers a migration from either. The move to Tunova is deliberately small: both are async APIs, and the whole core is two calls. What changes is the billing contract — Tunova bills only when a render actually delivers; a failed generation auto-refunds instead of quietly consuming credits.
Why developers switch
- Billing you can audit. Per-attempt credits make failures invisible line items. On Tunova every charge and every auto-refund is its own ledger entry — the pricing is the guarantee. (As of July 2026 Kie.ai’s Trustpilot sits at 2.5/5 on a small sample of ~10 reviews, several from paying customers reporting expired credits and refused refunds — small-n, dated, verify yourself; but with auto-refunds the question doesn’t arise.)
- Verified webhooks.
callBackUrlis a plain POST anyone can forge; Tunova signs every callback (HMAC-SHA256 over<timestamp>.<body>) — verification recipe here. - Agent-native. A hosted MCP server, OpenAPI 3.1, and
llms.txt— an AI agent adopts Tunova in one tool call with the same key. - Suno-only continuity. Generalist hubs can (and do — PiAPI did) drop Suno as a product decision. Tunova can’t: it’s the only product.
Endpoint mapping
| sunoapi.org / Kie.ai | Tunova |
|---|---|
Authorization: Bearer <key> | X-API-Key: sk_live_… |
POST /api/v1/generate with customMode: false — {prompt} | POST /api/generate — {prompt, model?, make_instrumental?, callback_url?} → 202 {job_id} |
POST /api/v1/generate with customMode: true — {prompt: lyrics, style, title} | POST /api/custom_generate — {prompt: lyrics, tags, title, …} |
instrumental: true | make_instrumental: true |
model: "V5_5" | model: "v5.5" |
callBackUrl (unsigned POST) | callback_url → HMAC-signed webhook (X-Webhook-Signature) |
GET /api/v1/generate/record-info?taskId=… | GET /api/jobs/{id} → {status, clips:[{audio_url, duration}]} |
| lyrics endpoint | POST /api/lyrics — {prompt} (2 tokens) |
| credits endpoint | GET /api/me → {token_balance, song_cost, lyrics_cost} |
| extend / stems / covers / vocal-removal | not supported yet — keep your current provider for those calls; route plain generation through Tunova |
Before / after
Retried submits are safe too: send an Idempotency-Key and a network flake returns the same job instead of a double charge. Prefer a higher-level call? The zero-dependency Python & Node SDKs wrap submit → wait → audio URL (and verify the webhook) in one function.
Port it in one sitting
Every account starts with 50 free tokens, no card (≈ 5 songs) — port the two calls, smoke-test, then decide. Top-ups are crypto; tokens never expire. Models v5.5. See the quickstart (cURL / Python / Node / MCP), or grab a key.
FAQ
Is sunoapi.org the same as Kie.ai?
They expose the same API surface — the same POST /api/v1/generate endpoint shape, the same customMode/callBackUrl fields, the same taskId flow — and third-party integrations (like the official Make.com Suno module) authenticate against sunoapi.org while carrying Kie branding. Practically, one migration guide covers both.
Is sunoapi.org safe to use?
It's an established service with real volume, and many integrations run on it. At the same time, developer communities keep asking exactly this question — an n8n forum thread on it closed unresolved — and its Trustpilot (2.5/5 as of July 2026, small sample of ~10 reviews) includes paying customers reporting expired credits and refused refunds. Whatever provider you choose, prefer one with billed-on-success pricing and a public status page, so you don't have to take reliability on faith.
How hard is the migration to Tunova?
Small. Both APIs are async task/job APIs: you swap the base URL, change Authorization: Bearer to an X-API-Key header, map generate → /api/generate (or /api/custom_generate for custom-mode lyrics), and poll /api/jobs/{id} instead of record-info?taskId=. Most integrations move in well under an hour; the two-call core moves in 5 minutes.
What's different about billing?
Credit APIs charge per generation attempt. Tunova bills in tokens on success only — a failed render is automatically refunded to your balance as its own ledger line. Batch pipelines feel this most: one failure out of twenty no longer silently taxes the run.
Does Tunova support extend, stems, covers, or vocal removal?
Not yet — Tunova covers the core generate paths (prompt mode, custom-lyrics mode, standalone lyrics). If you depend on audio extension, stem separation, or covers, keep your current provider for those calls and route plain generation through Tunova — mixing providers per-endpoint is normal.
Do the webhooks work the same way?
Same idea, better verification: instead of a plain callBackUrl POST, Tunova signs every webhook with HMAC-SHA256 over <timestamp>.<body> (X-Webhook-Signature), so your handler can reject forgeries. Or skip callbacks entirely and poll GET /api/jobs/{id}.
Related guides
- Tunova vs Kie.ai — the full specialist-vs-generalist comparison.
- The best Suno API in 2026 — the wider field, honestly ranked.
- Reliability & effective cost — the framework behind “price ÷ success rate.”
- Migrating from PiAPI & from self-hosted gcui-art/suno-api.
Tunova is an independent service, not affiliated with or endorsed by Suno, sunoapi.org, or Kie.ai. Details about other providers reflect their public pages as of July 2026 and can change — verify before deciding. Trademarks belong to their respective owners.