API reference
Create a video generation task
/v1/videosPersistent background workers handle dispatch, polling, billing settlement, and saving. Client queries only observe status and do not trigger settlement. Ordinary and persistent requests follow their respective model/managed-frame/quote constraints. For unknown/submission_state_unknown, never blindly resend with a different request key.
Ordinary and persistent workflows
Ordinary videos use the model's public HTTPS inputs. Persistent videos use retention=persistent, a complete preset from the capability catalog, managed frames, and a valid quote. Do not mix workspace frame fields into ordinary requests or assemble parameters from different presets into a new combination.
Background processing advances execution, settlement, and saving; client queries only observe records. Estimated reservations may require an additional charge or a refund. If saving fails after success, retry archival of the original result rather than generating again. Recover unknown submissions with the original request key first; see Asynchronous tasks and idempotency.
Authentication and permissions
Use your current GloopAPI key. Available models, capabilities and permissions depend on its catalog and the endpoint documentation.
Authorization: Bearer $GLOOP_API_KEYAuthentication schemes: BearerAuth
Request
Request headers
Idempotency-KeystringRequired- Minimum length
1- Maximum length
191- Pattern
"^[\\x20-\\x7E]{1,191}$"
Request body · application/json
- Type
- object
- Required fields
modelprompt- Additional properties
- false
Request body required
modestringOptionalRequired for persistent.
- Enum
["text_to_video","image_to_video"]
retentionstringOptionalpersistent uses the persistent workspace; omission creates an ordinary task.
quote_idstringOptionalNew persistent requests must first confirm a valid quote returned by video-quotes.
start_frameobjectOptionalRequired for persistent image-to-video: a managed file belonging to the same key. Prohibited for text-to-video.
start_frame child fields (1)
file_idstringRequiredPublic ID of a managed file for the same account and key.
allOf branch 1
Type: object
Required in this branch: file_id
file_idstringRequiredPublic ID of a managed file for the same account and key.
end_frameobjectOptionalOptional final frame for persistent; the capability must support it.
end_frame child fields (1)
file_idstringRequiredPublic ID of a managed file for the same account and key.
allOf branch 1
Type: object
Required in this branch: file_id
file_idstringRequiredPublic ID of a managed file for the same account and key.
webhook_endpoint_idstringOptionalOrdinary tasks may reference a receiver configured in the console; prohibited for persistent.
modelstringRequiredPublic model ID from the current key's catalog; does not guarantee that a historical model remains available.
promptstringRequiredGeneration prompt.
- Minimum length
1- Maximum length
2500
durationintegerOptionalModel-specific duration in seconds. Use the complete combination from video-models mode.presets, not a Cartesian product. Wan Turbo does not support this field; there is no uniform default.
image_urlstringOptionalModel-specific public HTTPS first frame for ordinary tasks only; prohibited for persistent.
end_image_urlstringOptionalModel-specific public HTTPS final frame for ordinary tasks only; prohibited for persistent.
resolutionstringOptionalResolution value in the model preset.
aspect_ratiostringOptionalAspect ratio value in the model preset.
Model-dependent; use the mode's audio policy and presets. Do not assume every model generates audio.
Responses and errors
HTTP 202
The task was accepted; this does not mean it is complete.
application/json
- Type
- object
- Required fields
idmodelstatuscreated_at
updated_atintegerOptionalLast update time in Unix seconds.
retentionstringOptionalTask result retention policy; persistent is the persistent workspace.
inputobjectOptionalOriginal task input or tool contract input.
input child fields (14)
modestringOptionalRequired for persistent.
- Enum
["text_to_video","image_to_video"]
retentionstringOptionalpersistent uses the persistent workspace; omission creates an ordinary task.
quote_idstringOptionalNew persistent requests must first confirm a valid quote returned by video-quotes.
start_frameobjectOptionalRequired for persistent image-to-video: a managed file belonging to the same key. Prohibited for text-to-video.
start_frame child fields (1)
file_idstringRequiredPublic ID of a managed file for the same account and key.
allOf branch 1
Type: object
Required in this branch: file_id
file_idstringRequiredPublic ID of a managed file for the same account and key.
end_frameobjectOptionalOptional final frame for persistent; the capability must support it.
end_frame child fields (1)
file_idstringRequiredPublic ID of a managed file for the same account and key.
allOf branch 1
Type: object
Required in this branch: file_id
file_idstringRequiredPublic ID of a managed file for the same account and key.
webhook_endpoint_idstringOptionalOrdinary tasks may reference a receiver configured in the console; prohibited for persistent.
modelstringRequiredPublic model ID from the current key's catalog; does not guarantee that a historical model remains available.
promptstringRequiredGeneration prompt.
- Minimum length
1- Maximum length
2500
durationintegerOptionalModel-specific duration in seconds. Use the complete combination from video-models mode.presets, not a Cartesian product. Wan Turbo does not support this field; there is no uniform default.
image_urlstringOptionalModel-specific public HTTPS first frame for ordinary tasks only; prohibited for persistent.
end_image_urlstringOptionalModel-specific public HTTPS final frame for ordinary tasks only; prohibited for persistent.
resolutionstringOptionalResolution value in the model preset.
aspect_ratiostringOptionalAspect ratio value in the model preset.
Model-dependent; use the mode's audio policy and presets. Do not assume every model generates audio.
allOf branch 1
Type: object
Required in this branch: model, prompt
Additional properties:
falsemodestringOptionalRequired for persistent.
- Enum
["text_to_video","image_to_video"]
retentionstringOptionalpersistent uses the persistent workspace; omission creates an ordinary task.
quote_idstringOptionalNew persistent requests must first confirm a valid quote returned by video-quotes.
start_frameobjectOptionalRequired for persistent image-to-video: a managed file belonging to the same key. Prohibited for text-to-video.
start_frame child fields (1)
file_idstringRequiredPublic ID of a managed file for the same account and key.
allOf branch 1
Type: object
Required in this branch: file_id
file_idstringRequiredPublic ID of a managed file for the same account and key.
end_frameobjectOptionalOptional final frame for persistent; the capability must support it.
end_frame child fields (1)
file_idstringRequiredPublic ID of a managed file for the same account and key.
allOf branch 1
Type: object
Required in this branch: file_id
file_idstringRequiredPublic ID of a managed file for the same account and key.
webhook_endpoint_idstringOptionalOrdinary tasks may reference a receiver configured in the console; prohibited for persistent.
modelstringRequiredPublic model ID from the current key's catalog; does not guarantee that a historical model remains available.
promptstringRequiredGeneration prompt.
- Minimum length
1- Maximum length
2500
durationintegerOptionalModel-specific duration in seconds. Use the complete combination from video-models mode.presets, not a Cartesian product. Wan Turbo does not support this field; there is no uniform default.
image_urlstringOptionalModel-specific public HTTPS first frame for ordinary tasks only; prohibited for persistent.
end_image_urlstringOptionalModel-specific public HTTPS final frame for ordinary tasks only; prohibited for persistent.
resolutionstringOptionalResolution value in the model preset.
aspect_ratiostringOptionalAspect ratio value in the model preset.
Model-dependent; use the mode's audio policy and presets. Do not assume every model generates audio.
billingobjectOptionalIndependent billing status; do not substitute generation status.
billing child fields (7)
currencystringRequiredQuote/billing currency.
error_codestringOptionalPublic error code usable for branching logic.
statusstringRequiredCurrent object status; evaluate separately from billing and the saving stage.
reserved_quotaintegerRequiredReserved quota in platform quota units, not a USD amount.
Final charge in platform quota units; null means not yet determined.
reserved_amountstringRequiredMaximum reservation amount as a string in the quote currency.
Final charge as a string; null means not settled.
allOf branch 1
Type: object
Required in this branch: currency, status, reserved_quota, final_quota, reserved_amount, final_amount
currencystringRequiredQuote/billing currency.
error_codestringOptionalPublic error code usable for branching logic.
statusstringRequiredCurrent object status; evaluate separately from billing and the saving stage.
reserved_quotaintegerRequiredReserved quota in platform quota units, not a USD amount.
Final charge in platform quota units; null means not yet determined.
reserved_amountstringRequiredMaximum reservation amount as a string in the quote currency.
Final charge as a string; null means not settled.
storageobjectOptionalIndependent file saving status.
storage child fields (3)
file_idstringOptionalPublic ID of a managed file for the same account and key.
statusstringRequiredCurrent object status; evaluate separately from billing and the saving stage.
error_codestringOptionalPublic error code usable for branching logic.
allOf branch 1
Type: object
Required in this branch: status
file_idstringOptionalPublic ID of a managed file for the same account and key.
statusstringRequiredCurrent object status; evaluate separately from billing and the saving stage.
error_codestringOptionalPublic error code usable for branching logic.
availabilityobjectOptionalCurrent available actions.
availability child fields (4)
can_cancelbooleanRequiredWhether the current task allows requesting cancellation.
can_deletebooleanRequiredWhether the current task allows deletion.
can_retry_storagebooleanRequiredWhether the current task allows retrying a save.
reasonstringOptionalPublic reason for an unavailable action or billing review.
allOf branch 1
Type: object
Required in this branch: can_cancel, can_delete, can_retry_storage
can_cancelbooleanRequiredWhether the current task allows requesting cancellation.
can_deletebooleanRequiredWhether the current task allows deletion.
can_retry_storagebooleanRequiredWhether the current task allows retrying a save.
reasonstringOptionalPublic reason for an unavailable action or billing review.
idstringRequiredPublic identifier of this object, used for its corresponding detail path.
modelstringRequiredPublic model ID from the current key's catalog.
statusstringRequiredOrdinary and persistent task status; may be pending_dispatch/submitting/queued/processing/succeeded/failed/cancelled/unknown. A terminal state does not mean billing is settled or archival is ready.
created_atintegerRequiredCreation time in Unix seconds.
resultobjectOptionalMetadata for prepared results; may be absent before completion.
result child fields (8)
file_idstringOptionalPublic ID of a managed file for the same account and key.
storage_statusstringOptionalFile archival status; managed downloads are only guaranteed after ready.
deliverystringOptionalauthenticated_content means the content path must be used; do not assume a direct URL exists.
content_pathstringOptionalPlatform-authenticated content path; request binary content with the same key.
urlstringOptionalAccess URL for a result or reference; signed URLs are only valid briefly.
content_typestringOptionalResult MIME type.
file_namestringOptionalPublic download filename.
file_sizeintegerOptionalResult file size in bytes.
allOf branch 1
Type: object
file_idstringOptionalPublic ID of a managed file for the same account and key.
storage_statusstringOptionalFile archival status; managed downloads are only guaranteed after ready.
deliverystringOptionalauthenticated_content means the content path must be used; do not assume a direct URL exists.
content_pathstringOptionalPlatform-authenticated content path; request binary content with the same key.
urlstringOptionalAccess URL for a result or reference; signed URLs are only valid briefly.
content_typestringOptionalResult MIME type.
file_namestringOptionalPublic download filename.
file_sizeintegerOptionalResult file size in bytes.
errorstringOptionalPublic failure category or error object.
HTTP 400
Invalid request parameters.
application/json
- Type
- object
- Required fields
error
errorobjectRequired
HTTP 401
The key is missing, invalid, expired, or revoked.
application/json
- Type
- object
- Required fields
error
errorobjectRequirederror child fields (4)
codestringOptionalmessagestringOptionaltypestringOptionalrequest_idstringOptional
HTTP 402
Insufficient available account or key quota.
application/json
- Type
- object
- Required fields
error
errorobjectRequired
HTTP 403
The current key lacks permission.
application/json
- Type
- object
- Required fields
error
errorobjectRequired
HTTP 409
Request conflict, not ready, or submission unknown. Query the original record first; never blindly resend.
application/json
- Type
- object
- Required fields
error
errorobjectRequired
HTTP 429
Request/queue rate limit.
application/json
- Type
- object
- Required fields
error
errorobjectRequirederror child fields (4)
codestringOptionalmessagestringOptionaltypestringOptionalrequest_idstringOptional
HTTP 500
Internal authentication or data storage failure.
application/json
- Type
- object
- Required fields
error
errorobjectRequirederror child fields (4)
codestringOptionalmessagestringOptionaltypestringOptionalrequest_idstringOptional
HTTP 503
Service, storage, pricing, or model temporarily unavailable.
application/json
- Type
- object
- Required fields
error
errorobjectRequired