Skip to main content

Tiny zero-dependency Python client for the Tunova Suno music API (v5.5) — async, billed only on success.

Project description

Tunova SDK

Tiny, zero-dependency clients + MCP manifest for the Tunova music API — generate music with Suno (v5.5) over a simple REST or MCP interface. Generation is async and billed only on success: a failed render refunds itself.

  • Pythonpython/tunova.py — stdlib only, Python 3.8+.
  • Node / TypeScriptnode/tunova.ts — Node 18+ (fetch built in).
  • MCPserver.json — hosted Streamable-HTTP server at https://api.tunova.ai/mcp.

Get a key (50 free tokens, no card) at https://tunova.ai. Full reference: https://api.tunova.ai/docs · live status: https://tunova.ai/status.

Tunova is an independent service, not affiliated with or endorsed by Suno. Tracks come from paid Suno plans; review Suno's terms for your use case.

Python

pip install tunova
from tunova import Tunova

t = Tunova("sk_live_…")
job = t.generate("warm lo-fi piano to study to", model="v5.5")
print(job["clips"][0]["audio_url"] if job["status"] == "complete" else job["error"])

Prefer no install? python/tunova.py is stdlib-only — vendor the single file and import it.

Node / TypeScript

npm i tunova
import { Tunova } from "tunova";

const t = new Tunova(process.env.TUNOVA_API_KEY!);
const job = await t.generate("warm lo-fi piano to study to", { model: "v5.5" });
console.log(job.status === "complete" ? job.clips[0]?.audio_url : job.error);

Both generate() calls submit a job and poll until the track is delivered. Prefer fire-and-forget? Use submit() with a callback_url and take an HMAC-signed webhook instead.

MCP — give an AI agent the power to make music

claude mcp add --transport http tunova https://api.tunova.ai/mcp \
  --header "X-API-Key: sk_live_…"

Tools: generate_song · wait_for_song · check_song. Same API key, same billed-on-success rule.

Verifying webhooks

If you pass callback_url, Tunova POSTs the terminal job with X-Webhook-Signature: sha256=<hmac> over <X-Webhook-Timestamp>.<rawBody>, keyed with your whsec_… secret (view/rotate it on the dashboard's API-keys page). Verify against the raw body before parsing — both SDKs ship a verifier (Tunova.verify_webhook / verifyWebhook).

License

MIT — see LICENSE. The SDK code is yours to use freely; your use of the Tunova API is governed by the terms.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tunova-0.1.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tunova-0.1.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file tunova-0.1.0.tar.gz.

File metadata

  • Download URL: tunova-0.1.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for tunova-0.1.0.tar.gz
Algorithm Hash digest
SHA256 12279a8ef4aa328b8b73c61bce331aef09f45ce3be13fe2865f2bb8a58b8c129
MD5 84430c373a06d5be9a829ca381b0ed38
BLAKE2b-256 5945f787f1e20966584a074b3fabbef8b5c7798a9a33f38de1d36e4fffdc5002

See more details on using hashes here.

File details

Details for the file tunova-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: tunova-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for tunova-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2fb2b0b444e365b39a2c1de6113b8ecbe3d6dc5d1db369f768eddf6faf1d387b
MD5 6ab1c42fcd8d5a761cef128e9baf88bb
BLAKE2b-256 151c2670343f61b3743777db804ae768d40ad86113047ed0d808f4fe255e8938

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page