AI SETUPAPI
Платформа
API-документация

Kling

Kling

Создание и редактирование видео

POSThttps://api.aisetup.ru/v1/video/generations
Header:Authorization: Bearer YOUR_KEY

Параметры

ПараметрТипОписание
modelstring"kling-3-0-turbo" | "kling-3-0" | "kling-2-6" | "kling-motion"
webhook_url*stringURL для webhook (необязателен), поллинг: GET /v1/requests/{id}
inputobjectПараметры запроса.
↳ prompt*stringТекстовое описание видео. Обязателен для kling-3-0 / kling-3-0-turbo / kling-2-6. Для kling-motion описывает движение.
↳ duration*numberДлительность в секундах. kling-3-0: 5 | 10 | 15 (по умолчанию 10). kling-3-0-turbo: 3–15, свободное значение (по умолчанию 5). kling-2-6 / kling-motion: 5 | 10 (по умолчанию 5).
↳ aspect_ratio*stringСоотношение сторон: "16:9" | "9:16" | "1:1". По умолчанию "16:9". Не применяется, если передан image_url (соотношение берётся из кадра).
↳ resolution*stringРазрешение: "720" | "1080". По умолчанию "720".
↳ audio*booleanГенерировать аудиодорожку. По умолчанию false. Не поддерживается в kling-3-0-turbo (параметр игнорируется).
↳ image_url*stringkling-3-0 / kling-3-0-turbo / kling-2-6: опорный кадр (img2video, опционально). kling-motion: фото персонажа (обязательно).
↳ image_tail_url*stringПоследний кадр (только kling-3-0 / kling-2-6). Не поддерживается в kling-3-0-turbo и kling-motion.
↳ video_url*stringURL видео с движением. Обязателен для kling-motion (вместе с image_url). Не поддерживается в kling-3-0 / kling-3-0-turbo / kling-2-6.
* — опциональные поля.

Пример запроса

# text-to-video (Kling 3.0)
curl -s "https://api.aisetup.ru/v1/video/generations" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"kling-3-0","input":{"prompt":"A lone surfer riding a massive wave at sunset","duration":5,"aspect_ratio":"16:9","audio":true}}'

# text-to-video (Kling 3.0 Turbo)
curl -s "https://api.aisetup.ru/v1/video/generations" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"kling-3-0-turbo","input":{"prompt":"A lone surfer riding a massive wave at sunset","duration":5,"aspect_ratio":"16:9"}}'

# img2video (опорный кадр)
curl -s "https://api.aisetup.ru/v1/video/generations" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"kling-3-0","webhook_url":"https://your.site/hook","input":{"prompt":"Wind blows through the hair, cinematic","image_url":"https://example.com/portrait.jpg","duration":5}}'

# motion: фото персонажа + видео с движением (оба обязательны)
curl -s "https://api.aisetup.ru/v1/video/generations" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"kling-motion","input":{"prompt":"the character starts dancing","image_url":"https://example.com/character.png","video_url":"https://example.com/motion.mp4"}}'

Ответы API

Структура ответа

ПолеТипОписание
idstringID запроса для polling / webhook.
statusstringrunning — генерация запущена.

Пример тела ответа (JSON)

{
  "id": "REQUEST_ID",
  "status": "running"
}

Получение результата

Webhook или polling, подробнее в карточке «Проверка статуса видео-запроса»

При успехе result.type = "video_generation", массив result.videos:

{
  "id": "REQUEST_ID",
  "status": "success",
  "result": {
    "type": "video_generation",
    "videos": [
      "https://cdn.aisetup.ru/.../result.mp4"
    ]
  }
}