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/voices/from-clipAuthentication · x-api-key
Creates 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.
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.Unknown fields are not accepted.
clipIdRequiredCompleted Suno clip owned by the current OmnAPI user.
Minimum characters: 1.
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.
descriptionOptionalOptional customer-facing resource description.
Maximum characters: 2000.
imageUrlOptionalOptional public image URL for the Voice.
Format: uri.
nameOptionalCustomer-facing resource name.
Maximum characters: 100.
vocalRangeOptionalOptional 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.
Unknown fields are not accepted.
vocalRange.endSecondsRequiredEnd of the selected vocal range in seconds.
Exclusive lower bound: 0.
vocalRange.startSecondsRequiredStart of the selected vocal range in seconds.
Minimum: 0.
application/json
Unknown fields are not accepted.
creditsRequiredRequiredMinimum: 0.
linksRequiredUnknown fields are not accepted.
links.finalRequiredMay be null. Must match at least one alternative.
links.final · anyOf 1Alternativelinks.final · anyOf 2Alternativelinks.resourceRequiredMay be null. Must match at least one alternative.
links.resource · anyOf 1Alternativelinks.resource · anyOf 2Alternativelinks.taskRequiredpricingRequiredUnknown 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.featureCodeRequiredResolved feature code
product.modelCodeRequiredResolved model code
product.providerCodeRequiredResolved provider code
product.resourceIdRequiredMay be null. Must match at least one alternative.
product.resourceId · anyOf 1AlternativeProduct resource id when created synchronously
product.resourceId · anyOf 2Alternativeproduct.typeRequiredProduct family for this task, e.g. suno, producer, mv
product.autoFinalizeOptionalWhether the product should finalize automatically
product.deliveryStatusOptionalMay be null. Must match at least one alternative.
product.deliveryStatus · anyOf 1AlternativeProduct-level delivery status when applicable
product.deliveryStatus · anyOf 2AlternativerequestIdRequiredMay be null. Must match at least one alternative.
requestId · anyOf 1AlternativerequestId · anyOf 2AlternativestatusRequiredDefault: "PENDING".
taskIdRequiredwarningCodesRequiredwarningCodes[]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
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