You can use the following APIs to create videos from images with various effects and audio options.
The resources (image, video, voice) generated by our API are valid for 7 days. Please save the relevant resources as soon as possible to prevent expiration.

Rates

Plan720p1080p4k
Image-to-Video (5s)20 credits/video25 credits/video30 credits/video
Image-to-Video (10s)40 credits/video50 credits/video60 credits/video
Only Audio5s10s
Image-to-Video (only audio)5 credits/video10 credits/video

Create Image-to-Video

POST https://openapi.akool.com/api/open/v4/image2Video/createBySourcePrompt
Request Headers
ParameterValueDescription
AuthorizationBearer {token}Your API Key used for request authorization.getToken
Body Attributes
ParameterTypeRequiredDescription
image_urlStringtrueImage URL to be animated
promptStringtruePrompt text describing how to animate the image
negative_promptStringtruePrompt text describing what to avoid in the animation
extend_promptBooleanfalseWhether to use algorithm default extended prompts
resolutionStringtrueResolution options: 720p, 1080p, 4k
audio_urlStringfalseAudio URL, required when audio_type = 2
audio_typeIntegertrueAudio type: 1 = AI generate, 2 = user custom upload, 3 = none (no audio)
video_lengthIntegertrueVideo duration in seconds, options: 5, 10 (10s only available for pro and above subscriptions)
is_premium_modelBooleanfalseWhether to use premium video model for faster generation (pro and above subscriptions only)
effect_codeStringfalseEffect code: if specified, prompt content will be ignored.getEffectCode
webhookurlStringfalseCallback URL for POST requests
Response Attributes
ParameterTypeDescription
codeIntegerInterface returns business status code (1000:success)
msgStringInterface returns status information
dataObjectResponse data object
- create_timeLongCreation timestamp
- uidIntegerUser ID
- team_idStringTeam ID
- statusIntegerTask status: 1=queueing, 2=processing, 3=completed, 4=failed
- webhookUrlStringCallback URL
- resolutionStringVideo resolution
- file_nameStringOutput file name
- effect_nameStringEffect name
- _idStringDocument ID
- image_urlStringInput image URL
- promptStringAnimation prompt
- negative_promptStringNegative prompt
- extend_promptBooleanWhether extended prompts were used
- audio_typeIntegerAudio type used
- audio_urlStringAudio URL used
- deduction_creditIntegerCredits deducted
- effect_codeStringEffect code used
Example Body
{
  "image_url": "https://drz0f01yeq1cx.cloudfront.net/1753772478686-9524-b6e4169bb1b44d5d8361936b3f6eddb8.png",
  "prompt": "Animate this image with smooth camera movement and subtle object motion.",
  "negative_prompt": "blurry, distorted hands, missing fingers, unnatural pose, double hands, extra limbs, bad anatomy, low quality, cartoonish, exaggerated features, open mouth, aggressive expression, modern clothing, pixelated, vibrant colors, overexposed, flickering, blurry details, subtitles, logo, style, artwork, painting, picture, static, overall grayish, worst quality, JPEG compression artifacts, ugly, incomplete, extra fingers, poorly drawn hands, poorly drawn face, deformed, disfigured, malformed limbs, fused fingers, static characters, messy background, three legs, crowded background, walking backwards",
  "extend_prompt": true,
  "resolution": "4k",
  "audio_url": "https://drz0f01yeq1cx.cloudfront.net/1753772497950-9213-1749809724426audio.mp3",
  "audio_type": 2,
  "video_length": 10,
  "is_premium_model": true,
  "effect_code": "squish_89244231312",
  "webhookurl": "http://localhost:3000/demo"
}
Request
curl --location 'https://openapi.akool.com/api/open/v4/image2Video/createBySourcePrompt' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
  "image_url": "https://drz0f01yeq1cx.cloudfront.net/1753772478686-9524-b6e4169bb1b44d5d8361936b3f6eddb8.png",
  "prompt": "Animate this image with smooth camera movement and subtle object motion.",
  "negative_prompt": "blurry, distorted hands, missing fingers, unnatural pose, double hands, extra limbs, bad anatomy, low quality, cartoonish, exaggerated features, open mouth, aggressive expression, modern clothing, pixelated, vibrant colors, overexposed, flickering, blurry details, subtitles, logo, style, artwork, painting, picture, static, overall grayish, worst quality, JPEG compression artifacts, ugly, incomplete, extra fingers, poorly drawn hands, poorly drawn face, deformed, disfigured, malformed limbs, fused fingers, static characters, messy background, three legs, crowded background, walking backwards",
  "extend_prompt": true,
  "resolution": "4k",
  "audio_url": "https://drz0f01yeq1cx.cloudfront.net/1753772497950-9213-1749809724426audio.mp3",
  "audio_type": 2,
  "video_length": 10,
  "is_premium_model": true,
  "effect_code": "squish_89244231312",
  "webhookurl": "http://localhost:3000/demo"
}'
Response
{
  "code": 1000,
  "msg": "OK",
  "data": {
    "create_time": 1754362985482,
    "uid": 101400,
    "team_id": "6805fb69e92d9edc7ca0b409",
    "status": 1,
    "webhookUrl": "http://localhost:3000/demo",
    "resolution": "4k",
    "file_name": "Image2Video_Animate this image with .mp4",
    "effect_name": "Squish",
    "_id": "689174694b4dbdd4ab3d28c9",
    "image_url": "https://drz0f01yeq1cx.cloudfront.net/1753772478686-9524-b6e4169bb1b44d5d8361936b3f6eddb8.png",
    "prompt": "Animate this image with smooth camera movement and subtle object motion.",
    "negative_prompt": "blurry, distorted hands, missing fingers, unnatural pose, double hands, extra limbs, bad anatomy, low quality, cartoonish, exaggerated features, open mouth, aggressive expression, modern clothing, pixelated, vibrant colors, overexposed, flickering, blurry details, subtitles, logo, style, artwork, painting, picture, static, overall grayish, worst quality, JPEG compression artifacts, ugly, incomplete, extra fingers, poorly drawn hands, poorly drawn face, deformed, disfigured, malformed limbs, fused fingers, static characters, messy background, three legs, crowded background, walking backwards",
    "extend_prompt": true,
    "audio_type": 2,
    "audio_url": "https://drz0f01yeq1cx.cloudfront.net/1753772497950-9213-1749809724426audio.mp3",
    "deduction_credit": 60,
    "effect_code": "squish_89244231312"
  }
}

Get Image-to-Video Results

POST https://openapi.akool.com/api/open/v4/image2Video/resultsByIds
Request Headers
ParameterValueDescription
AuthorizationBearer {token}Your API Key used for request authorization.getToken
Body Attributes
ParameterTypeRequiredDescription
_idsStringtrueMultiple IDs separated by commas
Response Attributes
ParameterTypeDescription
codeIntegerInterface returns business status code (1000:success)
msgStringInterface returns status information
dataObjectResponse data object
- resultArrayArray of result objects
— _idStringDocument ID
— create_timeLongCreation timestamp
— uidIntegerUser ID
— team_idStringTeam ID
— update_timeLongLast update time/completion time
— video_durationNumberActual video duration
— webhookUrlStringCallback URL
— file_nameStringFile name
— effect_nameStringEffect name
— image_urlStringImage URL
— promptStringPrompt text
— resolutionStringResolution
— audio_typeIntegerAudio type
— audio_urlStringAudio URL
— deduction_creditIntegerActual credits deducted
— effect_codeStringEffect code
— video_urlStringGenerated video URL
— statusIntegerStatus: 1=queueing, 2=processing, 3=completed, 4=failed
— only_add_audioBooleanWhether only audio was added
Example Body
{
  "_ids": "68919a464b4dbdd4ab3d3034,6891a07f5d612f78c9204f1c"
}
Request
curl --location 'https://openapi.akool.com/api/open/v4/image2Video/resultsByIds' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
  "_ids": "68919a464b4dbdd4ab3d3034,6891a07f5d612f78c9204f1c"
}'
Response
{
  "code": 1000,
  "msg": "OK",
  "data": {
    "result": [
      {
        "_id": "6891a2295d612f78c9204f77",
        "create_time": 1754374697629,
        "uid": 101400,
        "team_id": "6805fb69e92d9edc7ca0b409",
        "update_time": 1754374394023,
        "video_duration": 5.063,
        "webhookUrl": "http://localhost:3000/demo",
        "file_name": "Image2Video_Animate this image with .mp4",
        "effect_name": "Squish",
        "image_url": "https://drz0f01yeq1cx.cloudfront.net/1753772478686-9524-b6e4169bb1b44d5d8361936b3f6eddb8.png",
        "prompt": "Animate this image with smooth camera movement and subtle object motion.",
        "resolution": "4k",
        "audio_type": 2,
        "audio_url": "https://drz0f01yeq1cx.cloudfront.net/1753772497950-9213-1749809724426audio.mp3",
        "deduction_credit": 5,
        "effect_code": "squish_89244231312",
        "status": 1,
        "only_add_audio": true
      },
      {
        "_id": "6891abe782f7cd2a890c44ba",
        "create_time": 1754377191100,
        "uid": 101400,
        "team_id": "6805fb69e92d9edc7ca0b409",
        "sub_type": 1501,
        "video_duration": 5.063,
        "webhookUrl": "http://localhost:3000/demo",
        "file_name": "Image2Video_Animate this image with .mp4",
        "effect_name": "Squish",
        "update_time": 1754377293090,
        "image_url": "https://drz0f01yeq1cx.cloudfront.net/1753772478686-9524-b6e4169bb1b44d5d8361936b3f6eddb8.png",
        "prompt": "Animate this image with smooth camera movement and subtle object motion.",
        "resolution": "4k",
        "audio_type": 2,
        "audio_url": "https://drz0f01yeq1cx.cloudfront.net/1753772497950-9213-1749809724426audio.mp3",
        "deduction_credit": 30,
        "effect_code": "squish_89244231312",
        "video_url": "https://d2qf6ukcym4kn9.cloudfront.net/1754377291791-1423.mp4",
        "status": 3,
        "only_add_audio": false
      }
    ]
  }
}

Get Available Effects

GET https://openapi.akool.com/api/open/v4/image2Video/effects
Request Headers
ParameterValueDescription
AuthorizationBearer {token}Your API Key used for request authorization.getToken
Response Attributes
ParameterTypeDescription
codeIntegerInterface returns business status code (1000:success)
msgStringInterface returns status information
dataObjectResponse data object
- resultArrayArray of effect objects
— _idStringEffect document ID
— create_timeLongCreation timestamp
— logoStringEffect logo URL
— nameStringEffect name
— video_urlStringEffect preview video URL
— effect_codeStringEffect code
- countIntegerTotal number of effects
Request
curl --location 'https://openapi.akool.com/api/open/v4/image2Video/effects' \
--header 'Authorization: Bearer {{token}}'
Response
{
  "code": 1000,
  "msg": "Success",
  "data": {
    "result": [
      {
        "_id": "687632b95a0f52799eeed701",
        "create_time": 1752576694502,
        "logo": "https://static.website-files.org/assets/Image_to_Video/Lora/Squish.png",
        "name": "Squish",
        "video_url": "https://static.website-files.org/assets/Image_to_Video/Lora/Squish.mp4",
        "effect_code": "squish_89244231312"
      },
      {
        "_id": "687632ba5a0f52799eeed887",
        "create_time": 1752576694502,
        "logo": "https://static.website-files.org/assets/Image_to_Video/Lora/Cakeify.png",
        "name": "Cakeify",
        "video_url": "https://static.website-files.org/assets/Image_to_Video/Lora/Cakeify.mp4",
        "effect_code": "cakeify_24743216"
      },
      {
        "_id": "687632bc5a0f52799eeed929",
        "create_time": 1752576694502,
        "logo": "https://static.website-files.org/assets/Image_to_Video/Lora/Samurai.png",
        "name": "Samurai",
        "video_url": "https://static.website-files.org/assets/Image_to_Video/Lora/Samurai.mp4",
        "effect_code": "samurai_99757865"
      }
    ],
    "count": 10
  }
}

Update Video Audio

POST https://openapi.akool.com/api/open/v4/image2Video/updateVideoAudio
Request Headers
ParameterValueDescription
AuthorizationBearer {token}Your API Key used for request authorization.getToken
Body Attributes
ParameterTypeRequiredDescription
pre_video_idStringtrueImage-to-Video result _id
audio_urlStringtrueAudio URL, required when audio_type = 2
audio_typeIntegertrue1 = AI Generate, 2 = user custom upload
Response Attributes
ParameterTypeDescription
codeIntegerInterface returns business status code (1000:success)
msgStringInterface returns status information
dataObjectResponse data object
- create_timeLongCreation timestamp
- uidIntegerUser ID
- team_idStringTeam ID
- update_timeLongLast update time
- video_durationNumberVideo duration
- webhookUrlStringCallback URL
- resolutionStringResolution
- file_nameStringFile name
- effect_nameStringEffect name
- _idStringDocument ID
- pre_video_idStringOriginal video ID
- image_urlStringImage URL
- promptStringPrompt text
- negative_promptStringNegative prompt
- extend_promptBooleanWhether extended prompts were used
- audio_typeIntegerAudio type
- audio_urlStringAudio URL
- deduction_creditIntegerCredits deducted
- effect_codeStringEffect code
- statusIntegerStatus: 1=queueing, 2=processing, 3=completed, 4=failed
- only_add_audioBooleanWhether only audio was added
Example Body
{
  "pre_video_id": "6890830af27dfad2a3e6062d",
  "audio_url": "https://drz0f01yeq1cx.cloudfront.net/1753772497950-9213-1749809724426audio.mp3",
  "audio_type": 2
}
Request
curl --location 'https://openapi.akool.com/api/open/v4/image2Video/updateVideoAudio' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
  "pre_video_id": "6890830af27dfad2a3e6062d",
  "audio_url": "https://drz0f01yeq1cx.cloudfront.net/1753772497950-9213-1749809724426audio.mp3",
  "audio_type": 2
}'
Response
{
  "code": 1000,
  "msg": "OK",
  "data": {
    "create_time": 1754374697629,
    "uid": 101400,
    "team_id": "6805fb69e92d9edc7ca0b409",
    "update_time": 1754374394023,
    "video_duration": 5.063,
    "webhookUrl": "http://localhost:3000/demo",
    "resolution": "4k",
    "file_name": "Image2Video_Animate this image with .mp4",
    "effect_name": "Squish",
    "_id": "6891a2295d612f78c9204f77",
    "pre_video_id": "6891a07f5d612f78c9204f1c",
    "image_url": "https://drz0f01yeq1cx.cloudfront.net/1753772478686-9524-b6e4169bb1b44d5d8361936b3f6eddb8.png",
    "prompt": "Animate this image with smooth camera movement and subtle object motion.",
    "negative_prompt": "",
    "extend_prompt": false,
    "audio_type": 2,
    "audio_url": "https://drz0f01yeq1cx.cloudfront.net/1753772497950-9213-1749809724426audio.mp3",
    "deduction_credit": 5,
    "effect_code": "squish_89244231312",
    "status": 1,
    "only_add_audio": true
  }
}

Delete Videos

POST https://openapi.akool.com/api/open/v4/image2Video/delbyids
Request Headers
ParameterValueDescription
AuthorizationBearer {token}Your API Key used for request authorization.getToken
Body Attributes
ParameterTypeRequiredDescription
_idsStringtrueMultiple IDs separated by commas
Response Attributes
ParameterTypeDescription
codeIntegerInterface returns business status code (1000:success)
msgStringInterface returns status information
dataObjectResponse data object
- successIdsArraySuccessfully deleted video IDs
- noPermissionItemsArrayFailed deletion information list
— _idStringFailed deletion video ID
— msgStringFailure reason
Example Body
{
  "_ids": "68919a464b4dbdd4ab3d3034,6891a07f5d612f78c9204f1c,6891a2295d612f78c9204f77"
}
Request
curl --location 'https://openapi.akool.com/api/open/v4/image2Video/delbyids' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
  "_ids": "68919a464b4dbdd4ab3d3034,6891a07f5d612f78c9204f1c,6891a2295d612f78c9204f77"
}'
Response
{
  "code": 1000,
  "msg": "Delete successfully",
  "data": {
    "successIds": [
      "6882f4c10529ae771e71531d"
    ],
    "noPermissionItems": [
      {
        "_id": "6881cd86618fa41c89557b0c",
        "msg": "video resource is processing, please try again later"
      }
    ]
  }
}