POST
/
api
/
product_to_videos
/
gen_image
/
curl --request POST \
  --url https://api.creatify.ai/api/product_to_videos/gen_image/ \
  --header 'Content-Type: application/json' \
  --header 'X-API-ID: <api-key>' \
  --header 'X-API-KEY: <api-key>' \
  --data '{
  "type": "product_anyshot",
  "product_url": "<string>",
  "image_prompt": "<string>",
  "aspect_ratio": "9x16",
  "override_avatar": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "product_showcase_url": "<string>",
  "webhook_url": "<string>"
}'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "type": "product_anyshot",
  "product_url": "<string>",
  "aspect_ratio": "9x16",
  "override_avatar": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "motion_style": "talking",
  "product_showcase_url": "<string>",
  "image_prompt": "<string>",
  "video_prompt": "<string>",
  "status": "initializing",
  "generated_video_url": "<string>",
  "generated_photo_url": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "webhook_url": "<string>",
  "failed_reason": "<string>",
  "regen_type": "<string>",
  "regen_source_id": "<string>"
}

About Request Data Structure of Webhook

When the gen_image interface is requested, if the webhook_url is passed in the parameters, the program will initiate a POST request to this network address when the task succeeds or fails, with the following content:

{
  "id": "<string>",
  "type": "product_anyshot",
  "product_url": "<string>",
  "aspect_ratio": "16x9",
  "override_avatar": "<string>",
  "motion_style": "<string>",
  "product_showcase_url": "<string>",
  "image_prompt": "<string>",
  "video_prompt": "<string>",
  "status": "image_generated",
  "generated_video_url": "<string>",
  "generated_photo_url": "<string>",
  "created_at": "2025-05-30T04:11:05.449603-07:00",
  "updated_at": "2025-05-30T04:11:05.751592-07:00",
  "webhook_url": "<string>"
}

Arguments:

  • id (string): Unique identifier of the ProductToVideo task.
  • failed_reason (string): Explanation for failure if the task has failed.
  • type (string): Type of product video generation flow. One of: product_anyshot, product_avatar.
  • product_url (string): URL of the product being showcased or promoted.
  • aspect_ratio (string): Expected aspect ratio of the generated media. One of: 1x1, 16x9, etc.
  • override_avatar (string): ID of the creator/avatar to override the default (optional).
  • motion_style (string): Style of motion used in avatar videos. One of: talking, display, or blank.
  • product_showcase_url (string): The sample diagram url of the product you wish to generate.
  • image_prompt (string): User-defined prompt used to guide image generation.
  • video_prompt (string): User-defined prompt used to guide video generation.
  • status (string): Current status of the task. One of: initializing, image_generating, image_generated, video_generating, video_generated, failed.
  • generated_video_url (string): URL of the generated video, if available.
  • generated_photo_url (string): URL of the generated image, if available.
  • created_at (string): Timestamp of task creation (ISO 8601 format).
  • updated_at (string): Timestamp of the latest task update (ISO 8601 format).
  • webhook_url (string): Optional webhook callback URL to notify upon task completion.

About override_avatar parameter

When using ‘gen_image’ API, if you choose to create an image with type set as “product_avatar”, you can select an avatar. The ‘override_avatar’ avatar_id is passed in the parameters, we will use it as the avatar of the video. If the ‘override_avatar’ is not passed, we will use the matched avatar for the video.

avatar_id is the unique identifier of an avatar. You can get the avatar_id by calling the Get avatar endpoint.

The value of override_avatar must be a valid avatar_id, which can be obtained by calling the Get Avatar API.

For “product_anyshot” type, the override_avatar is not required and will be ignored.

About product_showcase_url parameter

When using ‘gen_image’ API, you can upload an example image of the product you expect to generate.

When the type is “product_avatar”, you can upload a custom avatar image.

When the type is “product_anyshot”, you can upload a scene image that you want to generate.

🧪 Example Requests

1. type = product_avatar (with override_avatar)

curl --request POST \
  --url https://api.creatify.ai/api/product_to_videos/gen_image/ \
  --header 'Content-Type: application/json' \
  --header 'X-API-ID: your-api-id' \
  --header 'X-API-KEY: your-api-key'\
  --data '{
    "type": "product_avatar",
    "product_url": "https://example.com/products/bag123.jpg",
    "image_prompt": "high-quality lifestyle image with model",
    "aspect_ratio": "16x9",
    "product_showcase_url": "",
    "override_avatar": "473d32298abf4ad9aad31c4ecded37e6",
    "webhook_url": "https://your.domain.com/webhook"
}'

2. type = product_anyshot (no override_avatar needed)

curl --request POST \
  --url https://api.creatify.ai/api/product_to_videos/gen_image/ \
  --header 'Content-Type: application/json' \
  --header 'X-API-ID: your-api-id' \
  --header 'X-API-KEY: your-api-key'\
  --data '{
    "type": "product_anyshot",
    "product_url": "https://example.com/products/bag456.jpg",
    "image_prompt": "clean background with natural shadows",
    "aspect_ratio": "1x1",
    "webhook_url": "https://your.domain.com/webhook"
}'

Authorizations

X-API-ID
string
header
required

API ID, from your settings page.

X-API-KEY
string
header
required

API Key, from your settings page.

Body

Response

200 - application/json

The response is of type object.