Build a recoverable music workflow with OmnAPI Producer: choose endpoints, separate lyrics from style, poll tasks, handle credits, and deliver audio to MV.
Request examples, task handling, and integration notes for developers using OmnAPI.
OmnAPI Producer generates artwork, lyrics, complete songs, and edits to existing Producer clips. Each creation request returns a task receipt. Your application stores that receipt, waits for a terminal status, and reads the completed resources before moving to the next stage.
This guide was checked against the public Producer contract on September 18, 2026. Examples illustrate request structure; they are not measured generation results. For Chinese guidance, see the Producer integration guide.
| Need | Endpoint suffix under /api/v1/producer |
Standard credits |
|---|---|---|
| Artwork from a text brief | /generate/image |
8 |
| A separate lyric draft | /generate/lyrics |
1 |
| A song from a musical brief | /generate/music/compose |
28 |
| A revision to a Producer clip | /generate/music/modify |
28 |
These are standard prices at review time. Account pricing can differ. Read the pricing catalog and use the create receipt's creditsRequired as the authoritative amount. Do not generate standalone artwork or lyrics simply because the endpoints exist: compose also accepts lyrics and artwork controls when your workflow needs them.
Credits are deducted when a paid task is created. Eligible failures or cancellations refund the appropriate charge; a partial result can retain a charge. There is no customer-side creditsReserved balance to maintain. Producer does not accept maxCredits, so enforce user budgets and batch limits in your own application. The quoted budget guard for MV and Vidu is a different contract.
The lyrics endpoint takes a prompt describing theme, language, and genre. Compose takes a required soundPrompt describing instrumentation and style, with optional approved lyrics.
export REQUEST_ID="$(uuidgen)"
curl --fail-with-body https://api.omnapi.com/api/v1/producer/generate/music/compose \
-H "x-api-key: $OMNAPI_KEY" \
-H "Idempotency-Key: $REQUEST_ID" \
-H "Content-Type: application/json" \
-d '{
"soundPrompt":"warm indie pop, jangly guitars, brushed drums",
"lyrics":"[Verse]\nThe lighthouse blinks once for you...",
"title":"Coastal Goodbye",
"length":120
}'
Set OMNAPI_KEY only on your server. Persist the request ID with the exact payload before submitting. A retry of that operation reuses its ID and payload; a new song receives a new ID. Running uuidgen again before retrying would create a different request.
Compose accepts a soundPrompt of up to 500 characters, lyrics of up to 3000 characters, and a requested length from 1 to 600 seconds. Read the actual duration from the result. If you want backing music without vocals, set instrumental: true. Otherwise, omitting lyrics allows the documented lyric-generation behavior. Usually omit model rather than guessing an identifier.
Save taskId, your own project ID, the idempotency key, and the intended operation together. Poll GET /api/v1/tasks/{taskId} with the same server-side API key.
| State | Application behavior |
|---|---|
| Non-terminal | Continue bounded polling or await a verified webhook |
COMPLETED |
Inspect resources[], select the required resource type, and review the result |
FAILED |
Show the documented failure and inspect the settled charge before offering a new attempt |
CANCELLED |
Stop waiting; confirm the task and credit state |
| Local polling deadline | Keep the task ID and allow resuming; this is not a server-side cancellation |
Do not assume that resources[0] is always the audio file. A song can return different resource types. Store accepted files in storage you control and retain their relationship to the task. Respect Retry-After on rate limits. Avoid unbounded rapid polling and automatic paid retries.
Producer and MV are separate paid stages. Wait for the Producer task to complete, select the audio resource, and submit it to MV using source.type: "audio". Producer clip IDs are not interchangeable with Suno clip IDs.
MV validates the audio URL and probes its duration. Lyrics help visual planning; they do not establish subtitle timing. Supply SRT for controlled subtitle timing, or configure the documented automatic extraction mode with its budget and fallback policy. Quote and preflight the exact request before creating an MV. The music video cost guide explains the workflow and its budget boundary.
The generic POST /api/v1/tasks endpoint remains supported for documented model keys such as producer/lyria-3-preview/generate-image. Its inputParameters envelope differs from the product endpoints. Product requests put shared settings in config; existing generic task clients should follow the task model instead of mixing the two shapes.
For production recovery, verify webhook signatures against the raw request body, make duplicate events harmless, and bind every task to an authorized application user. A valid task ID alone should not grant access to another customer's files.
Start with Producer Compose, the Producer quickstart, and current pricing. For source code with bounded polling, see the Python and TypeScript integration examples.
通过 Producer 产品端点生成封面、歌词和歌曲,理解积分扣费、幂等重试、任务状态以及如何将音频交给 MV。
Integrate OmnAPI Suno song generation with server-side keys, idempotent requests, early playback, terminal task handling, and MP3/WAV export.
Understand OmnAPI MV Fast and Studio costs, source validation, subtitles, quote expiry, maxCredits, and final MP4 delivery before creating a paid video.
通过 Producer 产品端点生成封面、歌词和歌曲,理解积分扣费、幂等重试、任务状态以及如何将音频交给 MV。
Integrate OmnAPI Suno song generation with server-side keys, idempotent requests, early playback, terminal task handling, and MP3/WAV export.
Generate editable lyrics from themes, moods, and genres with a lightweight API that fits writing, ideation, and song prototyping flows.
Create full songs from prompts with support for lyrics or instrumental workflows, making it easier to ship music generation inside your product.