UlazAI developer docs

Kling 3.0 Motion Control API

Kling 3.0 Motion Control

Use Motion Control when you want one character image to follow the movement of one driving video. The workflow requires exactly one image URL, one motion video URL, a prompt, and a quality mode.

Recommended endpoint: /api/v1/video-studio/generate/ with model_slug="kling_3_0_motion_control".
Compatibility endpoint: /api/v1/generate/video/ with video_model="kling_3_0_motion_control".

Authentication

Send a bearer token or API key on every request.

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Canonical request

This request goes to /api/v1/video-studio/generate/. It is the preferred API contract for new integrations.

{
  "model_slug": "kling_3_0_motion_control",
  "prompt": "No distortion, the character's movements are consistent with the video.",
  "input_image_urls": ["https://example.com/character.png"],
  "input_video_urls": ["https://example.com/motion.mp4"],
  "character_orientation": "video",
  "quality_mode": "720p",
  "duration_seconds": 15
}

Field reference

Field Required Notes
model_slug Yes Must be kling_3_0_motion_control
prompt Yes Maximum 2500 characters
input_image_urls Yes Exactly one public image URL
input_video_urls Yes Exactly one public motion video URL
character_orientation No Use video for up to 30 seconds or image for up to 10 seconds
quality_mode Yes Use 720p or 1080p
duration_seconds Yes Integer from 3 to 30. Pricing uses this duration. If orientation is image, max 10.

Legacy compatibility request

This request goes to /api/v1/generate/video/. Use it if you already integrate with the older authenticated video API.

{
  "video_model": "kling_3_0_motion_control",
  "prompt": "No distortion, the character's movements are consistent with the video.",
  "source_image_urls": ["https://example.com/character.png"],
  "video_urls": ["https://example.com/motion.mp4"],
  "character_orientation": "video",
  "quality_mode": "720p",
  "duration_seconds": 15
}

Response examples

Canonical generate response

{
  "success": true,
  "job_ids": ["8990f846-f6f0-4ff1-a298-d0a72d49e7ad"],
  "credits_remaining_total": 438
}

Legacy generate response

{
  "success": true,
  "data": {
    "generation_id": "7f8cfd64-5b91-4a31-a987-e0ea8fd9d0a1",
    "generation_type": "video",
    "video_model": "kling30_motion",
    "mode": "image-to-video",
    "status": "processing",
    "credits_used": 180
  }
}

Status polling

GET /api/v1/video-studio/status/{job_id}/
GET /api/v1/generate/{generation_id}/

Pricing

Motion Control pricing is duration-based.

720p
12 credits / second
1080p
20 credits / second

Next steps