mvIdpath · RequiredMV identifier returned by create or read operations.
/api/v2/mv/{mvId}/final-restoreAuthentication · x-api-key
Omn V1 independent product API. Independent Omn request, planning and delivery semantics.
Scope: task:read
Billing and effects: Free preview of the last retained delivered video.
Recovery: Read the current resource before retrying a mutation; do not assume this operation supports Idempotency-Key.
Follow this operation’s workflow → · All permission rulesOmn music video endpoint. Check capabilities and preflight before purchasing. How Music Video requests work
mvIdpath · RequiredMV identifier returned by create or read operations.
Read the HTTP status and body together. A receipt confirms acceptance; poll the returned Task or product view for terminal execution and media delivery. Example IDs and credit amounts are illustrative, not a price quote.
Complete JSON example (optional fields may be omitted).
{ "mvId": "018f47a0-7b38-7000-8000-000000000002", "finalId": "018f47a0-7b38-7000-8000-000000000003", "contractVersion": "v2", "expectedVersion": 2, "snapshotSha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "sourceVersion": 1, "sceneCount": 2, "changedScenes": [ 0, 1 ], "durationSec": 16, "retainedUntil": "2026-11-03T00:00:00.000Z", "videoUrl": "https://media.example.com/last-final.mp4", "creditsRequired": 0}Complete JSON example (optional fields may be omitted).
{ "success": false, "error": { "code": "INVALID_API_KEY", "message": "Invalid API key" }}application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
Only the listed fields are accepted in this object.
changedScenesRequiredZero-based scene indices whose current selections would change.
changedScenes[]Each itemUse a complete option below; the value must satisfy at least one option.
Option 1 — stringOptionNumeric string accepted by coercion; the converted value must satisfy the numeric constraints. Prefer a JSON number.
Format: integer.
Option 2 — integerOptioncontractVersionRequiredPublic contract version used to interpret this resource. Do not combine field names from different versions.
creditsRequiredRequiredRestoring existing scene selections is free and creates no Task.
durationSecRequiredDuration in seconds for the containing media, selection or operation. Use validated duration when authorizing a purchase.
expectedVersionRequiredCurrent project version; submit it unchanged when confirming this preview.
Use a complete option below; the value must satisfy at least one option.
Option 1 — stringOptionNumeric string accepted by coercion; the converted value must satisfy the numeric constraints. Prefer a JSON number.
Format: integer.
Option 2 — integerOptionCurrent project version; submit it unchanged when confirming this preview.
finalIdRequiredIdentifier of the retained delivered video reused by this restore.
mvIdRequiredMusic video identifier. Use this returned value for subsequent video reads and edits; keep the Task ID separately.
retainedUntilRequiredEarliest asset retention deadline. Restore does not extend it.
sceneCountRequiredTotal number of scene selections in the complete delivered video.
Use a complete option below; the value must satisfy at least one option.
Option 1 — stringOptionNumeric string accepted by coercion; the converted value must satisfy the numeric constraints. Prefer a JSON number.
Format: integer.
Option 2 — integerOptionTotal number of scene selections in the complete delivered video.
snapshotSha256RequiredConfirmation fingerprint for this final, its complete scene selections and retention records; not a video byte hash.
sourceVersionRequiredVersion of the source scenes used to assess whether a final output is current.
Use a complete option below; the value must satisfy at least one option.
Option 1 — string | integerOptionUse a complete option below; the value must satisfy at least one option.
Option 1 — stringOptionNumeric string accepted by coercion; the converted value must satisfy the numeric constraints. Prefer a JSON number.
Format: integer.
Option 2 — integerOptionOption 2 — nullOptionvideoUrlRequiredShort-lived preview URL for the last delivered video. Do not send the API key when downloading.
creativeOptionalNormalized creative intent for this operation. Interpret it using the resource contractVersion and its documented creative modes.
Use a complete option below; the value must satisfy at least one option.
Option 1 — preset = "auto"OptionOnly the listed fields are accepted in this object.
creative.presetRequiredNormalized creative preset for this stored plan. Interpret it within its API contract version.
creative.singingOptionalInterpreted singing requirement or permission in this creative plan; explicit forbidden intent must remain forbidden.
Default: "allowed".
Option 2 — preset = "mood"OptionOnly the listed fields are accepted in this object.
creative.presetRequiredNormalized creative preset for this stored plan. Interpret it within its API contract version.
creative.singingOptionalInterpreted singing requirement or permission in this creative plan; explicit forbidden intent must remain forbidden.
Default: "allowed".
Option 3 — preset = "story"; storySource = "lyrics" | "prompt"OptionOnly the listed fields are accepted in this object.
creative.presetRequiredNormalized creative preset for this stored plan. Interpret it within its API contract version.
creative.storySourceRequiredSource of the story direction: lyrics uses the song text; prompt uses the supplied creative brief.
Default: "lyrics".
creative.singingOptionalInterpreted singing requirement or permission in this creative plan; explicit forbidden intent must remain forbidden.
Default: "allowed".
Option 4 — preset = "sing" | "sing_perform" (+4 more values)OptionOnly the listed fields are accepted in this object.
creative.presetRequiredNormalized creative preset for this stored plan. Interpret it within its API contract version.
Default: "sing".
Option 5 — mode = "auto" | "story" (+6 more values)OptionCreative intent, independent of output resolution.
Only the listed fields are accepted in this object.
creative.modeRequiredauto, story, mood, perform, sing, dance, sing_dance or sing_play. All use the same request envelope.
Default: "auto".
creative.briefOptionalDescribe the desired story, subjects, action and mood. Required for a brief-led story.
Maximum characters: 3000.
creative.charactersOptionalWhether characters may appear and the desired count.
Only the listed fields are accepted in this object.
creative.characters.policyRequiredauto lets the director decide; required mandates characters; forbidden excludes them and conflicts with performance modes or character references.
Default: "auto".
creative.characters.countOptionalDesired number of main characters (1 or 2); cannot be combined with forbidden.
Minimum: 1. Maximum: 2. Use a complete option below; the value must satisfy at least one option.
Option 1 — stringOptionNumeric string accepted by coercion; the converted value must satisfy the numeric constraints (minimum 1, maximum 2). Prefer a JSON number.
Format: integer.
Option 2 — integerOptionDesired number of main characters (1 or 2); cannot be combined with forbidden.
Minimum: 1. Maximum: 2.
creative.continuityOptionalOptional reuse of a creative project/revision. Omit for an independent request; selected revisions must belong to the same audio and project.
Only the listed fields are accepted in this object.
creative.continuity.boundaryPolicyOptionalHow the selected range is presented: excerpt preserves its relationship to the song; standalone treats it as an independent piece. Default excerpt.
Default: "standalone".
creative.continuity.projectIdOptionalCreative project identifier returned by the project list. Reuse only a project owned by your account and matching this audio.
Minimum characters: 1. Maximum characters: 128.
creative.continuity.revisionIdOptionalCreative revision identifier returned by the project list. Reusing it preserves the chosen direction; an incompatible audio source or mode returns a conflict.
Minimum characters: 1. Maximum characters: 128.
creative.continuity.sourceScopeOptionalDeclared source extent: full_song, fragment or unknown. Default unknown; this declaration does not replace media validation.
Default: "full_song".
creative.optionsOptionalMode-specific choices; irrelevant options are rejected.
Only the listed fields are accepted in this object.
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".
creative.options.instrumentOptionalInstrument to feature in perform or sing_play.
Minimum characters: 1. Maximum characters: 100.
creative.options.storySourceOptionalRequired for story: lyrics uses song evidence; brief uses creative.brief.
Default: "lyrics".
creative.styleOptionalVisual treatment passed to director planning and shot generation.
Maximum characters: 1000.
outputOptionalOperation-specific output. Use the typed fields shown here. If this is an open JSON object, follow the selected product operation reference; for Tasks prefer resources, and for Vidu see /guides/vidu-operations/.
Only the listed fields are accepted in this object.
output.aspectRatioOptionalDelivery aspect ratio; defaults to 16:9. Motion references require 16:9 or 9:16.
output.postprocessOptionalOptional video post-processing preferences for the requested MV output.
Only the listed fields are accepted in this object.
output.postprocess.modeOptionalPost-processing mode; auto selects the policy automatically.
Default: "auto".
output.postprocess.priorityOptionalPost-processing preference: balanced, speed, appearance preservation, or detail stability.
Default: "balanced".
output.renderTierOptionalOmn V1 only. draft delivers 540p; standard 720p; hd 1080p; ultra 720p, 1080p or 1440p. When omitted: resolution=1440p or quality="high" selects ultra, standard quality selects draft at 540p and standard at 720p and hd at 1080p. Native shot rendering offers these tiers for both managed versions subject to capability and preflight checks. Dance motion transfer supports draft or standard only.
output.resolutionOptional540p, 720p, 1080p or 1440p for every mode. Defaults to 720p. Motion output may be resized from its source resolution.
postprocessOptionalResolved video post-processing policy, when available for this MV.
Only the listed fields are accepted in this object.
postprocess.confidenceRequiredSelection basis confidence: explicit choice, matched rule, or default.
Default: "explicit".
postprocess.intentCategoryRequiredRecognized creative-intent category, or null when none applies.
May be null.
postprocess.policyVersionRequiredVersion of the policy used to select post-processing.
postprocess.reasonRequiredExplanation of why this post-processing mode was selected.
postprocess.reasonCodeRequiredMachine-readable reason for the selected post-processing mode.
postprocess.requestedModeRequiredRequested post-processing mode, including auto for automatic selection.
Default: "auto".
postprocess.selectedModeRequiredResolved post-processing mode: tiny-long, tc2, or full.
Default: "tiny-long".
postprocess.signalsRequiredCreative-intent signals considered by the selection policy.
postprocess.signals[]Each itempostprocess.sourceRequiredSelection basis: explicit mode, priority preference, creative intent, or default.
Default: "manual".
requestedOutputOptionalOutput settings requested at purchase. Compare with the delivered output when reviewing the result.
Only the listed fields are accepted in this object.
requestedOutput.aspectRatioOptionalDelivery aspect ratio; defaults to 16:9. Motion references require 16:9 or 9:16.
requestedOutput.postprocessOptionalOptional video post-processing preferences for the requested MV output.
Only the listed fields are accepted in this object.
requestedOutput.postprocess.modeOptionalPost-processing mode; auto selects the policy automatically.
Default: "auto".
requestedOutput.postprocess.priorityOptionalPost-processing preference: balanced, speed, appearance preservation, or detail stability.
Default: "balanced".
requestedOutput.renderTierOptionalOmn V1 only. draft delivers 540p; standard 720p; hd 1080p; ultra 720p, 1080p or 1440p. When omitted: resolution=1440p or quality="high" selects ultra, standard quality selects draft at 540p and standard at 720p and hd at 1080p. Native shot rendering offers these tiers for both managed versions subject to capability and preflight checks. Dance motion transfer supports draft or standard only.
requestedOutput.resolutionOptional540p, 720p, 1080p or 1440p for every mode. Defaults to 720p. Motion output may be resized from its source resolution.
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
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
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredRATE_LIMITED for request and task admission rejections.
error.messageRequiredHuman-readable explanation. Wording may change; use the machine-readable code for programmatic decisions.
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details.currentOptionalCurrent count for the rate-limit window identified by policy and scope.
Minimum: 0.
error.details.inFlightOptionalCurrent accepted tasks counted against the relevant account or API-key admission limit.
Minimum: 0.
error.details.limitOptionalMaximum count allowed by this response context. A limit is not a throughput guarantee.
Minimum: 0.
error.details.policyOptionalAllowance bucket: query for resource reads, operation for task-producing or operation requests. See the rate-limit response headers.
error.details.retryAfterSecOptionalSuggested delay in seconds before another request. Honor the Retry-After header when present; use bounded backoff.
Minimum: 1.
error.details.scopeOptionalEntity whose allowance was exceeded, such as the user, API key or IP address.
error.details.tierOptionalAccount allowance tier used for this admission or rate-limit decision.
error.details.typeOptionalAdmission limit that rejected the request: rps (continuously refilled requests-per-second bucket), daily or monthly UTC request budget. Interpret with policy, scope and retryAfterSec.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredWhether this response reports a successful action; false accompanies the structured error object.
Default: false.
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses