idpath · RequiredResource identifier returned by the corresponding create operation.
/api/v2/mv/drafts/{id}Authentication · x-api-key
Omn creative draft operation. Drafts retain a version; generation and preview require a new customer charge authorization and an Idempotency-Key. Preview is independently billed.
idpath · RequiredResource identifier returned by the corresponding create operation.
Unknown fields are not accepted.
expectedVersionRequiredOptimistic-concurrency guard using the current resource version.
Minimum: 1. Must match at least one alternative.
expectedVersion · anyOf 1AlternativeFormat: integer. Default: 0.
expectedVersion · anyOf 2AlternativeMinimum: 1.
requestRequiredComplete replacement draft request using the v2 creation contract; prior charge authorization is not saved.
Unknown fields are not accepted.
request.sourceRequiredPublic audio URL or an accessible Suno clip. The server verifies duration.
Must match at least one alternative.
request.source · anyOf 1AlternativePublic audio URL or an accessible Suno clip. The server verifies duration.
Unknown fields are not accepted.
request.source · anyOf 1.typeRequiredaudio_url requires url; suno_clip requires clipId.
request.source · anyOf 1.urlRequiredPublic HTTP(S) audio URL.
Format: uri.
request.source · anyOf 1.lyricsOptionalOptional original lyrics to guide song understanding and transcription.
Maximum characters: 5000.
request.source · anyOf 1.rangeOptionalAudio selection measured in seconds; effective output must be 10–600 seconds.
Unknown fields are not accepted.
request.source · anyOf 1.range.endSecRequiredSelection end in the original audio, later than startSec.
Exclusive lower bound: 0.
request.source · anyOf 1.range.endSecSee schemaExpand this value in the interactive reference.
Exclusive lower bound: 0.
request.source · anyOf 1.range.startSecRequiredInclusive selection start in the original audio.
Minimum: 0.
request.source · anyOf 1.range.startSecSee schemaExpand this value in the interactive reference.
Minimum: 0.
request.source · anyOf 2AlternativePublic audio URL or an accessible Suno clip. The server verifies duration.
Unknown fields are not accepted.
request.source · anyOf 2.clipIdRequiredAccessible Suno clip identifier.
Minimum characters: 1.
request.source · anyOf 2.typeRequiredaudio_url requires url; suno_clip requires clipId.
request.source · anyOf 2.lyricsOptionalOptional original lyrics to guide song understanding and transcription.
Maximum characters: 5000.
request.source · anyOf 2.rangeOptionalAudio selection measured in seconds; effective output must be 10–600 seconds.
Unknown fields are not accepted.
request.source · anyOf 2.range.endSecRequiredSelection end in the original audio, later than startSec.
Exclusive lower bound: 0.
request.source · anyOf 2.range.endSecSee schemaExpand this value in the interactive reference.
Exclusive lower bound: 0.
request.source · anyOf 2.range.startSecRequiredInclusive selection start in the original audio.
Minimum: 0.
request.source · anyOf 2.range.startSecSee schemaExpand this value in the interactive reference.
Minimum: 0.
request.captionsOptionalSubtitle policy; captions do not control whether lyrics are analyzed for planning.
Unknown fields are not accepted.
request.captions.modeRequiredoff, auto or provided. provided requires srtUrl; other modes reject it.
Default: "off".
request.captions.languageOptionalExpected subtitle language (auto, en or zh).
Default: "auto".
request.captions.requiredOptionalWhen true, do not silently deliver without requested captions. Invalid with mode off.
request.captions.srtUrlOptionalPublic SRT URL with cue times relative to the selected audio segment.
Format: uri.
request.configOptionalStandard task configuration: priority, tags, metadata, and webhookUrl.
request.config.metadataOptionalFree-form caller metadata, echoed back on read. Stored as opaque JSON; the server never mutates it.
request.config.priorityOptionalTask priority 1-10 (higher = sooner). Default 5.
Minimum: 1. Maximum: 10. Default: 5.
request.config.webhookUrlOptionalURL to receive task.* lifecycle events via the central webhook service.
Format: uri.
request.creativeOptionalCreative intent, independent of output resolution.
Unknown fields are not accepted.
request.creative.modeRequiredauto, story, mood, perform, sing, dance, sing_dance or sing_play. All use the same request envelope.
Default: "auto".
request.creative.briefOptionalDescribe the desired story, subjects, action and mood. Required for a brief-led story.
Maximum characters: 3000.
request.creative.charactersOptionalWhether characters may appear and the desired count.
Unknown fields are not accepted.
request.creative.characters.policyRequiredauto lets the director decide; required mandates characters; forbidden excludes them and conflicts with performance modes or character references.
Default: "auto".
request.creative.characters.countOptionalDesired number of main characters (1 or 2); cannot be combined with forbidden.
Minimum: 1. Maximum: 2. Must match at least one alternative.
request.creative.characters.count · anyOf 1AlternativeDesired number of main characters (1 or 2); cannot be combined with forbidden.
Format: integer. Default: 0.
request.creative.characters.count · anyOf 1See schemaExpand this value in the interactive reference.
Format: integer. Default: 0.
request.creative.characters.count · anyOf 2AlternativeDesired number of main characters (1 or 2); cannot be combined with forbidden.
Minimum: 1. Maximum: 2.
request.creative.characters.count · anyOf 2See schemaExpand this value in the interactive reference.
Minimum: 1. Maximum: 2.
request.creative.optionsOptionalMode-specific choices; irrelevant options are rejected.
Unknown fields are not accepted.
request.creative.options.combinationOptionalRequired for sing_dance or sing_play. alternating uses separate shots. simultaneous requests same-shot actions and currently returns 422 before debit.
Default: "alternating".
request.creative.options.instrumentOptionalInstrument to feature in perform or sing_play.
Minimum characters: 1. Maximum characters: 100.
request.creative.options.storySourceOptionalRequired for story: lyrics uses song evidence; brief uses creative.brief.
Default: "lyrics".
request.creative.styleOptionalVisual treatment passed to director planning and shot generation.
Maximum characters: 1000.
request.maxCreditsOptionalMaximum authorized customer charge. A lower cap rejects the purchase without reducing the requested output.
Minimum: 1.
request.outputOptionalDelivery format. No render tier or provider selector is accepted.
Unknown fields are not accepted.
request.output.aspectRatioOptionalDelivery aspect ratio; defaults to 16:9. Motion references require 16:9 or 9:16.
request.output.resolutionOptional540p, 720p, 1080p or 1440p for every mode. Defaults to 720p. Motion output may be resized from its source resolution.
request.preflightIdOptionalUnexpired preflight identifier bound to this user, API key and exact creative request.
Minimum characters: 1. Maximum characters: 100.
request.quoteIdOptionalShort-lived quote identifier for the matching paid operation.
Minimum characters: 1. Maximum characters: 100.
request.referencesOptionalOptional media references. Secondary characters, style and location images together may not exceed six.
Unknown fields are not accepted.
request.references.charactersOptionalUp to two ordered identity references; omit to let Omn create characters.
Maximum items: 2.
request.references.characters[]Each itemUp to two ordered identity references; omit to let Omn create characters.
Unknown fields are not accepted.
request.references.characters[].idRequiredUnique character identifier used to bind a motion reference.
Minimum characters: 1. Maximum characters: 64.
request.references.characters[].idSee schemaExpand this value in the interactive reference.
Minimum characters: 1. Maximum characters: 64.
request.references.characters[].imageUrlRequiredPublic HTTP(S) portrait URL.
Format: uri.
request.references.characters[].imageUrlSee schemaExpand this value in the interactive reference.
Format: uri.
request.references.characters[].descriptionOptionalRole and appearance guidance for this character.
Maximum characters: 500.
request.references.characters[].descriptionSee schemaExpand this value in the interactive reference.
Maximum characters: 500.
request.references.locationsOptionalUp to three scene or location image URLs.
Maximum items: 3.
request.references.locations[]Each itemUp to three scene or location image URLs.
Format: uri.
request.references.motionOptionalOptional motion reference for dance only; runtime support is checked before debit.
Unknown fields are not accepted.
request.references.motion.rightsConfirmedRequiredMust be true to confirm you have permission to use the motion reference.
request.references.motion.videoUrlRequiredPublic HTTP(S) motion reference video URL.
Format: uri.
request.references.motion.characterIdOptionalIdentifier of a supplied character that performs the referenced movement; defaults to the first character.
request.references.stylesOptionalUp to three visual style image URLs.
Maximum items: 3.
request.references.styles[]Each itemUp to three visual style image URLs.
Format: uri.
request.titleOptionalOptional customer-facing title.
Maximum characters: 200.
application/json
contractVersionRequiredexpiresAtRequiredidRequiredrequestRequiredUnknown fields are not accepted.
request.sourceRequiredPublic audio URL or an accessible Suno clip. The server verifies duration.
Must match at least one alternative.
request.source · anyOf 1AlternativePublic audio URL or an accessible Suno clip. The server verifies duration.
Unknown fields are not accepted.
request.source · anyOf 1.typeRequiredaudio_url requires url; suno_clip requires clipId.
request.source · anyOf 1.urlRequiredPublic HTTP(S) audio URL.
Format: uri.
request.source · anyOf 1.lyricsOptionalOptional original lyrics to guide song understanding and transcription.
Maximum characters: 5000.
request.source · anyOf 1.rangeOptionalAudio selection measured in seconds; effective output must be 10–600 seconds.
Unknown fields are not accepted.
request.source · anyOf 1.range.endSecRequiredSelection end in the original audio, later than startSec.
Exclusive lower bound: 0.
request.source · anyOf 1.range.endSecSee schemaExpand this value in the interactive reference.
Exclusive lower bound: 0.
request.source · anyOf 1.range.startSecRequiredInclusive selection start in the original audio.
Minimum: 0.
request.source · anyOf 1.range.startSecSee schemaExpand this value in the interactive reference.
Minimum: 0.
request.source · anyOf 2AlternativePublic audio URL or an accessible Suno clip. The server verifies duration.
Unknown fields are not accepted.
request.source · anyOf 2.clipIdRequiredAccessible Suno clip identifier.
Minimum characters: 1.
request.source · anyOf 2.typeRequiredaudio_url requires url; suno_clip requires clipId.
request.source · anyOf 2.lyricsOptionalOptional original lyrics to guide song understanding and transcription.
Maximum characters: 5000.
request.source · anyOf 2.rangeOptionalAudio selection measured in seconds; effective output must be 10–600 seconds.
Unknown fields are not accepted.
request.source · anyOf 2.range.endSecRequiredSelection end in the original audio, later than startSec.
Exclusive lower bound: 0.
request.source · anyOf 2.range.endSecSee schemaExpand this value in the interactive reference.
Exclusive lower bound: 0.
request.source · anyOf 2.range.startSecRequiredInclusive selection start in the original audio.
Minimum: 0.
request.source · anyOf 2.range.startSecSee schemaExpand this value in the interactive reference.
Minimum: 0.
request.captionsOptionalSubtitle policy; captions do not control whether lyrics are analyzed for planning.
Unknown fields are not accepted.
request.captions.modeRequiredoff, auto or provided. provided requires srtUrl; other modes reject it.
Default: "off".
request.captions.languageOptionalExpected subtitle language (auto, en or zh).
Default: "auto".
request.captions.requiredOptionalWhen true, do not silently deliver without requested captions. Invalid with mode off.
request.captions.srtUrlOptionalPublic SRT URL with cue times relative to the selected audio segment.
Format: uri.
request.configOptionalrequest.config.metadataOptionalFree-form caller metadata, echoed back on read. Stored as opaque JSON; the server never mutates it.
request.config.priorityOptionalTask priority 1-10 (higher = sooner). Default 5.
Minimum: 1. Maximum: 10. Default: 5.
request.config.webhookUrlOptionalURL to receive task.* lifecycle events via the central webhook service.
Format: uri.
request.creativeOptionalCreative intent, independent of output resolution.
Unknown fields are not accepted.
request.creative.modeRequiredauto, story, mood, perform, sing, dance, sing_dance or sing_play. All use the same request envelope.
Default: "auto".
request.creative.briefOptionalDescribe the desired story, subjects, action and mood. Required for a brief-led story.
Maximum characters: 3000.
request.creative.charactersOptionalWhether characters may appear and the desired count.
Unknown fields are not accepted.
request.creative.characters.policyRequiredauto lets the director decide; required mandates characters; forbidden excludes them and conflicts with performance modes or character references.
Default: "auto".
request.creative.characters.countOptionalDesired number of main characters (1 or 2); cannot be combined with forbidden.
Minimum: 1. Maximum: 2. Must match at least one alternative.
request.creative.characters.count · anyOf 1AlternativeDesired number of main characters (1 or 2); cannot be combined with forbidden.
Format: integer. Default: 0.
request.creative.characters.count · anyOf 1See schemaExpand this value in the interactive reference.
Format: integer. Default: 0.
request.creative.characters.count · anyOf 2AlternativeDesired number of main characters (1 or 2); cannot be combined with forbidden.
Minimum: 1. Maximum: 2.
request.creative.characters.count · anyOf 2See schemaExpand this value in the interactive reference.
Minimum: 1. Maximum: 2.
request.creative.optionsOptionalMode-specific choices; irrelevant options are rejected.
Unknown fields are not accepted.
request.creative.options.combinationOptionalRequired for sing_dance or sing_play. alternating uses separate shots. simultaneous requests same-shot actions and currently returns 422 before debit.
Default: "alternating".
request.creative.options.instrumentOptionalInstrument to feature in perform or sing_play.
Minimum characters: 1. Maximum characters: 100.
request.creative.options.storySourceOptionalRequired for story: lyrics uses song evidence; brief uses creative.brief.
Default: "lyrics".
request.creative.styleOptionalVisual treatment passed to director planning and shot generation.
Maximum characters: 1000.
request.maxCreditsOptionalMaximum authorized customer charge. A lower cap rejects the purchase without reducing the requested output.
Minimum: 1.
request.outputOptionalDelivery format. No render tier or provider selector is accepted.
Unknown fields are not accepted.
request.output.aspectRatioOptionalDelivery aspect ratio; defaults to 16:9. Motion references require 16:9 or 9:16.
request.output.resolutionOptional540p, 720p, 1080p or 1440p for every mode. Defaults to 720p. Motion output may be resized from its source resolution.
request.preflightIdOptionalUnexpired preflight identifier bound to this user, API key and exact creative request.
Minimum characters: 1. Maximum characters: 100.
request.quoteIdOptionalMinimum characters: 1. Maximum characters: 100.
request.referencesOptionalOptional media references. Secondary characters, style and location images together may not exceed six.
Unknown fields are not accepted.
request.references.charactersOptionalUp to two ordered identity references; omit to let Omn create characters.
Maximum items: 2.
request.references.characters[]Each itemUp to two ordered identity references; omit to let Omn create characters.
Unknown fields are not accepted.
request.references.characters[].idRequiredUnique character identifier used to bind a motion reference.
Minimum characters: 1. Maximum characters: 64.
request.references.characters[].idSee schemaExpand this value in the interactive reference.
Minimum characters: 1. Maximum characters: 64.
request.references.characters[].imageUrlRequiredPublic HTTP(S) portrait URL.
Format: uri.
request.references.characters[].imageUrlSee schemaExpand this value in the interactive reference.
Format: uri.
request.references.characters[].descriptionOptionalRole and appearance guidance for this character.
Maximum characters: 500.
request.references.characters[].descriptionSee schemaExpand this value in the interactive reference.
Maximum characters: 500.
request.references.locationsOptionalUp to three scene or location image URLs.
Maximum items: 3.
request.references.locations[]Each itemUp to three scene or location image URLs.
Format: uri.
request.references.motionOptionalOptional motion reference for dance only; runtime support is checked before debit.
Unknown fields are not accepted.
request.references.motion.rightsConfirmedRequiredMust be true to confirm you have permission to use the motion reference.
request.references.motion.videoUrlRequiredPublic HTTP(S) motion reference video URL.
Format: uri.
request.references.motion.characterIdOptionalIdentifier of a supplied character that performs the referenced movement; defaults to the first character.
request.references.stylesOptionalUp to three visual style image URLs.
Maximum items: 3.
request.references.styles[]Each itemUp to three visual style image URLs.
Format: uri.
request.titleOptionalMaximum characters: 200.
versionRequiredMust match at least one alternative.
version · anyOf 1AlternativeFormat: integer. Default: 0.
version · 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
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
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
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