GET /api/v1/suno/assets | List retained Suno assets Description and searchable fieldsTenant-owned new-policy deliveries remain discoverable independently of Task history. Historical permanent assets remain on their original access paths. - query.cursor — Opaque pagination cursor returned as nextCursor; omit it on the first page.
- query.limit — Maximum number of items to return.
- response.items
- response.items[].byteLength
- response.items[].clipId
- response.items[].deliveredAt
- response.items[].format
- response.items[].id
- response.items[].policy
- response.items[].retainedUntil
- response.items[].status
- response.nextCursor
|
GET /api/v1/suno/assets/{id}/download | Get a retained Suno asset download Description and searchable fieldsReturns a private URL valid for at most one hour and never beyond retention. Expired deliveries return 410; other users' assets return 404. Lyrics downloads are gzip-compressed JSON snapshots. - path.id — Resource identifier returned by the corresponding create operation.
- response.byteLength
- response.clipId
- response.deliveredAt
- response.format
- response.id
- response.policy
- response.retainedUntil
- response.status
- response.url
- response.urlExpiresAt
|
GET /api/v1/suno/availability | Get Suno availability Description and searchable fieldsAdvisory delivery health for Suno operations, including whether advanced operations are currently available. - response.checkedAt
- response.checks
- response.checks[].message
- response.checks[].name
- response.checks[].status
- response.guidance
- response.message
- response.retryAfterSec
- response.status
- response.subscriptionOperationsAvailable — Whether advanced Suno operations are currently available.
|
GET /api/v1/suno/clips | Query multiple clips Description and searchable fieldsFree direct batch read with the same per-clip access projection as the detail endpoint. Preserves request order, reports definitively absent IDs in missingClipIds, and reserves errors for transient per-ID read failures. No Task is created and no credits are charged. - query.clipIds —
- response.errors
- response.errors[].clipId
- response.errors[].code
- response.errors[].message
- response.errors[].retryable
- response.items
- response.items[].accessLevel
- response.items[].audioUrl
- response.items[].clipId — Suno clip identifier (`mid`); do not substitute an OmnAPI resource identifier.
- response.items[].createdAt
- response.items[].deliveryStatus
- response.items[].duration
- response.items[].errorCode
- response.items[].errorMessage
- response.items[].imageUrl
- response.items[].index
- response.items[].instrumental
- response.items[].majorModelVersion
- response.items[].model
- response.items[].modelCode
- response.items[].playable
- response.items[].playback
- response.items[].playback.delivery
- response.items[].playback.expiresAt
- response.items[].playback.mimeType
- response.items[].playback.retryAfterMs
- response.items[].playback.seekable
- response.items[].playback.sessionCreateUrl
- response.items[].playback.state
- response.items[].playback.url
- response.items[].prompt
- response.items[].providerModelName
- response.items[].role
- response.items[].tags
- response.items[].title
- response.items[].updatedAt
- response.items[].videoUrl
- response.missingClipIds
|
GET /api/v1/suno/clips/{clipId} | Get clip detail Description and searchable fieldsFree direct resource read. `clipId` is the external Suno ID (legacy `mid`), never a TaskResult database ID. `accessLevel` controls field projection only: owned clips return the full contract, shared clips are public or remixable, and other readable external clips return minimal media fields. It does not grant derive or export permission. No Task is created or charged. - path.clipId — Suno clip identifier returned by a Generation or clip read.
- response.accessLevel
- response.audioUrl
- response.clipId — Suno clip identifier (`mid`); do not substitute an OmnAPI resource identifier.
- response.createdAt
- response.deliveryStatus
- response.duration
- response.errorCode
- response.errorMessage
- response.imageUrl
- response.index
- response.instrumental
- response.majorModelVersion
- response.model
- response.modelCode
- response.playable
- response.playback
- response.playback.delivery
- response.playback.expiresAt
- response.playback.mimeType
- response.playback.retryAfterMs
- response.playback.seekable
- response.playback.sessionCreateUrl
- response.playback.state
- response.playback.url
- response.prompt
- response.providerModelName
- response.role
- response.tags
- response.title
- response.updatedAt
- response.videoUrl
|
GET /api/v1/suno/clips/{clipId}/audio-analysis | Get clip audio analysis Description and searchable fieldsAggregates Suno downbeats, musical-key and waveform-mipmap analysis. Short sync-wait; returns 202 with taskId on timeout. - path.clipId — Suno clip identifier returned by a Generation or clip read.
- response.creditsCharged
- response.creditsRequired — Exact credits deducted to start the task
- response.errorCode
- response.errorMessage
- response.outputResults
- response.outputResults.clipId
- response.outputResults.downbeats
- response.outputResults.key
- response.outputResults.waveform
- response.pollUrl
- response.processingDuration
- response.processingDurationText
- response.resources — Standardized resources produced by the task
- response.resources[].assetId — Stable OmnAPI-owned asset id when available.
- response.resources[].assetStatus
- response.resources[].byteLength
- response.resources[].content
- response.resources[].contentType
- response.resources[].duration
- response.resources[].durationSec
- response.resources[].height
- response.resources[].id — Stable resource id (OmnAPI resource id).
- response.resources[].index — Stable zero-based provider result slot. Finalized post-process resources may use a higher reserved slot.
- response.resources[].metadata
- response.resources[].retainedUntil
- response.resources[].role
- response.resources[].thumbnailUrl
- response.resources[].title
- response.resources[].type
- response.resources[].url
- response.resources[].urlExpiresAt
- response.resources[].width
- response.status
- response.taskId — Task unique identifier
|
POST /api/v1/suno/clips/{clipId}/derive | Derive a clip Description and searchable fieldsExtend or cover an existing Suno clip. Extend includes automatic Concat finalization in the same task and charge; use the resource with role=final as the complete song. There is no public Concat endpoint. - path.clipId —
- header.Idempotency-Key — Unique key for one logical write. Retrying the same body with the same key replays the original result; reusing it with a different body returns 409.
- header.Prefer — Set to respond-async to skip the acknowledgement wait and return the generation receipt immediately.
- body.action — Operation action selected for this request.
- body.config — Standard task configuration: priority, tags, metadata, and webhookUrl.
- body.config.metadata — Free-form caller metadata, echoed back on read. Stored as opaque JSON; the server never mutates it.
- body.config.priority — Task priority 1-10 (higher = sooner). Default 5.
- body.config.tags — Free-form labels for filtering. Up to 20, 100 chars each.
- body.config.webhookUrl — URL to receive task.* lifecycle events via the central webhook service.
- body.continueAt — Timestamp in seconds to continue from. Values beyond the source duration are forwarded unchanged and Suno continues from the clip end.
- body.continuedAlignedPrompt — Optional aligned continuation prompt for action=extend.
- body.controlSliders — Optional bounded generation-control weights.
- body.controlSliders.audio_weight — Source-audio adherence weight from 0 to 1.
- body.controlSliders.style_weight — Style adherence weight from 0 to 1.
- body.controlSliders.weirdness_constraint — Creative-variation constraint from 0 to 1.
- body.isInstrumental — Optional instrumental intent for the derived result.
- body.isRemix — Optional remix intent for the derived result.
- body.model — Model identifier accepted by this schema variant.
- body.negativeTags — Negative music-style tags or exclusions.
- body.prompt — Primary creative or operation instruction.
- body.tags — Style tags or caller labels, as defined by this schema.
- body.title — Optional customer-facing title.
- response.autoFinalize
- response.clipIds
- response.creditsRequired
- response.deliveryStatus
- response.estimatedCompletionTime
- response.finalUrl
- response.generationId
- response.links
- response.links.final
- response.links.resource
- response.links.task
- response.pollUrl
- response.pricing
- response.pricing.adjustmentCredits — chargedCredits - baseCredits
- response.pricing.baseCredits — Standard quoted credits before customer pricing adjustment
- response.pricing.billingIncrementCredits — Smallest customer charge increment
- response.pricing.calculatedCredits — Precise whole-order subtotal before settlement rounding
- response.pricing.chargedCredits — Credits charged for this create request
- response.pricing.quoteVersion — Pricing quote version stored with the task
- response.pricing.settlementPolicyVersion — Versioned customer settlement policy
- response.pricing.settlementRoundingCredits — Whole-order rounding adjustment added at settlement
- response.pricing.source
- response.product
- response.product.autoFinalize
- response.product.deliveryStatus
- response.product.featureCode
- response.product.modelCode
- response.product.providerCode
- response.product.resourceId
- response.product.type
- response.requestId
- response.status
- response.taskId
- response.viewUrl
- response.warningCodes
|
POST /api/v1/suno/clips/{clipId}/export | Export clip audio Description and searchable fieldsExport M4A (1 standard credit), MP3 (2), WAV (3), or separated tracks. WAV delivers the requested original clip. Twelve stems cost 140; Extract costs 56. Customer pricing applies to every operation. When managed storage is available, new ordinary audio has a 14-day retention period, extendable through explicitly enabled paid storage; WAV has fixed 180-day retention. Read retainedUntil and urlExpiresAt on returned resources. Refresh private URLs through task or asset reads; signed URLs last at most one hour and never outlive retention. Existing permanent delivery rights remain valid for the same customer. Never construct or assume permanent download URLs. - path.clipId — Suno clip identifier returned by a Generation or clip read.
- header.Idempotency-Key — Unique key for one logical write. Retrying the same body with the same key replays the original result; reusing it with a different body returns 409.
- body.config — Standard task configuration: priority, tags, metadata, and webhookUrl.
- body.config.metadata — Free-form caller metadata, echoed back on read. Stored as opaque JSON; the server never mutates it.
- body.config.priority — Task priority 1-10 (higher = sooner). Default 5.
- body.config.tags — Free-form labels for filtering. Up to 20, 100 chars each.
- body.config.webhookUrl — URL to receive task.* lifecycle events via the central webhook service.
- body.format — Requested output format discriminator.
- body.format — Export an M4A audio file. New managed deliveries have a 14-day retention period and renewable signed URLs; existing permanent delivery rights are preserved. Your account pricing applies to separately requested exports. Automatic audio delivery for a Suno creation task has no additional charge.
- body.format — 2-standard-credit MP3 export. Use the returned URL; do not construct download URLs. For managed assets, inspect retainedUntil and refresh expiring URLs through asset reads.
- body.format — Separated audio tracks.
- body.stemName — Required for stemsMode=extract. Use one exact canonical value from this enum.
- body.stemsMode — twelve = full split (140 standard credits, default); extract = isolate/remove one named stem (56 standard credits). Suno no longer supports two.
- response.creditsRequired
- response.estimatedCompletionTime
- response.links
- response.links.final
- response.links.resource
- response.links.task
- response.pricing
- response.pricing.adjustmentCredits — chargedCredits - baseCredits
- response.pricing.baseCredits — Standard quoted credits before customer pricing adjustment
- response.pricing.billingIncrementCredits — Smallest customer charge increment
- response.pricing.calculatedCredits — Precise whole-order subtotal before settlement rounding
- response.pricing.chargedCredits — Credits charged for this create request
- response.pricing.quoteVersion — Pricing quote version stored with the task
- response.pricing.settlementPolicyVersion — Versioned customer settlement policy
- response.pricing.settlementRoundingCredits — Whole-order rounding adjustment added at settlement
- response.pricing.source
- response.product
- response.product.autoFinalize — Whether the product should finalize automatically
- response.product.deliveryStatus
- response.product.featureCode — Resolved feature code
- response.product.modelCode — Resolved model code
- response.product.providerCode — Resolved provider code
- response.product.resourceId
- response.product.type — Product family for this task, e.g. suno, producer, mv
- response.requestId
- response.status
- response.taskId
- response.warningCodes
|
GET /api/v1/suno/clips/{clipId}/timeline | Get aligned lyrics timeline Description and searchable fieldsWord/line-level timestamps for a clip. Short sync-wait; returns 202 with taskId on timeout. - path.clipId — Suno clip identifier returned by a Generation or clip read.
- response.creditsCharged
- response.creditsRequired — Exact credits deducted to start the task
- response.errorCode
- response.errorMessage
- response.outputResults
- response.outputResults.clipId
- response.outputResults.lines
- response.outputResults.lines[].end
- response.outputResults.lines[].section
- response.outputResults.lines[].start
- response.outputResults.lines[].text
- response.outputResults.lines[].words
- response.outputResults.waveform_data
- response.outputResults.words
- response.outputResults.words[].confidence
- response.outputResults.words[].end
- response.outputResults.words[].start
- response.outputResults.words[].success
- response.outputResults.words[].word
- response.pollUrl
- response.processingDuration
- response.processingDurationText
- response.resources — Standardized resources produced by the task
- response.resources[].assetId — Stable OmnAPI-owned asset id when available.
- response.resources[].assetStatus
- response.resources[].byteLength
- response.resources[].content
- response.resources[].contentType
- response.resources[].duration
- response.resources[].durationSec
- response.resources[].height
- response.resources[].id — Stable resource id (OmnAPI resource id).
- response.resources[].index — Stable zero-based provider result slot. Finalized post-process resources may use a higher reserved slot.
- response.resources[].metadata
- response.resources[].retainedUntil
- response.resources[].role
- response.resources[].thumbnailUrl
- response.resources[].title
- response.resources[].type
- response.resources[].url
- response.resources[].urlExpiresAt
- response.resources[].width
- response.status
- response.taskId — Task unique identifier
|
GET /api/v1/suno/generations | List Suno generations Description and searchable fieldsCursor-paginated product history. The cursor is opaque; do not construct it client-side. - query.limit — Maximum number of items to return.
- query.cursor — Opaque pagination cursor returned as nextCursor; omit it on the first page.
- response.hasMore
- response.items
- response.items[].autoFinalize
- response.items[].billing
- response.items[].billing.creditsCharged
- response.items[].billing.creditsRequired
- response.items[].billing.pricing
- response.items[].billing.pricing.adjustmentCredits — chargedCredits - baseCredits
- response.items[].billing.pricing.baseCredits — Standard quoted credits before customer pricing adjustment
- response.items[].billing.pricing.billingIncrementCredits — Smallest customer charge increment
- response.items[].billing.pricing.calculatedCredits — Precise whole-order subtotal before settlement rounding
- response.items[].billing.pricing.chargedCredits — Frozen task charge. New whole-credit quotes are integers; historical fractional quotes retain up to four decimal places.
- response.items[].billing.pricing.quoteVersion — Pricing quote version stored with the task
- response.items[].billing.pricing.settlementPolicyVersion — Versioned customer settlement policy
- response.items[].billing.pricing.settlementRoundingCredits — Whole-order rounding adjustment added at settlement
- response.items[].billing.pricing.source — Public pricing source category
- response.items[].billing.refunded
- response.items[].billing.settlementStatus
- response.items[].clips
- response.items[].clips[].accessLevel
- response.items[].clips[].audioUrl
- response.items[].clips[].clipId — Suno clip identifier (`mid`); do not substitute an OmnAPI resource identifier.
- response.items[].clips[].createdAt
- response.items[].clips[].deliveryStatus
- response.items[].clips[].duration
- response.items[].clips[].errorCode
- response.items[].clips[].errorMessage
- response.items[].clips[].imageUrl
- response.items[].clips[].index
- response.items[].clips[].instrumental
- response.items[].clips[].majorModelVersion
- response.items[].clips[].model
- response.items[].clips[].modelCode
- response.items[].clips[].playable
- response.items[].clips[].playback
- response.items[].clips[].playback.delivery
- response.items[].clips[].playback.expiresAt
- response.items[].clips[].playback.mimeType
- response.items[].clips[].playback.retryAfterMs
- response.items[].clips[].playback.seekable
- response.items[].clips[].playback.sessionCreateUrl
- response.items[].clips[].playback.state
- response.items[].clips[].playback.url
- response.items[].clips[].prompt
- response.items[].clips[].providerModelName
- response.items[].clips[].role
- response.items[].clips[].tags
- response.items[].clips[].title
- response.items[].clips[].updatedAt
- response.items[].clips[].videoUrl
- response.items[].createdAt
- response.items[].deliveryStatus
- response.items[].failureReason
- response.items[].finalClipId
- response.items[].finalUrl
- response.items[].generationId — Canonical OmnAPI Suno product ID. It equals the originating taskId.
- response.items[].partialFailure — True when the generation completed with at least one successful clip and at least one failed clip.
- response.items[].phase
- response.items[].progress
- response.items[].refundable
- response.items[].retryable
- response.items[].status
- response.items[].taskId
- response.items[].updatedAt
- response.items[].version
- response.items[].warningCodes
- response.nextCursor
|
GET /api/v1/suno/generations/{generationId} | Get a Suno generation Description and searchable fieldsCanonical product view for one Suno generation. It exposes every candidate's submitted/queued/streaming/complete/error lifecycle independently. Use GET /api/v1/tasks/{taskId} for execution and billing diagnostics. - path.generationId — Suno Generation identifier returned by song creation.
- response.autoFinalize
- response.billing
- response.billing.creditsCharged
- response.billing.creditsRequired
- response.billing.pricing
- response.billing.pricing.adjustmentCredits — chargedCredits - baseCredits
- response.billing.pricing.baseCredits — Standard quoted credits before customer pricing adjustment
- response.billing.pricing.billingIncrementCredits — Smallest customer charge increment
- response.billing.pricing.calculatedCredits — Precise whole-order subtotal before settlement rounding
- response.billing.pricing.chargedCredits — Frozen task charge. New whole-credit quotes are integers; historical fractional quotes retain up to four decimal places.
- response.billing.pricing.quoteVersion — Pricing quote version stored with the task
- response.billing.pricing.settlementPolicyVersion — Versioned customer settlement policy
- response.billing.pricing.settlementRoundingCredits — Whole-order rounding adjustment added at settlement
- response.billing.pricing.source — Public pricing source category
- response.billing.refunded
- response.billing.settlementStatus
- response.clips
- response.clips[].accessLevel
- response.clips[].audioUrl
- response.clips[].clipId — Suno clip identifier (`mid`); do not substitute an OmnAPI resource identifier.
- response.clips[].createdAt
- response.clips[].deliveryStatus
- response.clips[].duration
- response.clips[].errorCode
- response.clips[].errorMessage
- response.clips[].imageUrl
- response.clips[].index
- response.clips[].instrumental
- response.clips[].majorModelVersion
- response.clips[].model
- response.clips[].modelCode
- response.clips[].playable
- response.clips[].playback
- response.clips[].playback.delivery
- response.clips[].playback.expiresAt
- response.clips[].playback.mimeType
- response.clips[].playback.retryAfterMs
- response.clips[].playback.seekable
- response.clips[].playback.sessionCreateUrl
- response.clips[].playback.state
- response.clips[].playback.url
- response.clips[].prompt
- response.clips[].providerModelName
- response.clips[].role
- response.clips[].tags
- response.clips[].title
- response.clips[].updatedAt
- response.clips[].videoUrl
- response.createdAt
- response.deliveryStatus
- response.failureReason
- response.finalClipId
- response.finalUrl
- response.generationId — Canonical OmnAPI Suno product ID. It equals the originating taskId.
- response.partialFailure — True when the generation completed with at least one successful clip and at least one failed clip.
- response.phase
- response.progress
- response.refundable
- response.retryable
- response.status
- response.taskId
- response.updatedAt
- response.version
- response.warningCodes
|
POST /api/v1/suno/lyrics | Generate Lyrics Description and searchable fieldsCreate lyrics without changing the established request contract. `candidates=2` succeeds only after both ordered A/B candidates complete. Each completed text resource may include `metadata.stylePrompt` and compatibility `metadata.tags: [stylePrompt]`; style expansion is best-effort and never turns completed lyrics into a failed Task. The optional `lyricsModel` currently accepts only `default`. Returns a task id — poll `GET /api/v1/tasks/{taskId}` for the result. `Idempotency-Key` is optional but recommended for safe client retries. For a synchronous lyrics call, use `POST /api/v1/lyrics/generate`. - header.Idempotency-Key — Unique key for one logical write. Retrying the same body with the same key replays the original result; reusing it with a different body returns 409.
- body.candidates — Number of independent candidates to generate.
- body.config — Standard task configuration: priority, tags, metadata, and webhookUrl.
- body.config.metadata — Free-form caller metadata, echoed back on read. Stored as opaque JSON; the server never mutates it.
- body.config.priority — Task priority 1-10 (higher = sooner). Default 5.
- body.config.tags — Free-form labels for filtering. Up to 20, 100 chars each.
- body.config.webhookUrl — URL to receive task.* lifecycle events via the central webhook service.
- body.lyricsModel — Only the stable "default" lyrics model is supported for candidates=2.
- body.prompt — Primary creative or operation instruction.
- body.source — Optional caller label retained in Task audit input for candidates=2.
- response.creditsRequired
- response.estimatedCompletionTime
- response.links
- response.links.final
- response.links.resource
- response.links.task
- response.pricing
- response.pricing.adjustmentCredits — chargedCredits - baseCredits
- response.pricing.baseCredits — Standard quoted credits before customer pricing adjustment
- response.pricing.billingIncrementCredits — Smallest customer charge increment
- response.pricing.calculatedCredits — Precise whole-order subtotal before settlement rounding
- response.pricing.chargedCredits — Credits charged for this create request
- response.pricing.quoteVersion — Pricing quote version stored with the task
- response.pricing.settlementPolicyVersion — Versioned customer settlement policy
- response.pricing.settlementRoundingCredits — Whole-order rounding adjustment added at settlement
- response.pricing.source
- response.product
- response.product.autoFinalize — Whether the product should finalize automatically
- response.product.deliveryStatus
- response.product.featureCode — Resolved feature code
- response.product.modelCode — Resolved model code
- response.product.providerCode — Resolved provider code
- response.product.resourceId
- response.product.type — Product family for this task, e.g. suno, producer, mv
- response.requestId
- response.status
- response.taskId
- response.warningCodes
|
POST /api/v1/suno/songs | Generate Song Description and searchable fieldsCreate a song from text, a confirmed public Voice, or a managed upload + Extend/Cover workflow. - header.Idempotency-Key — Unique key for one logical write. Retrying the same body with the same key replays the original result; reusing it with a different body returns 409.
- header.Prefer — Set to respond-async to skip the acknowledgement wait and return the generation receipt immediately.
- body.audio — Public audio source and format information.
- body.audio.extensionType — Audio filename or media extension hint.
- body.audio.url — Publicly retrievable audio URL used only by upload-extend or upload-cover.
- body.config — Standard task configuration: priority, tags, metadata, and webhookUrl.
- body.config.metadata — Free-form caller metadata, echoed back on read. Stored as opaque JSON; the server never mutates it.
- body.config.priority — Task priority 1-10 (higher = sooner). Default 5.
- body.config.tags — Free-form labels for filtering. Up to 20, 100 chars each.
- body.config.webhookUrl — URL to receive task.* lifecycle events via the central webhook service.
- body.continueAt — Timestamp in seconds to continue from. Values beyond the source duration are forwarded unchanged and Suno continues from the clip end.
- body.continuedAlignedPrompt — Aligned continuation prompt used for an Extend operation.
- body.controlSliders — Optional bounded generation-control weights.
- body.controlSliders.audio_weight — Source-audio adherence weight from 0 to 1.
- body.controlSliders.style_weight — Style adherence weight from 0 to 1.
- body.controlSliders.weirdness_constraint — Creative-variation constraint from 0 to 1.
- body.instrumental — Whether to generate an instrumental result.
- body.lyrics — Lyrics or lyric context supplied to the operation.
- body.mode — Generation mode. Vox accepts the three v6 generation models with account-specific permission checks; unsupported model combinations are rejected before task creation. Upload modes atomically import the supplied audio and then Extend or Cover it; standalone upload is not exposed.
- body.model — Model identifier accepted by this schema variant.
- body.negativeTags — Negative music-style tags or exclusions.
- body.prompt — Primary creative or operation instruction.
- body.tags — Style tags or caller labels, as defined by this schema.
- body.title — Optional customer-facing title.
- body.voiceId — Reusable public Suno Voice identifier.
- response.autoFinalize
- response.clipIds
- response.creditsRequired
- response.deliveryStatus
- response.estimatedCompletionTime
- response.finalUrl
- response.generationId
- response.links
- response.links.final
- response.links.resource
- response.links.task
- response.pollUrl
- response.pricing
- response.pricing.adjustmentCredits — chargedCredits - baseCredits
- response.pricing.baseCredits — Standard quoted credits before customer pricing adjustment
- response.pricing.billingIncrementCredits — Smallest customer charge increment
- response.pricing.calculatedCredits — Precise whole-order subtotal before settlement rounding
- response.pricing.chargedCredits — Credits charged for this create request
- response.pricing.quoteVersion — Pricing quote version stored with the task
- response.pricing.settlementPolicyVersion — Versioned customer settlement policy
- response.pricing.settlementRoundingCredits — Whole-order rounding adjustment added at settlement
- response.pricing.source
- response.product
- response.product.autoFinalize
- response.product.deliveryStatus
- response.product.featureCode
- response.product.modelCode
- response.product.providerCode
- response.product.resourceId
- response.product.type
- response.requestId
- response.status
- response.taskId
- response.viewUrl
- response.warningCodes
|
GET /api/v1/suno/storage | Inspect Suno storage policy, rate and subscription Description and searchable fieldsRead availability, the current published storage rate, active subscription, billable bytes and unpaid usage. Check available before offering paid storage enrollment. All amounts are integer credit units represented as strings. - response.audioFreeDays
- response.available
- response.billableBytes
- response.billingUnit
- response.cancellationGraceDays
- response.fixedRetentionDays
- response.publishedRateUnitsPerGbMonth
- response.subscription
- response.subscription.graceUntil
- response.subscription.meteredThrough
- response.subscription.rateUnitsPerGbMonth
- response.subscription.status
- response.subscription.stoppedAt
- response.unpaidUnits
|
PUT /api/v1/suno/storage | Opt in to or cancel paid long-term audio storage Description and searchable fieldsExplicitly accepts the published unit rate and includes currently live ordinary audio and future deliveries. WAV and timestamp lyrics stay fixed at 180 days. Billing starts after the first 14 days and settles daily. Cancellation stops accrual and grants a 7-day download grace period. Expired assets are not revived. - body.acceptedRateUnits — Current publishedRateUnitsPerGbMonth accepted by the customer. Required to enable a new subscription; obtain it from GET /api/v1/suno/storage.
- body.enabled — True explicitly enables paid long-term ordinary audio storage; false cancels accrual and starts the download grace period.
- response.graceUntil
- response.meteredThrough
- response.rateUnitsPerGbMonth
- response.status
- response.stoppedAt
|
GET /api/v1/suno/storage/charges | List Suno storage charges Description and searchable fieldsExact usage, captured rate and debit state; amounts are integer credit units. - query.cursor — Opaque pagination cursor returned as nextCursor; omit it on the first page.
- query.limit — Maximum number of items to return.
- response.items
- response.items[].amountUnits
- response.items[].byteMilliseconds
- response.items[].from
- response.items[].id
- response.items[].rateUnitsPerGbMonth
- response.items[].status
- response.items[].until
- response.nextCursor
|
GET /api/v1/suno/styles/recommend | Recommend Styles Description and searchable fieldsStyle suggestions. Short sync-wait; returns 202 with taskId on timeout. - query.exclude —
- response.creditsCharged
- response.creditsRequired — Exact credits deducted to start the task
- response.errorCode
- response.errorMessage
- response.outputResults
- response.outputResults.recommendStyles
- response.pollUrl
- response.processingDuration
- response.processingDurationText
- response.resources — Standardized resources produced by the task
- response.resources[].assetId — Stable OmnAPI-owned asset id when available.
- response.resources[].assetStatus
- response.resources[].byteLength
- response.resources[].content
- response.resources[].contentType
- response.resources[].duration
- response.resources[].durationSec
- response.resources[].height
- response.resources[].id — Stable resource id (OmnAPI resource id).
- response.resources[].index — Stable zero-based provider result slot. Finalized post-process resources may use a higher reserved slot.
- response.resources[].metadata
- response.resources[].retainedUntil
- response.resources[].role
- response.resources[].thumbnailUrl
- response.resources[].title
- response.resources[].type
- response.resources[].url
- response.resources[].urlExpiresAt
- response.resources[].width
- response.status
- response.taskId — Task unique identifier
|
GET /api/v1/suno/voices | List Voices Description and searchable fieldsLists only fully completed public Voices created by the current OmnAPI user. Private, test, intermediate, and partially completed Voices are excluded. - query.page —
- query.pageSize —
- response.currentPage
- response.pageSize
- response.totalResults
- response.voices
- response.voices[].createdAt
- response.voices[].description
- response.voices[].imageUrl
- response.voices[].name
- response.voices[].sourceClipId
- response.voices[].voiceId
- response.voices[].voiceType
|
POST /api/v1/suno/voices | Create Voice Description and searchable fieldsCreates a public Voice from verified recordings. First obtain a verification phrase, record it, then submit `verificationPhraseTaskId`, the verification recording URL, and the clean singing URL. Only the final public Voice is returned. - header.Idempotency-Key — Unique key for one logical write. Retrying the same body with the same key replays the original result; reusing it with a different body returns 409.
- body.config — Standard task configuration: priority, tags, metadata, and webhookUrl.
- body.config.metadata — Free-form caller metadata, echoed back on read. Stored as opaque JSON; the server never mutates it.
- body.config.priority — Task priority 1-10 (higher = sooner). Default 5.
- body.config.tags — Free-form labels for filtering. Up to 20, 100 chars each.
- body.config.webhookUrl — URL to receive task.* lifecycle events via the central webhook service.
- body.description — Optional customer-facing resource description.
- body.imageUrl — Optional public image URL for the resulting Voice.
- body.name — Customer-facing resource name.
- body.verificationAudioUrl — Recording of the requested verification phrase from the same speaker.
- body.verificationExtensionType — Verification recording extension hint.
- body.verificationPhraseTaskId — Completed verification-phrase Task identifier.
- body.voiceAudioUrl — Clean singing recording URL used to create the public Voice.
- body.voiceExtensionType — Voice recording extension hint.
- response.creditsRequired
- response.estimatedCompletionTime
- response.links
- response.links.final
- response.links.resource
- response.links.task
- response.pricing
- response.pricing.adjustmentCredits — chargedCredits - baseCredits
- response.pricing.baseCredits — Standard quoted credits before customer pricing adjustment
- response.pricing.billingIncrementCredits — Smallest customer charge increment
- response.pricing.calculatedCredits — Precise whole-order subtotal before settlement rounding
- response.pricing.chargedCredits — Credits charged for this create request
- response.pricing.quoteVersion — Pricing quote version stored with the task
- response.pricing.settlementPolicyVersion — Versioned customer settlement policy
- response.pricing.settlementRoundingCredits — Whole-order rounding adjustment added at settlement
- response.pricing.source
- response.product
- response.product.autoFinalize — Whether the product should finalize automatically
- response.product.deliveryStatus
- response.product.featureCode — Resolved feature code
- response.product.modelCode — Resolved model code
- response.product.providerCode — Resolved provider code
- response.product.resourceId
- response.product.type — Product family for this task, e.g. suno, producer, mv
- response.requestId
- response.status
- response.taskId
- response.warningCodes
|
POST /api/v1/suno/voices/from-clip | Create Voice from Clip Description and searchable fieldsCreates a reusable public Voice from a completed clip owned by the caller. This clip-derived workflow does not require a verification phrase or real-person recordings. - header.Idempotency-Key — Unique key for one logical write. Retrying the same body with the same key replays the original result; reusing it with a different body returns 409.
- body.clipId — Completed Suno clip owned by the current OmnAPI user.
- body.config — Standard task configuration: priority, tags, metadata, and webhookUrl.
- body.config.metadata — Free-form caller metadata, echoed back on read. Stored as opaque JSON; the server never mutates it.
- body.config.priority — Task priority 1-10 (higher = sooner). Default 5.
- body.config.tags — Free-form labels for filtering. Up to 20, 100 chars each.
- body.config.webhookUrl — URL to receive task.* lifecycle events via the central webhook service.
- body.description — Optional customer-facing resource description.
- body.imageUrl — Optional public image URL for the Voice.
- body.name — Customer-facing resource name.
- body.vocalRange — Optional source-clip vocal range. When omitted, OmnAPI selects a continuous singing segment from the effective clip's final lyrics timeline. If a reliable timeline is unavailable, provide this range manually.
- body.vocalRange.endSeconds — End of the selected vocal range in seconds.
- body.vocalRange.startSeconds — Start of the selected vocal range in seconds.
- response.creditsRequired
- response.estimatedCompletionTime
- response.links
- response.links.final
- response.links.resource
- response.links.task
- response.pricing
- response.pricing.adjustmentCredits — chargedCredits - baseCredits
- response.pricing.baseCredits — Standard quoted credits before customer pricing adjustment
- response.pricing.billingIncrementCredits — Smallest customer charge increment
- response.pricing.calculatedCredits — Precise whole-order subtotal before settlement rounding
- response.pricing.chargedCredits — Credits charged for this create request
- response.pricing.quoteVersion — Pricing quote version stored with the task
- response.pricing.settlementPolicyVersion — Versioned customer settlement policy
- response.pricing.settlementRoundingCredits — Whole-order rounding adjustment added at settlement
- response.pricing.source
- response.product
- response.product.autoFinalize — Whether the product should finalize automatically
- response.product.deliveryStatus
- response.product.featureCode — Resolved feature code
- response.product.modelCode — Resolved model code
- response.product.providerCode — Resolved provider code
- response.product.resourceId
- response.product.type — Product family for this task, e.g. suno, producer, mv
- response.requestId
- response.status
- response.taskId
- response.warningCodes
|
GET /api/v1/suno/voices/verification-phrase | Get Voice verification phrase Description and searchable fieldsReturns a verification phrase and taskId for subsequent verified Voice creation. Use that taskId as verificationPhraseTaskId when creating the Voice. - query.language —
- response.creditsCharged
- response.creditsRequired — Exact credits deducted to start the task
- response.errorCode
- response.errorMessage
- response.outputResults
- response.outputResults.expiresAt
- response.outputResults.phraseText
- response.pollUrl
- response.processingDuration
- response.processingDurationText
- response.resources — Standardized resources produced by the task
- response.resources[].assetId — Stable OmnAPI-owned asset id when available.
- response.resources[].assetStatus
- response.resources[].byteLength
- response.resources[].content
- response.resources[].contentType
- response.resources[].duration
- response.resources[].durationSec
- response.resources[].height
- response.resources[].id — Stable resource id (OmnAPI resource id).
- response.resources[].index — Stable zero-based provider result slot. Finalized post-process resources may use a higher reserved slot.
- response.resources[].metadata
- response.resources[].retainedUntil
- response.resources[].role
- response.resources[].thumbnailUrl
- response.resources[].title
- response.resources[].type
- response.resources[].url
- response.resources[].urlExpiresAt
- response.resources[].width
- response.status
- response.taskId — Task unique identifier
|
GET /api/v1/suno/voices/{voiceId} | Get Voice Description and searchable fieldsVoice detail by ID. There is no OmnAPI ownership restriction: any readable public Voice ID may be queried and then used for generation. - path.voiceId — Reusable public Suno Voice identifier.
- response.creditsCharged
- response.creditsRequired — Exact credits deducted to start the task
- response.errorCode
- response.errorMessage
- response.outputResults
- response.outputResults.voice
- response.outputResults.voice.createdAt
- response.outputResults.voice.description
- response.outputResults.voice.imageUrl
- response.outputResults.voice.isPublic
- response.outputResults.voice.name
- response.outputResults.voice.voiceId
- response.outputResults.voice.voiceType
- response.outputResults.voiceId
- response.pollUrl
- response.processingDuration
- response.processingDurationText
- response.resources — Standardized resources produced by the task
- response.resources[].assetId — Stable OmnAPI-owned asset id when available.
- response.resources[].assetStatus
- response.resources[].byteLength
- response.resources[].content
- response.resources[].contentType
- response.resources[].duration
- response.resources[].durationSec
- response.resources[].height
- response.resources[].id — Stable resource id (OmnAPI resource id).
- response.resources[].index — Stable zero-based provider result slot. Finalized post-process resources may use a higher reserved slot.
- response.resources[].metadata
- response.resources[].retainedUntil
- response.resources[].role
- response.resources[].thumbnailUrl
- response.resources[].title
- response.resources[].type
- response.resources[].url
- response.resources[].urlExpiresAt
- response.resources[].width
- response.status
- response.taskId — Task unique identifier
|