POST
/
v1
/
ai
/
image-to-video
/
kling-v2
curl --request POST \
  --url https://api.freepik.com/v1/ai/image-to-video/kling-v2 \
  --header 'Content-Type: application/json' \
  --header 'x-freepik-api-key: <api-key>' \
  --data '{
  "webhook_url": "https://www.example.com/webhook",
  "image": "<string>",
  "prompt": "<string>",
  "negative_prompt": "<string>",
  "duration": "5",
  "cfg_scale": 0.5
}'
{
  "data": {
    "task_id": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
    "status": "IN_PROGRESS"
  }
}

Important

The service allows up to 3 concurrent requests per user.

Authorizations

x-freepik-api-key
string
header
required

Your Freepik API key. Required for authentication. Learn how to obtain an API key

Body

application/json
image
string
required

Reference Image. Supports Base64 encoding or URL (ensure accessibility). For URL, must be publicly accessible. The image file size cannot exceed 10MB, and the resolution should not be less than 300x300px. Aspect ratio should be between 1:2.5 ~ 2.5:1.

duration
enum<string>
required

Duration of the generated video in seconds

Available options:
5,
10
webhook_url
string

Optional callback URL that will receive asynchronous notifications whenever the task changes status. The payload sent to this URL is the same as the corresponding GET endpoint response, but without the data field.

Example:

"https://www.example.com/webhook"

prompt
string

Text prompt describing the desired motion, cannot exceed 2500 characters

negative_prompt
string

Text prompt describing what to avoid in the generated video, cannot exceed 2500 characters

cfg_scale
number
default:0.5

Flexibility in video generation; The higher the value, the lower the model's degree of flexibility, and the stronger the relevance to the user's prompt.

Required range: 0 <= x <= 1

Response

200
application/json
OK - Get the status of the kling-std task
data
object
required
Example:
{
  "task_id": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
  "status": "IN_PROGRESS"
}