video-generate

Create a looping 360-degree product video

Animates one product image through a complete turntable revolution and returns to the starting pose so the result loops cleanly. Video generation runs asynchronously. Poll GET /v1/generations/{generation_id} with the returned generation_id until the generation completes or fails.

post/v2/tool/product-360-video

Query parameters

dry_runboolean

When true, the request is validated and priced but not run: nothing is generated, stored, or billed, and no safety review is performed. The response is a PriceQuote object instead of the usual response for this endpoint. Send exactly the request you would send to generate, so the quote reflects the same options.

Request body

direction'clockwise' | 'counter-clockwise' required

Direction the product rotates around its vertical axis.

product_descriptionstring

Optional factual description of the product in the source image.

resolution'480p' | '720p' | '1080p'

The resolution tier of the generated video.

durationinteger

The length of the generated video in seconds. When omitted, the model picks the best duration for the prompt ("auto").

target_collection_idstring

A collection you can write to, by its URL-safe base64 collection id. The output video is added to it when the request completes.

Example request

{
  "duration": 5,
  "target_collection_id": "target_collection_id",
  "image_asset_identifier": {
    "asset_type": "RESPONSE",
    "asset_id": "7uS_VESkRI6O3-sVgHQp_A"
  },
  "product_description": "product_description",
  "resolution": null,
  "direction": null
}

Response

Product video accepted for asynchronous processing.

generation_idstring required

URL-safe base64 ID of the accepted generation. Accepted by the GET /v1/generations/{generation_id} polling endpoint.

createdstring date-time required

The time the request was accepted.

Example response

{
  "generation_id": "generation_id",
  "created": "2000-01-23T04:56:07+00:00"
}

Changes

Changed in 3 of the 33 revisions of this API.6

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the new optional query request parameter dry_run

      new-optional-request-parameter

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • ○

      endpoint added

      endpoint-added

    This revision also has 13 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog