Text-to-Music

Suno API for direct song generation workflows

Create Suno songs through simple prompts, custom lyrics, reusable public Voices, and managed upload + Extend/Cover with one OmnAPI task model.

View current credit pricing

Why teams evaluate this API

Built for teams migrating from Suno-specific integrations or adding direct Suno workflows alongside broader music generation APIs.

Best-fit teams

  • • Apps migrating existing Suno traffic
  • • Creator products that need direct Suno output
  • • Music platforms offering multiple generation modes

Core capabilities

  • • Simple prompt, custom lyrics, Voice, and managed upload + Extend/Cover modes
  • • Task-first response shape with an up-front credit debit and polling
  • • Model override support for teams that need a specific Suno generation family
  • • Shared auth, billing, usage tracking, and task history with the rest of OmnAPI

Typical implementation flow

  1. 1Choose a generation mode and collect prompt, lyrics, style, Voice, or upload source
  2. 2Submit `POST /api/v1/suno/songs` with your API key
  3. 3Poll the returned task until completion
  4. 4Store clip IDs for later Extend/Cover, M4A/MP3/WAV/Stems export, timeline, or Voice workflows

Inputs, outputs, and integration limits

Create Suno-compatible songs with a server-side request, then read the Generation for playable candidates and the Task for execution and billing. OmnAPI supplies this public integration; this page does not imply an official relationship with Suno.

Create
POST /api/v1/suno/songs with a persisted Idempotency-Key. Store taskId and generationId from the receipt.
Playback
Use clips[].playable and playback.url. Live audio is non-seekable; final audio is seekable. An audioUrl may still be null during live playback.
Outputs
Inspect candidates in the Generation. Export a selected clip through a separate MP3, M4A, WAV, or stems task when needed.
Cost boundary
Read the current model price from the catalog. Creation, exports, and stem separation are separate operations; the receipt confirms the charged request amount.

Before creating a paid task

  • A playable candidate does not mean that every candidate or the overall task has completed.
  • A local polling timeout does not cancel the server task. Resume the saved task instead of creating another paid song.
  • Keep the API key on your server and temporary playback URLs out of analytics and public logs.
Python and TypeScript song integrationSuno quickstart and operation contract

Contract reviewed by OmnAPI Team on . Check the linked reference and current catalog before submitting requests.

Example request

Set OMNAPI_KEY on your server and create REQUEST_ID once for this logical request. Reuse that ID on transport retries. A new generation can incur a charge; review current pricing first.

curl --fail-with-body --max-time 60 -X POST "https://api.omnapi.com/api/v1/suno/songs" \
  -H "x-api-key: $OMNAPI_KEY" \
  -H "Idempotency-Key: $REQUEST_ID" \
  -H "Content-Type: application/json" \
  --data '{
  "mode": "simple",
  "prompt": "Upbeat city pop, bright guitars, summer night drive",
  "model": "chirp-hawk"
}'

This example selects chirp-hawk explicitly. Save taskId and inspect /api/v1/suno/generations/{taskId} for individual clip playback states; the shared Task API provides execution and billing details.

See the authentication and task quickstart and complete request schema.

FAQ

Is this the same as the Producer Compose API?

No. Producer Compose is a higher-level composition surface. Suno Songs is the direct Suno workflow surface for teams that specifically want Suno generation modes.

Can existing Suno Cloud customers migrate here?

Yes, but the new public API is task-first and uses `/api/v1/suno/*`. Keep a compatibility facade during migration if existing clients cannot change request and response shapes immediately.