Este documento presenta una guía para integrar la API Kling Videos Generation, la cual permite generar videos oficiales de Kling mediante la entrada de parámetros personalizados.Documentation Index
Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
Use this file to discover all available pages before exploring further.
Proceso de solicitud
Para usar la API, primero debe solicitar el servicio en la página correspondiente de Kling Videos Generation API. Al ingresar, haga clic en el botón «Acquire», como se muestra en la imagen:
Si no ha iniciado sesión o registrado, será redirigido automáticamente a la página de login para registrarse e iniciar sesión, y luego volverá automáticamente a la página actual.
En la primera solicitud, se le ofrecerá un monto gratuito para probar la API sin costo.
Uso básico
Primero, familiarícese con el método de uso básico: ingrese los parámetrosprompt (mensaje de entrada), action (acción de generación), start_image_url (imagen de referencia para la primera frame) y model (modelo). Con esto, podrá obtener la respuesta procesada.
Debe enviar un campo action con valor 'text2video', que soporta tres acciones principales: generación de video desde texto (text2video), desde imagen (image2video), y expansión de videos (extend). Además, es necesario especificar el modelo model, con modelos principales como kling-v1, kling-v1-6, kling-v2-master, kling-v2-1-master, kling-v2-5-turbo, kling-v2-6, kling-v3, kling-v3-omni, kling-video-o1. La lista completa incluye:

accept: indica en qué formato desea recibir la respuesta, aquí comoapplication/json.authorization: clave para acceder a la API, disponible tras la solicitud.
Request Body), se incluyen:
model: modelo de generación de video (kling-v1,kling-v1-6, etc.).mode: modo de generación, puede serstd(estándar),pro(alta velocidad) o4k(modo 4K nativo; solokling-v3ykling-v3-omni, y no compatible concamera_control).action: acción de generación,text2video,image2videooextend.start_image_url: URL de referencia para la primera frame enimage2video.end_image_url: opcional para video desde imagen, señalando la última frame.duration: duración del video en segundos, soportando entre 3 y 15 segundos enkling-v3ykling-v3-omni, otros modelos soportan 5 o 10 segundos.generate_audio: si se desea síntesis de audio sincronizada, booleano, soportado enkling-v3,kling-v3-omniykling-v2-6(solo en modopro); por defectofalse.aspect_ratio: proporción de aspecto de video (16:9,9:16,1:1), valor predeterminado es16:9.cfg_scale: factor de relevancia (similitud) en rango [0,1].camera_control: configuración para control de movimiento de la cámara, soporta presetstype/simpley parámetros comohorizontal,vertical,pan,tilt,roll,zoom.negative_prompt: palabras o frases que no desea que aparezcan (máximo 200 caracteres).element_list: lista de referencia de sujetos; exclusivo para modelokling-video-o1(consultar documentación oficial).video_list: videos de referencia por URL, solo parakling-video-o1.prompt: las instrucciones o texto de entrada.callback_url: URL donde se enviará el resultado mediante callback asíncrono.

success: si la tarea fue exitosa.task_id: ID único de la tarea.video_id: ID único del video generado.video_url: enlace para descargar el video.duration: duración del video en segundos.state: estado actual del proceso.
video_url proporcionado.
Para integrar mediante código, por ejemplo usando CURL:
Matriz de capacidades de modelos
Cada modelo tiene soporte diferente para los parámetros. La siguiente tabla resume la compatibilidad según la documentación oficial de modelos de video de Kling. Antes de usar, confirme que la combinación demodel / mode / duration soporta la función deseada; de lo contrario, la API devolverá errores como model/mode/duration(...) is not supported with image_tail.
| Modelo | Mode | end_image_url | generate_audio | camera_control | Notas |
|---|---|---|---|---|---|
kling-v1 | std / pro | ✅ solo duration=5 | ❌ | ✅ solo duration=5 | extend no soporta negative_prompt ni cfg_scale |
kling-v1-6 | std | ❌ | ❌ | ❌ | compatible con multi-imagen y modo extend |
kling-v1-6 | pro | ✅ | ❌ | ❌ | |
kling-v2-master | — | ❌ | ❌ | ❌ | modo único, soporta solo duration=5 o 10 |
kling-v2-1-master | — | ❌ | ❌ | ❌ | modo único, soporta solo duration=5 o 10 |
kling-v2-5-turbo | std | ❌ | ❌ | ❌ | |
kling-v2-5-turbo | pro | ✅ | ❌ | ❌ | |
kling-v2-6 | std | ❌ | ❌ | ❌ | |
kling-v2-6 | pro | ✅ | ✅ | ❌ | único modelo no v3 que soporta audio simultáneo |
kling-v3 | std / pro | ✅ | ✅ | ✅ | duration de 3–15 segundos |
kling-v3 | 4k | ✅ | ✅ | ❌ | modo 4K no compatible con control de cámara |
kling-v3-omni | std / pro / 4k | ✅ | ✅ | ❌ | |
kling-video-o1 | std / pro | ✅ | ❌ | ❌ | solo soporta duration=5/10 |
mode=4ksolo soportakling-v3ykling-v3-omni; no combina concamera_control.end_image_urlsolo funciona en modoimage2videojunto constart_image_url.duration: general en 3–15 segundos para modeloskling-v3ykling-v3-omni; otros modelos solo aceptan 5 o 10.generate_audiopor defecto esfalse. Solo soportan enkling-v3,kling-v3-omniykling-v2-6en modopro.
Función de expansión de video
Para extender un video previamente generado, configureaction en 'extend' y pase video_id del video existente. La obtención del video_id es mediante el método básico explicado anteriormente, como en la imagen:

Nota: ese video_id corresponde al video generado previamente. Si no sabe cómo obtenerlo, consulte la sección correspondiente del método básico.
Luego, puede definir nuevas instrucciones de generación de video, por ejemplo:
model: modeloskling-v1,kling-v1-5okling-v1-6.mode: modostd,proo4k(solo ciertos modelos).duration: duración en segundos, típicamente 5 o 10.start_image_url: paraimage2video.prompt: instrucciones de entrada.

Callback asíncrono
Dado que la generación de videos puede tardar entre 1 y 2 minutos, la API soporta callbacks asíncronos para evitar mantener conexiones abiertas y evitar consumo excesivo de recursos. El método: el cliente envía la solicitud incluyendocallback_url. La API responde inmediatamente con un task_id, y cuando la generación finalice, enviará un POST JSON a esa URL con el resultado, incluyendo también task_id para relacionar el proceso.
Ejemplo práctico:
Primero, configure un servicio web que reciba las llamadas HTTP, por ejemplo, usando https://webhook.site/. Al ingresar, copie la URL proporcionada, como en la imagen:
Luego, establezca callback_url en esa URL y envíe los parámetros necesarios. La respuesta será algo así:
Y el contenido JSON similar a:
task_id permite relacionar el resultado con la tarea original.
Manejo de errores
En caso de error, la API devuelve códigos y mensajes específicos, por ejemplo:400 token_mismatched: solicitud incorrecta, parámetros inválidos o faltantes.400 api_not_implemented: función no soportada o mal uso.401 invalid_token: error de autorización.429 too_many_requests: límite de velocidad alcanzado.500 api_error: error interno en el servidor.

