Quote a Vidu Direct operation
/api/v1/vidu/quoteAuthentication · x-api-key
Returns the customer charge at 2.0 OmnAPI credits per Vidu credit. MV-specific commercial rates never apply. No media is downloaded or inspected.
Request
Unknown fields are not accepted.
-
Request ·
inputRequiredobjectSelected Vidu Enterprise v2 request body. Use public http(s) media URLs only. callback_url and callbackUrl are rejected; use config.webhookUrl on task creation. The complete operation-by-operation field index and nested shapes are documented at https://docs.omnapi.com/guides/vidu/#complete-input-field-index.
-
Request ·
operationRequired"image-to-video" | "reference-to-video" | "start-end-to-video" | "text-to-video" | "reference-to-image" | "text-to-audio" | "timing-to-audio" | "text-to-speech" | "voice-clone" | "lip-sync" | "motion-sync-v1" | "motion-sync-v2" | "extend-video" | "multi-frame-video" | "upscale-video" | "replace-video" | "digital-human" | "prompt-recommendation" | "template" | "template-story" | "general-film-create" | "general-film-edit" | "general-film-compose" | "ad-film-create" | "ad-film-edit" | "ad-film-compose" | "trending-replicate"Allowlisted Vidu operation. OmnAPI maps this value to a fixed Vidu endpoint; arbitrary paths are never accepted.
-
Request ·
pricingContextOptionalobjectAdditional caller-supplied inputs required to calculate price.
Unknown fields are not accepted.
2 fields
-
Request ·
pricingContext.durationSecOptionalnumberBilling duration for URL-only media operations. OmnAPI does not download or probe the media.
Maximum: 3600. Exclusive lower bound: 0.
-
Request ·
pricingContext.providerCreditCapOptionalnumberVidu-credit authorization reserve for operations without a deterministic published rate card.
Minimum: 1. Maximum: 100000. Multiple of: 1.
-
Responses
200 OK
application/json
-
Response 200 ·
creditsRequirednumber -
Response 200 ·
customerRateRequired2 -
Response 200 ·
operationRequired"image-to-video" | "reference-to-video" | "start-end-to-video" | "text-to-video" | "reference-to-image" | "text-to-audio" | "timing-to-audio" | "text-to-speech" | "voice-clone" | "lip-sync" | "motion-sync-v1" | "motion-sync-v2" | "extend-video" | "multi-frame-video" | "upscale-video" | "replace-video" | "digital-human" | "prompt-recommendation" | "template" | "template-story" | "general-film-create" | "general-film-edit" | "general-film-compose" | "ad-film-create" | "ad-film-edit" | "ad-film-compose" | "trending-replicate"Allowlisted Vidu operation. OmnAPI maps this value to a fixed Vidu endpoint; arbitrary paths are never accepted.
-
Response 200 ·
pricingModeRequired"rate-card" | "authorization-cap" -
Response 200 ·
pricingVersionRequiredstring -
Response 200 ·
publicUsdRequirednumber -
Response 200 ·
viduCreditsRequirednumber -
Response 200 ·
notesOptionalarray<string>1 field
-
Response 200 ·
notes[]Each itemstring
-
400 Bad Request
application/json
-
Response 400 ·
errorRequiredobject3 fields
-
Response 400 ·
error.codeRequiredstringApplication-specific error code (see error catalog)
-
Response 400 ·
error.messageRequiredstringHuman readable error message
-
Response 400 ·
error.detailsOptionalobjectAdditional error details (optional)
-
-
Response 400 ·
successRequiredfalseAlways false for error responses
401 Unauthorized
application/json
-
Response 401 ·
errorRequiredobject3 fields
-
Response 401 ·
error.codeRequiredstringApplication-specific error code (see error catalog)
-
Response 401 ·
error.messageRequiredstringHuman readable error message
-
Response 401 ·
error.detailsOptionalobjectAdditional error details (optional)
-
-
Response 401 ·
successRequiredfalseAlways false for error responses
403 Forbidden
Forbidden: the API key lacks the required scope or its IP policy rejects this request.
application/json
-
Response 403 ·
errorRequiredobject3 fields
-
Response 403 ·
error.codeRequiredstringApplication-specific error code (see error catalog)
-
Response 403 ·
error.messageRequiredstringHuman readable error message
-
Response 403 ·
error.detailsOptionalobjectAdditional error details (optional)
-
-
Response 403 ·
successRequiredfalseAlways false for error responses
429 Too Many Requests
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
-
Response 429 ·
errorRequiredobject3 fields
-
Response 429 ·
error.codeRequiredstringRATE_LIMITED for request and task admission rejections.
-
Response 429 ·
error.messageRequiredstring -
Response 429 ·
error.detailsOptionalobjectOptional 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.
8 fields
-
Response 429 ·
error.details.currentOptionalintegerMinimum: 0.
-
Response 429 ·
error.details.inFlightOptionalintegerMinimum: 0.
-
Response 429 ·
error.details.limitOptionalintegerMinimum: 0.
-
Response 429 ·
error.details.policyOptional"operation" | "query" -
Response 429 ·
error.details.retryAfterSecOptionalintegerMinimum: 1.
-
Response 429 ·
error.details.scopeOptional"user" | "api-key" | "ip" | "apiKey" -
Response 429 ·
error.details.tierOptional"FREE" | "PREMIUM" | "ENTERPRISE" -
Response 429 ·
error.details.typeOptional"rps" | "daily" | "monthly"
-
-
-
Response 429 ·
successRequiredfalseDefault: false.
500 Internal Server Error
application/json
-
Response 500 ·
errorRequiredobject3 fields
-
Response 500 ·
error.codeRequiredstringApplication-specific error code (see error catalog)
-
Response 500 ·
error.messageRequiredstringHuman readable error message
-
Response 500 ·
error.detailsOptionalobjectAdditional error details (optional)
-
-
Response 500 ·
successRequiredfalseAlways false for error responses
503 Service Unavailable
application/json
-
Response 503 ·
errorRequiredobject3 fields
-
Response 503 ·
error.codeRequiredstringApplication-specific error code (see error catalog)
-
Response 503 ·
error.messageRequiredstringHuman readable error message
-
Response 503 ·
error.detailsOptionalobjectAdditional error details (optional)
-
-
Response 503 ·
successRequiredfalseAlways false for error responses