Idempotency-Keyheader · OptionalUnique 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.
Maximum characters: 255./api/v1/suno/songsAuthentication · x-api-key
Create a song from text, a confirmed public Voice, or a managed upload + Extend/Cover workflow.
Idempotency-Keyheader · OptionalUnique 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.
Maximum characters: 255.Preferheader · OptionalSet to respond-async to skip the acknowledgement wait and return the generation receipt immediately.
Unknown fields are not accepted.
modeRequiredGeneration 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.
Pattern: ^(simple|custom|vox|upload-extend|upload-cover)$.
audioOptionalPublic audio source and format information.
Unknown fields are not accepted.
audio.urlRequiredPublicly retrievable audio URL used only by upload-extend or upload-cover.
Format: uri.
audio.extensionTypeOptionalAudio filename or media extension hint.
configOptionalStandard task configuration: priority, tags, metadata, and webhookUrl.
config.metadataOptionalFree-form caller metadata, echoed back on read. Stored as opaque JSON; the server never mutates it.
config.priorityOptionalTask priority 1-10 (higher = sooner). Default 5.
Minimum: 1. Maximum: 10. Default: 5.
config.webhookUrlOptionalURL to receive task.* lifecycle events via the central webhook service.
Format: uri.
continueAtOptionalTimestamp in seconds to continue from. Values beyond the source duration are forwarded unchanged and Suno continues from the clip end.
Minimum: 0.
continuedAlignedPromptOptionalAligned continuation prompt used for an Extend operation.
Maximum characters: 5000.
controlSlidersOptionalOptional bounded generation-control weights.
controlSliders.audio_weightOptionalSource-audio adherence weight from 0 to 1.
Minimum: 0. Maximum: 1.
controlSliders.style_weightOptionalStyle adherence weight from 0 to 1.
Minimum: 0. Maximum: 1.
controlSliders.weirdness_constraintOptionalCreative-variation constraint from 0 to 1.
Minimum: 0. Maximum: 1.
instrumentalOptionalWhether to generate an instrumental result.
lyricsOptionalLyrics or lyric context supplied to the operation.
Maximum characters: 5000.
modelOptionalCurrent models: chirp-hawk, chirp-hawk-wild, chirp-goose. Legacy generation names and underscore spellings remain accepted: auk-turbo executes on goose; v4, auk, bluejay, crow and fenix execute on hawk. Requested model pricing and the legacy feature envelope are preserved. Omitted model retains the chirp-fenix pricing identity and executes on chirp-hawk.
Default: "chirp-fenix".
promptOptionalPrimary creative or operation instruction.
Maximum characters: 5000.
titleOptionalOptional customer-facing title.
Maximum characters: 100.
voiceIdOptionalReusable public Suno Voice identifier.
application/json
Unknown fields are not accepted.
autoFinalizeRequiredclipIdsRequiredclipIds[]Each itemcreditsRequiredRequiredMinimum: 0.
deliveryStatusRequiredMay be null. Must match at least one alternative.
deliveryStatus · anyOf 1AlternativeMust match at least one alternative.
deliveryStatus · anyOf 1 · anyOf 1AlternativedeliveryStatus · anyOf 1 · anyOf 2AlternativedeliveryStatus · anyOf 1 · anyOf 3AlternativedeliveryStatus · anyOf 1 · anyOf 4AlternativedeliveryStatus · anyOf 1 · anyOf 5AlternativedeliveryStatus · anyOf 2AlternativefinalUrlRequiredMay be null. Must match at least one alternative.
finalUrl · anyOf 1AlternativefinalUrl · anyOf 2AlternativegenerationIdRequiredlinksRequiredUnknown fields are not accepted.
links.finalRequiredMay be null. Must match at least one alternative.
links.final · anyOf 1Alternativelinks.final · anyOf 2Alternativelinks.resourceRequiredlinks.taskRequiredpollUrlRequiredpricingRequiredUnknown fields are not accepted.
pricing.adjustmentCreditsRequiredchargedCredits - baseCredits
pricing.baseCreditsRequiredStandard quoted credits before customer pricing adjustment
pricing.chargedCreditsRequiredCredits charged for this create request
Minimum: 0.
pricing.quoteVersionRequiredPricing quote version stored with the task
pricing.sourceRequiredPublic pricing source category
pricing.billingIncrementCreditsOptionalSmallest customer charge increment
Minimum: 0.0001.
pricing.calculatedCreditsOptionalPrecise whole-order subtotal before settlement rounding
pricing.settlementPolicyVersionOptionalVersioned customer settlement policy
pricing.settlementRoundingCreditsOptionalWhole-order rounding adjustment added at settlement
Minimum: 0.
productRequiredUnknown fields are not accepted.
product.autoFinalizeRequiredproduct.deliveryStatusRequiredMay be null. Must match at least one alternative.
product.deliveryStatus · anyOf 1AlternativeMust match at least one alternative.
product.deliveryStatus · anyOf 1 · anyOf 1Alternativeproduct.deliveryStatus · anyOf 1 · anyOf 2Alternativeproduct.deliveryStatus · anyOf 1 · anyOf 3Alternativeproduct.deliveryStatus · anyOf 1 · anyOf 4Alternativeproduct.deliveryStatus · anyOf 1 · anyOf 5Alternativeproduct.deliveryStatus · anyOf 2Alternativeproduct.featureCodeRequiredproduct.modelCodeRequiredproduct.providerCodeRequiredproduct.resourceIdRequiredproduct.typeRequiredrequestIdRequiredMay be null. Must match at least one alternative.
requestId · anyOf 1AlternativerequestId · anyOf 2AlternativestatusRequiredDefault: "PENDING".
taskIdRequiredviewUrlRequiredwarningCodesRequiredwarningCodes[]Each itemestimatedCompletionTimeOptionalMay be null. Must match at least one alternative.
estimatedCompletionTime · anyOf 1AlternativeEstimated completion time as an RFC 3339 string.
Format: date-time.
estimatedCompletionTime · anyOf 2Alternativeapplication/json
errorRequirederror.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalAdditional error details (optional)
successRequiredAlways false for error responses
application/json
errorRequirederror.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalAdditional error details (optional)
successRequiredAlways false for error responses
application/json
errorRequirederror.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalAdditional error details (optional)
successRequiredAlways false for error responses
Forbidden: the API key lacks the required scope or its IP policy rejects this request. Forbidden: API-key scope/IP restrictions or billing hold. A positive balance does not bypass payment review. Check GET /api/v1/account/credits billingStatus before further paid requests.
application/json
errorRequirederror.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalAdditional error details (optional)
successRequiredAlways false for error responses
application/json
errorRequirederror.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalAdditional error details (optional)
successRequiredAlways false for error responses
application/json
errorRequirederror.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalAdditional error details (optional)
successRequiredAlways false for error responses
Request allowance or task admission capacity exceeded. Follow Retry-After when present; otherwise wait for active tasks and use bounded backoff. Limits do not guarantee throughput. For SSE, this is the HTTP connection response, not an event.
application/json
errorRequirederror.codeRequiredRATE_LIMITED for request and task admission rejections.
error.messageRequirederror.detailsOptionalOptional and scope-dependent. Request limits supply scope/policy/type/limit/current/retryAfterSec. Task admission supplies inFlight/limit/tier, plus scope=apiKey for a key cap. IP rejection can omit details. In-flight rejection does not promise Retry-After.
error.details.currentOptionalMinimum: 0.
error.details.inFlightOptionalMinimum: 0.
error.details.limitOptionalMinimum: 0.
error.details.policyOptionalerror.details.retryAfterSecOptionalMinimum: 1.
error.details.scopeOptionalerror.details.tierOptionalerror.details.typeOptionalsuccessRequiredDefault: false.
application/json
errorRequirederror.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalAdditional error details (optional)
successRequiredAlways false for error responses
application/json
errorRequirederror.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalAdditional error details (optional)
successRequiredAlways false for error responses