mvIdpath · RequiredMV identifier returned by create or read operations.
/api/v1/mv/{mvId}/upgradeAuthentication · x-api-key
Re-render every shot of a completed Omn V1 shot-engine MV at a higher render tier (draft → standard/hd/ultra, standard → hd/ultra, hd → ultra) and recompose it. The director shots, timing and each scene's current rendering (prompt, references, shot type) are kept; a fresh admission pins the target routes. One Task is charged the target tier price for the whole MV; a failed or cancelled upgrade is refunded and the MV keeps its current final. Track progress with GET /api/v1/mv/{mvId}/operations and MVView. On success the upgraded final replaces the delivered one; earlier renderings stay in scene history. Requires an Idempotency-Key header (400 VALIDATION_ERROR without it); repeating a request with the same key returns the original upgrade Task. Rejections are returned before any charge: 404 MV_NOT_FOUND when the MV does not exist for this account. 422 MV_ENGINE_UNSUPPORTED with reason not_eligible when the MV cannot be upgraded: it is not an Omn V1 shot-engine MV, it has burned-in subtitles, it was created for motion transfer (a Premium V2 dance MV with generation.motionReferenceVideo on a 16:9 or 9:16 canvas, even if some or all of its dance shots fell back to dancing without the video; on other aspect ratios the video is not used and does not block an upgrade), its shots are longer than the target tier's routes accept, or the target tier is not higher than the current one. reason reference_images_unsupported when a scene (for example one edited with more reference images) would send more reference images than the target tier's route includes without an approved per-image rate. reason output_profile_unsupported when the target renderTier/resolution/quality combination cannot be delivered; Premium V2 MVs are never upgradable because that contract is standard-tier only. Other admission reasons are the same as for a new omn-v1 purchase (422 MV_ENGINE_UNSUPPORTED or 503 MV_PROVIDER_UNAVAILABLE). 409 MV_PRECONDITION_FAILED with reason mv_not_complete (no delivered final, or not every shot is complete) or operation_in_progress (another operation on this MV is running).
mvIdpath · RequiredMV identifier returned by create or read operations.
Idempotency-Keyheader · RequiredUnique 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.
renderTierRequiredTarget Omn render tier. It must be higher than the MV's current tier (draft → standard/hd/ultra, standard → hd/ultra, hd → ultra).
maxCreditsOptionalSpend ceiling; the upgrade is repriced before direct debit and rejected when it costs more.
Minimum: 0.
qualityOptionalOmn quality; "high" requires renderTier="ultra". Defaults to standard.
resolutionOptionalDelivery resolution at the target tier. Defaults to the MV's current resolution when the tier delivers it, otherwise the tier default (hd 1080p, ultra 720p).
application/json
Unknown fields are not accepted.
creditsRequiredRequiredMinimum: 0.
mvIdRequiredoperationRequiredstatusRequiredtaskIdRequiredapplication/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
Response for status 403 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
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