Skip to main content
POST
/
api
/
product_to_videos
/
gen_image
/
cURL
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>",
  "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).
  • 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

product_url
string<uri>
required

Product URL

Maximum length: 200
type
enum<string>
default:product_anyshot

The type of the product video flow.

  • product_anyshot - Product AnyShot
  • product_avatar - Product Avatar
Available options:
product_anyshot,
product_avatar
image_prompt
string | null

User prompt for generate image description

aspect_ratio
enum<string>
default:16x9

Aspect ratio of the image and video

  • 9x16 - 9X16
  • 16x9 - 16X9
  • 1x1 - 1X1
Available options:
9x16,
16x9,
1x1
override_avatar
string<uuid> | null

Override avatar for the video. Default is null.

product_showcase_url
string | null

The sample diagram url of the product you wish to generate.

webhook_url
string<uri> | null

Webhook URL for status updates. Default is null.

Maximum length: 200

Response

200 - application/json
id
string<uuid>
required
product_url
string<uri>
required

Product URL

Maximum length: 200
status
enum<string>
required

Product to video task status: one of [initializing, image_generating, image_generated, video_generating, video_generated, failed]

Available options:
initializing,
image_generating,
image_generated,
video_generating,
video_generated,
failed
generated_video_url
string
required

The generated video url.

generated_photo_url
string
required

The generated image url.

created_at
string<date-time>
required
updated_at
string<date-time>
required
failed_reason
string
required

The generated image url.

regen_type
string
required

The generated image url.

regen_source_id
string
required

The generated video url.

type
enum<string>
default:product_anyshot

The type of the product video flow.

  • product_anyshot - Product AnyShot
  • product_avatar - Product Avatar
Available options:
product_anyshot,
product_avatar
aspect_ratio
enum<string>
default:16x9

Aspect ratio of the image and video

  • 9x16 - 9X16
  • 16x9 - 16X9
  • 1x1 - 1X1
Available options:
9x16,
16x9,
1x1
override_avatar
string<uuid> | null

Override avatar for the video. Default is null.

motion_style

The motion style of the product avatar when start generate video.The prerequisite is that the image has an avatar.

  • talking - Talking
  • display - Display
Available options:
talking,
display
product_showcase_url
string | null

The sample diagram url of the product you wish to generate.

image_prompt
string | null

User prompt for generate image description

video_prompt
string | null

User prompt for generate video description

webhook_url
string<uri> | null

Webhook URL for status updates. Default is null.

Maximum length: 200
I