{
  "aboutHtml": "<p>Kling VIDEO 3.0 Standard es el perfil de 720p de Kuaishou para generar una escena desde texto o imagen. Usa audio nativo, referencias de sujeto y narración de varias tomas de VIDEO 3.0, con duración flexible de tres a quince segundos. Sirve para desarrollar una dirección visual, previsualizar una narración corta o crear una escena compacta con acción y sonido definidos.</p><p>Para una escena con texto, establece sujeto, entorno, acción, luz y cámara. Para una con imagen, prepara un inicio que muestre claramente apariencia y composición a animar. Un encargo original podría mostrar un personaje junto a una mesa de taller y describir que toma un objeto pequeño mientras la cámara se acerca. Separa en la redacción movimiento del sujeto y de cámara.</p><p>La generación de varias tomas puede planear automáticamente la cobertura desde la descripción. La dirección personalizada asigna contenido y duración a cada toma. El perfil del fabricante acepta de una a seis tomas, máximo 512 caracteres por toma y al menos un segundo cada una. Las duraciones deben sumar la longitud total. Cuando una vista continua comunica claramente la escena, una instrucción de toma única evita transiciones innecesarias.</p><p>Un storyboard breve puede comenzar con el entorno, pasar a la acción y terminar en el detalle que explica el resultado. Especifica qué sujeto permanece y cómo cambia el encuadre. El modo automático adapta la cobertura, mientras que una secuencia personalizada da instrucciones explícitas para cada parte. La instrucción normal única acepta hasta 2,500 caracteres en la referencia del fabricante.</p><p>Los controles de referencia ayudan a anclar personajes, objetos y entorno. Usa material claro y una descripción estable para cada sujeto. El perfil documentado basado en imagen permite hasta tres elementos preparados. Para una escena ilustrada de producto, una referencia puede establecer el objeto y la composición inicial dónde está; la instrucción de movimiento describe el evento a su alrededor. Comprueba la apariencia en toda la toma en vez de suponer que la referencia evita cualquier cambio.</p><p>Los extremos pueden guiar una transición condicionada por imagen hacia una composición final. Usa fotogramas con conexión plausible y describe la acción entre ellos. El perfil acepta JPG, JPEG y PNG de hasta 10 MB, con dimensiones de al menos 300 píxeles; la relación inicial debe estar entre 1:2.5 y 2.5:1. Prepara los fotogramas para esa tarea en vez de tratar una descripción de storyboard como paquete intercambiable de entradas.</p><p>Standard puede generar audio nativo al activar ese modo; la referencia lo deja apagado por defecto. Describe líneas, atmósfera y sonidos pertinentes como parte de la escena. VIDEO 3.0 admite tratamientos de habla en chino, inglés, japonés, coreano y español, incluidos cambios de idioma y acentos o dialectos compatibles. La guía dice que el diálogo escrito en otro idioma se traduce al inglés. Identifica claramente al hablante en escenas con varios personajes y deja las líneas lo bastante cortas para la interpretación.</p><p>Un encargo original puede asignar una línea al Hablante A, una reacción visible al Hablante B y un cambio de vista acorde con el intercambio. Describe el sonido del entorno aparte del diálogo para que un efecto de fondo no se vuelva una instrucción ambigua sobre habla. Usa referencias para apariencia y texto para acciones y palabras.</p><p>Las letras visibles también forman parte del flujo 3.0. Una imagen fuente puede contener letrero, subtítulo o etiqueta de producto cuya apariencia importe durante la animación. Identifica el texto y su función y revisa ortografía, legibilidad y estabilidad. Para una pieza breve de campaña, destaca el mensaje principal en la composición en vez de depender de una etiqueta diminuta de fondo.</p><p>La salida Standard es 720p. Pro es el perfil 1080p seleccionado por separado y 4K nativo es otro modo del fabricante, no un ajuste automático de Standard. Las relaciones de texto incluyen 16:9, 9:16 y 1:1. Elige formato y encuadre para la ubicación prevista y conserva esa dirección visual al comparar cambios de acción, luz u orden de tomas.</p><p>Una generación completada aporta video y duración real. La documentación indica que los videos se eliminan después de 30 días, así que guarda pronto el clip. Conserva encargo, referencias y perfil para mantener un punto de partida consistente en futuras revisiones. Revisa acción, continuidad, cobertura de cámara, diálogo y letras en el contexto de uso. Corregir el detalle fallido sirve más que sustituir todo el encargo por instrucciones inconexas.</p>",
  "aboutText": "Kling VIDEO 3.0 Standard es el perfil de 720p de Kuaishou para generar una escena desde texto o imagen. Usa audio nativo, referencias de sujeto y narración de varias tomas de VIDEO 3.0, con duración flexible de tres a quince segundos. Sirve para desarrollar una dirección visual, previsualizar una narración corta o crear una escena compacta con acción y sonido definidos.\n\nPara una escena con texto, establece sujeto, entorno, acción, luz y cámara. Para una con imagen, prepara un inicio que muestre claramente apariencia y composición a animar. Un encargo original podría mostrar un personaje junto a una mesa de taller y describir que toma un objeto pequeño mientras la cámara se acerca. Separa en la redacción movimiento del sujeto y de cámara.\n\nLa generación de varias tomas puede planear automáticamente la cobertura desde la descripción. La dirección personalizada asigna contenido y duración a cada toma. El perfil del fabricante acepta de una a seis tomas, máximo 512 caracteres por toma y al menos un segundo cada una. Las duraciones deben sumar la longitud total. Cuando una vista continua comunica claramente la escena, una instrucción de toma única evita transiciones innecesarias.\n\nUn storyboard breve puede comenzar con el entorno, pasar a la acción y terminar en el detalle que explica el resultado. Especifica qué sujeto permanece y cómo cambia el encuadre. El modo automático adapta la cobertura, mientras que una secuencia personalizada da instrucciones explícitas para cada parte. La instrucción normal única acepta hasta 2,500 caracteres en la referencia del fabricante.\n\nLos controles de referencia ayudan a anclar personajes, objetos y entorno. Usa material claro y una descripción estable para cada sujeto. El perfil documentado basado en imagen permite hasta tres elementos preparados. Para una escena ilustrada de producto, una referencia puede establecer el objeto y la composición inicial dónde está; la instrucción de movimiento describe el evento a su alrededor. Comprueba la apariencia en toda la toma en vez de suponer que la referencia evita cualquier cambio.\n\nLos extremos pueden guiar una transición condicionada por imagen hacia una composición final. Usa fotogramas con conexión plausible y describe la acción entre ellos. El perfil acepta JPG, JPEG y PNG de hasta 10 MB, con dimensiones de al menos 300 píxeles; la relación inicial debe estar entre 1:2.5 y 2.5:1. Prepara los fotogramas para esa tarea en vez de tratar una descripción de storyboard como paquete intercambiable de entradas.\n\nStandard puede generar audio nativo al activar ese modo; la referencia lo deja apagado por defecto. Describe líneas, atmósfera y sonidos pertinentes como parte de la escena. VIDEO 3.0 admite tratamientos de habla en chino, inglés, japonés, coreano y español, incluidos cambios de idioma y acentos o dialectos compatibles. La guía dice que el diálogo escrito en otro idioma se traduce al inglés. Identifica claramente al hablante en escenas con varios personajes y deja las líneas lo bastante cortas para la interpretación.\n\nUn encargo original puede asignar una línea al Hablante A, una reacción visible al Hablante B y un cambio de vista acorde con el intercambio. Describe el sonido del entorno aparte del diálogo para que un efecto de fondo no se vuelva una instrucción ambigua sobre habla. Usa referencias para apariencia y texto para acciones y palabras.\n\nLas letras visibles también forman parte del flujo 3.0. Una imagen fuente puede contener letrero, subtítulo o etiqueta de producto cuya apariencia importe durante la animación. Identifica el texto y su función y revisa ortografía, legibilidad y estabilidad. Para una pieza breve de campaña, destaca el mensaje principal en la composición en vez de depender de una etiqueta diminuta de fondo.\n\nLa salida Standard es 720p. Pro es el perfil 1080p seleccionado por separado y 4K nativo es otro modo del fabricante, no un ajuste automático de Standard. Las relaciones de texto incluyen 16:9, 9:16 y 1:1. Elige formato y encuadre para la ubicación prevista y conserva esa dirección visual al comparar cambios de acción, luz u orden de tomas.\n\nUna generación completada aporta video y duración real. La documentación indica que los videos se eliminan después de 30 días, así que guarda pronto el clip. Conserva encargo, referencias y perfil para mantener un punto de partida consistente en futuras revisiones. Revisa acción, continuidad, cobertura de cámara, diálogo y letras en el contexto de uso. Corregir el detalle fallido sirve más que sustituir todo el encargo por instrucciones inconexas.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "c56540bb5732a883eae17e503df3c1f0428386dc098233bf98ea2bc50d22eec3",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "es-mx",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Kling: Video v3.0 Standard</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Cerrar\">×</button></div><div class=\"idline\"><span>Kuaishou /</span><code>kwaivgi/kling-v3.0-std</code><button type=\"button\" id=\"copy-id\">Copiar ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Secciones de la ficha del modelo\"><button type=\"button\" data-card-jump=\"overview\">Inicio</button><button type=\"button\" data-card-jump=\"methods\">Entradas y métodos</button><button type=\"button\" data-card-jump=\"pricing\">Tarifas</button><button type=\"button\" data-card-jump=\"examples\">Ejemplos</button><button type=\"button\" data-card-jump=\"results\">Resultados</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Métodos de API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|videos|/v1/videos|kwaivgi%2Fkling-v3.0-std\">Video</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Inicio</h3><p class=\"mdesc-full\">Kling VIDEO 3.0 Standard es el perfil de video de 720p de Kuaishou para encargos de texto e imagen. Crea escenas de tres a quince segundos con audio nativo, referencias de sujeto, guía de primer/último fotograma y narración de una o varias tomas.</p><dl class=\"card-io\" data-card-io><div><dt>Entradas aceptadas</dt><dd>Texto · Imágenes</dd></div><div><dt>Resultados</dt><dd>Video</dd></div></dl><details class=\"card-about\"><summary>Sobre el modelo</summary><p class=\"note-s\" data-model-method-boundary>Esta descripción cubre las capacidades del modelo. Las entradas, salidas y opciones disponibles en Ailoot se indican a continuación para el método seleccionado.</p><div class=\"mabout\" id=\"m-about\"><p>Kling VIDEO 3.0 Standard es el perfil de 720p de Kuaishou para generar una escena desde texto o imagen. Usa audio nativo, referencias de sujeto y narración de varias tomas de VIDEO 3.0, con duración flexible de tres a quince segundos. Sirve para desarrollar una dirección visual, previsualizar una narración corta o crear una escena compacta con acción y sonido definidos.</p><p>Para una escena con texto, establece sujeto, entorno, acción, luz y cámara. Para una con imagen, prepara un inicio que muestre claramente apariencia y composición a animar. Un encargo original podría mostrar un personaje junto a una mesa de taller y describir que toma un objeto pequeño mientras la cámara se acerca. Separa en la redacción movimiento del sujeto y de cámara.</p><p>La generación de varias tomas puede planear automáticamente la cobertura desde la descripción. La dirección personalizada asigna contenido y duración a cada toma. El perfil del fabricante acepta de una a seis tomas, máximo 512 caracteres por toma y al menos un segundo cada una. Las duraciones deben sumar la longitud total. Cuando una vista continua comunica claramente la escena, una instrucción de toma única evita transiciones innecesarias.</p><p>Un storyboard breve puede comenzar con el entorno, pasar a la acción y terminar en el detalle que explica el resultado. Especifica qué sujeto permanece y cómo cambia el encuadre. El modo automático adapta la cobertura, mientras que una secuencia personalizada da instrucciones explícitas para cada parte. La instrucción normal única acepta hasta 2,500 caracteres en la referencia del fabricante.</p><p>Los controles de referencia ayudan a anclar personajes, objetos y entorno. Usa material claro y una descripción estable para cada sujeto. El perfil documentado basado en imagen permite hasta tres elementos preparados. Para una escena ilustrada de producto, una referencia puede establecer el objeto y la composición inicial dónde está; la instrucción de movimiento describe el evento a su alrededor. Comprueba la apariencia en toda la toma en vez de suponer que la referencia evita cualquier cambio.</p><p>Los extremos pueden guiar una transición condicionada por imagen hacia una composición final. Usa fotogramas con conexión plausible y describe la acción entre ellos. El perfil acepta JPG, JPEG y PNG de hasta 10 MB, con dimensiones de al menos 300 píxeles; la relación inicial debe estar entre 1:2.5 y 2.5:1. Prepara los fotogramas para esa tarea en vez de tratar una descripción de storyboard como paquete intercambiable de entradas.</p><p>Standard puede generar audio nativo al activar ese modo; la referencia lo deja apagado por defecto. Describe líneas, atmósfera y sonidos pertinentes como parte de la escena. VIDEO 3.0 admite tratamientos de habla en chino, inglés, japonés, coreano y español, incluidos cambios de idioma y acentos o dialectos compatibles. La guía dice que el diálogo escrito en otro idioma se traduce al inglés. Identifica claramente al hablante en escenas con varios personajes y deja las líneas lo bastante cortas para la interpretación.</p><p>Un encargo original puede asignar una línea al Hablante A, una reacción visible al Hablante B y un cambio de vista acorde con el intercambio. Describe el sonido del entorno aparte del diálogo para que un efecto de fondo no se vuelva una instrucción ambigua sobre habla. Usa referencias para apariencia y texto para acciones y palabras.</p><p>Las letras visibles también forman parte del flujo 3.0. Una imagen fuente puede contener letrero, subtítulo o etiqueta de producto cuya apariencia importe durante la animación. Identifica el texto y su función y revisa ortografía, legibilidad y estabilidad. Para una pieza breve de campaña, destaca el mensaje principal en la composición en vez de depender de una etiqueta diminuta de fondo.</p><p>La salida Standard es 720p. Pro es el perfil 1080p seleccionado por separado y 4K nativo es otro modo del fabricante, no un ajuste automático de Standard. Las relaciones de texto incluyen 16:9, 9:16 y 1:1. Elige formato y encuadre para la ubicación prevista y conserva esa dirección visual al comparar cambios de acción, luz u orden de tomas.</p><p>Una generación completada aporta video y duración real. La documentación indica que los videos se eliminan después de 30 días, así que guarda pronto el clip. Conserva encargo, referencias y perfil para mantener un punto de partida consistente en futuras revisiones. Revisa acción, continuidad, cobertura de cámara, diálogo y letras en el contexto de uso. Corregir el detalle fallido sirve más que sustituir todo el encargo por instrucciones inconexas.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Disponible en Ailoot · entradas y métodos</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Video</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Entrada</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>Salida</dt><dd><code>video</code></dd></div><div><dt>Formato de salida</dt><dd>bytes MP4 originales; sin normalización ni transcodificación</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Campo</th><th>Tipo</th><th>Requisito</th><th>Valores y límites</th><th>Predeterminado</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obligatorio</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>kwaivgi/kling-v3.0-std</div></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obligatorio</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>integer</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obligatorio</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</div><div>Mínimo: 1</div><div>Máximo: 600</div></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>720p</div></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>16:9, 9:16, 1:1</div></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">generate_audio</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>boolean</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>false, true</div><div>Condiciones: Omitir esta opción selecciona el precio con audio. Establécela en false para seleccionar el precio sin audio. Revisa has_audio en el resultado para saber si se devolvió una pista de audio.</div></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">frame_images</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>array</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>Número mínimo de elementos: 1</div><div>Número máximo de elementos: 2</div><div>Contenido de entrada: Arreglo de objetos de fotograma. Cada objeto tiene type=image_url, image_url que contiene url y frame_type. Usa una URL HTTPS de imagen y establece frame_type en first_frame o last_frame. Cada función de fotograma puede aparecer como máximo una vez.</div><div>Claves exactas: type, image_url, frame_type</div><div>Condiciones: Estas claves describen cada objeto de fotograma; image_url contiene únicamente url. Omite frame_images para una solicitud de solo texto.</div></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>array</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">size</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>1280x720, 720x1280, 720x720</div><div>Patrón: ^[1-9][0-9]*x[1-9][0-9]*$</div></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">callback_url</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>Patrón: ^https://</div></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>object</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Combinaciones de materiales de entrada</summary><p class=\"note-s\"><b>Texto a video</b> · Una instrucción escrita. · Obligatorio: model, prompt, duration</p><p class=\"note-s\"><code>Proporciona prompt como texto y duration en segundos enteros. Elige una resolución compatible; agrega una relación de aspecto o usa un tamaño de la lista.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Tipo: string · kwaivgi/kling-v3.0-std</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Tipo: string · Máximo de bytes UTF-8: 10,000 · Se requiere contenido distinto de espacios en blanco: Sí</p><p class=\"note-s\"><b>Imagen a video</b> · Una instrucción escrita y una imagen del primer fotograma. · Obligatorio: model, prompt, duration, frame_images</p><p class=\"note-s\"><code>frame_images es un arreglo. Cada objeto de fotograma tiene type, image_url y frame_type; image_url contiene url. Establece type en image_url. Usa first_frame con last_frame opcional. Cada función de fotograma puede aparecer como máximo una vez. Proporciona una URL HTTPS pública de imagen para cada fotograma. Elige una resolución compatible; agrega una relación de aspecto o usa un tamaño de la lista.</code></p><p class=\"note-s\">Claves exactas: type, image_url, frame_type</p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Tipo: string · kwaivgi/kling-v3.0-std</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Tipo: string · Máximo de bytes UTF-8: 10,000 · Se requiere contenido distinto de espacios en blanco: Sí</p></details><details class=\"note-s\" data-method-contract><summary>Parámetros del método y ciclo de vida</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parámetro</th><th>Contrato</th></tr></thead><tbody><tr><th data-cell-label=\"Parámetro\" scope=\"row\"><span class=\"card-cell-label\">Parámetro</span><code>content_type</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>application/json</td></tr><tr><th data-cell-label=\"Parámetro\" scope=\"row\"><span class=\"card-cell-label\">Parámetro</span><code>required</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>model, prompt, duration</td></tr><tr><th data-cell-label=\"Parámetro\" scope=\"row\"><span class=\"card-cell-label\">Parámetro</span><code>material_types</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>text, image</td></tr><tr><th data-cell-label=\"Parámetro\" scope=\"row\"><span class=\"card-cell-label\">Parámetro</span><code>additional_properties</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>false</td></tr><tr><th data-cell-label=\"Parámetro\" scope=\"row\"><span class=\"card-cell-label\">Parámetro</span><code>optional_controls</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>resolution, aspect_ratio, generate_audio, frame_images, input_references, size, callback_url, session_id, trace, user</td></tr></tbody></table></div><p>Ciclo de vida: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}/content</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarifas</h3><div class=\"card-result-process\" data-billing-basis><h5>Cómo se calcula el cargo definitivo</h5><p class=\"note-s\">Las tarifas mostradas permiten estimar el costo antes de la generación. El cargo final se calcula a partir del costo registrado para la generación original. La duración medida de la salida y las cantidades estimadas no son la cantidad facturable final.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.</p><dl data-price-conditions><dt>Modo fast</dt><dd>Sin especificar <span class=\"note-s\">Cuando se selecciona el modo fast</span></dd><dt>Modo flex</dt><dd>Sin especificar <span class=\"note-s\">Cuando se selecciona el modo flex</span></dd><dt>Esfuerzo máximo de razonamiento</dt><dd>Sin especificar <span class=\"note-s\">Cuando el esfuerzo máximo de razonamiento usa el ajuste default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarifas estimadas para comparar</h4><h4>Precios por configuración</h4><p class=\"note-s\">Relaciona cada cargo con las condiciones mostradas. Usa una tarifa para cada conjunto de configuraciones alternativas.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuración</th><th>Tabla de tarifas</th><th>Cantidad prevista</th><th>Componente del cargo</th><th>Resolución de referencia</th><th>Modo de referencia</th><th>Audio de referencia</th><th>Unidad de facturación</th><th>Condiciones de facturación</th><th>Cargo</th></tr></thead><tbody><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Tarifas base por token</th><td data-cell-label=\"Tabla de tarifas\"><span class=\"card-cell-label\">Tabla de tarifas</span>Tarifa base</td><td data-cell-label=\"Cantidad prevista\"><span class=\"card-cell-label\">Cantidad prevista</span>—</td><td data-cell-label=\"Componente del cargo\"><span class=\"card-cell-label\">Componente del cargo</span>—</td><td data-cell-label=\"Resolución de referencia\"><span class=\"card-cell-label\">Resolución de referencia</span>—</td><td data-cell-label=\"Modo de referencia\"><span class=\"card-cell-label\">Modo de referencia</span>—</td><td data-cell-label=\"Audio de referencia\"><span class=\"card-cell-label\">Audio de referencia</span>—</td><td data-cell-label=\"Unidad de facturación\"><span class=\"card-cell-label\">Unidad de facturación</span>—</td><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>—</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Entrada · Tokens de entrada · Estimación solo para comparar</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Salida · Tokens de salida · Estimación solo para comparar</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Lectura de caché · Estimación solo para comparar</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escritura en caché · Estimación solo para comparar</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escritura en caché, 1 hora · Estimación solo para comparar</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Salida de video · tarifa de referencia</th><td data-cell-label=\"Tabla de tarifas\"><span class=\"card-cell-label\">Tabla de tarifas</span>—</td><td data-cell-label=\"Cantidad prevista\"><span class=\"card-cell-label\">Cantidad prevista</span>—</td><td data-cell-label=\"Componente del cargo\"><span class=\"card-cell-label\">Componente del cargo</span><code>reference_output_rate</code></td><td data-cell-label=\"Resolución de referencia\"><span class=\"card-cell-label\">Resolución de referencia</span>—</td><td data-cell-label=\"Modo de referencia\"><span class=\"card-cell-label\">Modo de referencia</span>—</td><td data-cell-label=\"Audio de referencia\"><span class=\"card-cell-label\">Audio de referencia</span>—</td><td data-cell-label=\"Unidad de facturación\"><span class=\"card-cell-label\">Unidad de facturación</span>por segundo de salida</td><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>—</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Salida · Tarifa de referencia por segundo de video de salida · Estimación solo para comparar</span> <b>$0.168</b> <span class=\"price-unit\">por segundo de salida</span></div></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Precio del video</th><td data-cell-label=\"Tabla de tarifas\"><span class=\"card-cell-label\">Tabla de tarifas</span>—</td><td data-cell-label=\"Cantidad prevista\"><span class=\"card-cell-label\">Cantidad prevista</span>—</td><td data-cell-label=\"Componente del cargo\"><span class=\"card-cell-label\">Componente del cargo</span>—</td><td data-cell-label=\"Resolución de referencia\"><span class=\"card-cell-label\">Resolución de referencia</span>—</td><td data-cell-label=\"Modo de referencia\"><span class=\"card-cell-label\">Modo de referencia</span>—</td><td data-cell-label=\"Audio de referencia\"><span class=\"card-cell-label\">Audio de referencia</span>—</td><td data-cell-label=\"Unidad de facturación\"><span class=\"card-cell-label\">Unidad de facturación</span>por segundo de video</td><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>configuración de audio: with_audio</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Salida · Precio del video · Estimación solo para comparar</span> <b>$0.252</b> <span class=\"price-unit\">por segundo de video</span></div></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Imagen a video (imágenes de fotogramas) · 1080p · tarifa de referencia</th><td data-cell-label=\"Tabla de tarifas\"><span class=\"card-cell-label\">Tabla de tarifas</span>—</td><td data-cell-label=\"Cantidad prevista\"><span class=\"card-cell-label\">Cantidad prevista</span>—</td><td data-cell-label=\"Componente del cargo\"><span class=\"card-cell-label\">Componente del cargo</span><code>reference_output_rate</code></td><td data-cell-label=\"Resolución de referencia\"><span class=\"card-cell-label\">Resolución de referencia</span>1080p</td><td data-cell-label=\"Modo de referencia\"><span class=\"card-cell-label\">Modo de referencia</span>Imagen a video (fotogramas)</td><td data-cell-label=\"Audio de referencia\"><span class=\"card-cell-label\">Audio de referencia</span>Sin audio</td><td data-cell-label=\"Unidad de facturación\"><span class=\"card-cell-label\">Unidad de facturación</span>por segundo de salida</td><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>—</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Salida · Tarifa de referencia por segundo de video de salida · Estimación solo para comparar</span> <b>$0.168</b> <span class=\"price-unit\">por segundo de salida</span></div></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Precio del video</th><td data-cell-label=\"Tabla de tarifas\"><span class=\"card-cell-label\">Tabla de tarifas</span>—</td><td data-cell-label=\"Cantidad prevista\"><span class=\"card-cell-label\">Cantidad prevista</span>—</td><td data-cell-label=\"Componente del cargo\"><span class=\"card-cell-label\">Componente del cargo</span>—</td><td data-cell-label=\"Resolución de referencia\"><span class=\"card-cell-label\">Resolución de referencia</span>—</td><td data-cell-label=\"Modo de referencia\"><span class=\"card-cell-label\">Modo de referencia</span>—</td><td data-cell-label=\"Audio de referencia\"><span class=\"card-cell-label\">Audio de referencia</span>—</td><td data-cell-label=\"Unidad de facturación\"><span class=\"card-cell-label\">Unidad de facturación</span>por segundo de video</td><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>modo de generación: image_to_video; resolución: 720p</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Salida · Precio del video · Estimación solo para comparar</span> <b>$0.168</b> <span class=\"price-unit\">por segundo de video</span></div></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Texto a video · 1080p · tarifa de referencia</th><td data-cell-label=\"Tabla de tarifas\"><span class=\"card-cell-label\">Tabla de tarifas</span>—</td><td data-cell-label=\"Cantidad prevista\"><span class=\"card-cell-label\">Cantidad prevista</span>—</td><td data-cell-label=\"Componente del cargo\"><span class=\"card-cell-label\">Componente del cargo</span><code>reference_output_rate</code></td><td data-cell-label=\"Resolución de referencia\"><span class=\"card-cell-label\">Resolución de referencia</span>1080p</td><td data-cell-label=\"Modo de referencia\"><span class=\"card-cell-label\">Modo de referencia</span>Texto a video</td><td data-cell-label=\"Audio de referencia\"><span class=\"card-cell-label\">Audio de referencia</span>Sin audio</td><td data-cell-label=\"Unidad de facturación\"><span class=\"card-cell-label\">Unidad de facturación</span>por segundo de salida</td><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>—</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Salida · Tarifa de referencia por segundo de video de salida · Estimación solo para comparar</span> <b>$0.168</b> <span class=\"price-unit\">por segundo de salida</span></div></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Texto a video · 480p · tarifa de referencia</th><td data-cell-label=\"Tabla de tarifas\"><span class=\"card-cell-label\">Tabla de tarifas</span>—</td><td data-cell-label=\"Cantidad prevista\"><span class=\"card-cell-label\">Cantidad prevista</span>—</td><td data-cell-label=\"Componente del cargo\"><span class=\"card-cell-label\">Componente del cargo</span><code>reference_output_rate</code></td><td data-cell-label=\"Resolución de referencia\"><span class=\"card-cell-label\">Resolución de referencia</span>480p</td><td data-cell-label=\"Modo de referencia\"><span class=\"card-cell-label\">Modo de referencia</span>Texto a video</td><td data-cell-label=\"Audio de referencia\"><span class=\"card-cell-label\">Audio de referencia</span>Sin audio</td><td data-cell-label=\"Unidad de facturación\"><span class=\"card-cell-label\">Unidad de facturación</span>por segundo de salida</td><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>—</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Salida · Tarifa de referencia por segundo de video de salida · Estimación solo para comparar</span> <b>$0.168</b> <span class=\"price-unit\">por segundo de salida</span></div></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Precio del video</th><td data-cell-label=\"Tabla de tarifas\"><span class=\"card-cell-label\">Tabla de tarifas</span>—</td><td data-cell-label=\"Cantidad prevista\"><span class=\"card-cell-label\">Cantidad prevista</span>—</td><td data-cell-label=\"Componente del cargo\"><span class=\"card-cell-label\">Componente del cargo</span>—</td><td data-cell-label=\"Resolución de referencia\"><span class=\"card-cell-label\">Resolución de referencia</span>—</td><td data-cell-label=\"Modo de referencia\"><span class=\"card-cell-label\">Modo de referencia</span>—</td><td data-cell-label=\"Audio de referencia\"><span class=\"card-cell-label\">Audio de referencia</span>—</td><td data-cell-label=\"Unidad de facturación\"><span class=\"card-cell-label\">Unidad de facturación</span>por segundo de video</td><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>modo de generación: text_to_video; resolución: 720p</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Salida · Precio del video · Estimación solo para comparar</span> <b>$0.168</b> <span class=\"price-unit\">por segundo de video</span></div></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Costo estimado de generación</th><td data-cell-label=\"Tabla de tarifas\"><span class=\"card-cell-label\">Tabla de tarifas</span>—</td><td data-cell-label=\"Cantidad prevista\"><span class=\"card-cell-label\">Cantidad prevista</span>estimación para una generación</td><td data-cell-label=\"Componente del cargo\"><span class=\"card-cell-label\">Componente del cargo</span>—</td><td data-cell-label=\"Resolución de referencia\"><span class=\"card-cell-label\">Resolución de referencia</span>—</td><td data-cell-label=\"Modo de referencia\"><span class=\"card-cell-label\">Modo de referencia</span>—</td><td data-cell-label=\"Audio de referencia\"><span class=\"card-cell-label\">Audio de referencia</span>—</td><td data-cell-label=\"Unidad de facturación\"><span class=\"card-cell-label\">Unidad de facturación</span>—</td><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>—</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Salida · Costo estimado de generación · Estimación solo para comparar</span> <b>$0.504</b> <span class=\"price-unit\">estimación previa a la generación</span></div><p class=\"note-s\">Esta estimación no es un cargo adicional ni una tarifa fija por la generación completada.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserva un monto estimado antes de la solicitud. Tras obtener el resultado, liquida el cargo definitivo según el uso medido. En las respuestas en flujo, la liquidación usa el registro de uso final. <a href=\"/docs/es-mx/billing/reserve/\">Cómo funcionan la reserva y la liquidación →</a></p><div data-declared-reference-pricing><h4>Detalles de la tarifa de referencia</h4><p class=\"note-s\">Las tablas de referencia del modelo no cambian la selección del método, las cotizaciones ni los cargos. Los cargos aplicados usan las tarifas del método Ailoot seleccionado.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Referencias de precios por configuración de video</summary><h4>Precios por configuración</h4><p class=\"note-s\">Relaciona cada cargo con las condiciones mostradas. Usa una tarifa para cada conjunto de configuraciones alternativas.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuración</th><th>Condiciones de facturación</th><th>Cargo</th></tr></thead><tbody><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Precio del video</th><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>No se declara ninguna condición adicional en esta clave de precios.</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Salida · Precio del video</span> <b>$0.168</b> <span class=\"price-unit\">por segundo de video</span></div><p class=\"note-s\">Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.</p></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Precio del video</th><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>configuración de audio: with_audio</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Salida · Precio del video</span> <b>$0.252</b> <span class=\"price-unit\">por segundo de video</span></div><p class=\"note-s\">Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.</p></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Precio del video</th><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>modo de generación: text_to_video; resolución: 480p</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Salida · Precio del video</span> <b>$0.168</b> <span class=\"price-unit\">por segundo de video</span></div><p class=\"note-s\">Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.</p></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Precio del video</th><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>modo de generación: text_to_video; resolución: 720p</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Salida · Precio del video</span> <b>$0.168</b> <span class=\"price-unit\">por segundo de video</span></div><p class=\"note-s\">Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.</p></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Precio del video</th><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>modo de generación: image_to_video; resolución: 720p</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Salida · Precio del video</span> <b>$0.168</b> <span class=\"price-unit\">por segundo de video</span></div><p class=\"note-s\">Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.</p></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Precio del video</th><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>modo de generación: text_to_video; resolución: 1080p</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Salida · Precio del video</span> <b>$0.168</b> <span class=\"price-unit\">por segundo de video</span></div><p class=\"note-s\">Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.</p></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Precio del video</th><td data-cell-label=\"Condiciones de facturación\"><span class=\"card-cell-label\">Condiciones de facturación</span>modo de generación: image_to_video; resolución: 1080p</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Salida · Precio del video</span> <b>$0.168</b> <span class=\"price-unit\">por segundo de video</span></div><p class=\"note-s\">Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.</p></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Solicitudes de ejemplo</h3><h4>Ailoot Ultra · Video</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes del código\"><button class=\"cg-tab\" id=\"model-code-1782-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1782-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · crea un video</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copiar código\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1782-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1782-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nfrom pathlib import Path\nPath(&#39;request.json&#39;).write_text(&#39;{&quot;aspect_ratio&quot;:&quot;16:9&quot;,&quot;duration&quot;:8,&quot;model&quot;:&quot;kwaivgi/kling-v3.0-std&quot;,&quot;prompt&quot;:&quot;A serene mountain landscape at sunset&quot;,&quot;resolution&quot;:&quot;720p&quot;}&#39;, encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Recibir y guardar resultados</h3><h4>Ailoot Ultra · Video</h4><p class=\"note-s\">URL firmadas de contenido que te pertenece</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{public_id}</code></li><li><code>GET /v1/videos/{public_id}/content</code></li></ul><h5>Consultar el estado de la tarea</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes del código\"><button class=\"cg-tab\" id=\"model-code-1783-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1783-panel-0\" aria-selected=\"true\" tabindex=\"0\">Obtener el estado de la operación original con GET</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copiar código\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1783-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1783-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_STATUS_URL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nif not isinstance(r.get(&#39;id&#39;),str) or not r[&#39;id&#39;]:raise SystemExit(&#39;Keep the original response and headers for reconciliation; no returned ID&#39;)\nPath(&#39;status-url.txt&#39;).write_text(&#39;https://api.ailoot.ai/v1/videos/&#39;+quote(r[&#39;id&#39;],safe=&#39;&#39;))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error &quot;$(cat status-url.txt)&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div><details class=\"card-about\"><summary>Otras consultas de contenido</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes del código\"><button class=\"cg-tab\" id=\"model-code-1784-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1784-panel-0\" aria-selected=\"true\" tabindex=\"0\">Guarda todos los resultados completados que te pertenecen</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copiar código\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1784-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1784-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nif r.get(&#39;status&#39;)!=&#39;completed&#39;:raise SystemExit(&#39;Keep the original ID and read its status; never recreate an unknown job&#39;)\nif not isinstance(r.get(&#39;data&#39;),list) or not r[&#39;data&#39;]:raise SystemExit(&#39;Keep the complete original status; no completed outputs supplied&#39;)\nurls=[]\nfor i,u in enumerate(r.get(&#39;data&#39;,[])):\n    if not isinstance(u,str):raise SystemExit(&#39;Keep the original response; unexpected asset shape&#39;)\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin(&#39;https://api.ailoot.ai&#39;,path);z=urlsplit(u)\n    if z.scheme!=&#39;https&#39; or z.netloc!=&#39;api.ailoot.ai&#39; or z.username or z.password:raise SystemExit(&#39;Use the actual returned Ailoot owned content URL&#39;)\n    target=Path(&#39;owned-&#39;+label+&#39;.bin&#39;)\n    subprocess.run([&#39;curl&#39;,&#39;--fail-with-body&#39;,&#39;--silent&#39;,&#39;--show-error&#39;,u,&#39;-H&#39;,&#39;Authorization: Bearer &#39;+os.environ[&#39;AILOOT_API_KEY&#39;],&#39;-D&#39;,str(target)+&#39;.headers&#39;,&#39;-o&#39;,str(target)],check=True)\nprint(&#39;All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.&#39;)\nPY_ASSETS\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Conserva todos los resultados completados</h5><p class=\"note-s\">Guarda todos los videos completados o archivos recibidos; descarga cada URL de archivo que se haya devuelto.</p><p class=\"note-s\">Conserva cada salida real que te pertenezca y los metadatos medidos que se devuelvan con ella.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Si es necesario revisar la respuesta original</h5><p class=\"note-s\">503 result_pending_check + id original + X-Should-Retry:false; nunca repitas el envío original</p></div><details class=\"card-about\" data-output-fields><summary>Campos de respuesta</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Campo</th><th>Tipo</th><th>Significado</th></tr></thead><tbody><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">index</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>integer</td><td data-cell-label=\"Significado\"><span class=\"card-cell-label\">Significado</span>Posición de este video en la lista de salidas, con índice que comienza en cero.</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">content_url</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string</td><td data-cell-label=\"Significado\"><span class=\"card-cell-label\">Significado</span>URL HTTPS firmada de descarga de este video completado.</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">sha256</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string | null</td><td data-cell-label=\"Significado\"><span class=\"card-cell-label\">Significado</span>Resumen SHA-256 de los bytes del video original; null si no está disponible.</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">size_bytes</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>integer | null</td><td data-cell-label=\"Significado\"><span class=\"card-cell-label\">Significado</span>Tamaño del archivo de video original en bytes; null si no está disponible.</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">duration_ms</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>integer | null</td><td data-cell-label=\"Significado\"><span class=\"card-cell-label\">Significado</span>Duración medida del video en milisegundos; null si no está disponible.</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">width</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>integer | null</td><td data-cell-label=\"Significado\"><span class=\"card-cell-label\">Significado</span>Ancho del video en píxeles; null si no está disponible.</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">height</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>integer | null</td><td data-cell-label=\"Significado\"><span class=\"card-cell-label\">Significado</span>Alto del video en píxeles; null si no está disponible.</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">video_codec</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string | null</td><td data-cell-label=\"Significado\"><span class=\"card-cell-label\">Significado</span>Identificador del códec de video; null si no se registró.</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">has_audio</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>boolean | null</td><td data-cell-label=\"Significado\"><span class=\"card-cell-label\">Significado</span>Indica si el video contiene una pista de audio; null si no se midió.</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">audio_codec</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string | null</td><td data-cell-label=\"Significado\"><span class=\"card-cell-label\">Significado</span>Identificador del códec de audio; null cuando no se registra ningún identificador.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Errores y siguientes pasos</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Respuesta</th><th>Condición</th><th>Siguiente paso</th></tr></thead><tbody><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>El acceso al video no está disponible o no se encontró este ID de video.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Verifica el acceso al video. Para un video existente, usa su ID público original y la misma clave API.</td></tr><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>La clave API no coincide con la cuenta autenticada.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Revisa tu clave API y el acceso de tu cuenta antes de enviar.</td></tr><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>No se pudo leer la solicitud o el índice de descarga no es válido.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Corrige el cuerpo de la solicitud. Para una descarga, elige un índice de salida devuelto por la tarea original.</td></tr><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>No se puede cotizar la configuración de video seleccionada.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Elige una configuración de video compatible y completa sus opciones obligatorias antes de enviar una solicitud corregida.</td></tr><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>Una entrada de video o la tarea original de continuación no es válida.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Usa entradas HTTPS válidas. Para una continuación, usa el ID público de tu video original completado con la misma clave API.</td></tr><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>402 · <code>billing_error</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>El saldo disponible o los límites no permiten reservar fondos.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Revisa tu saldo disponible y tus límites antes de enviar una solicitud nueva.</td></tr><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>503 · <code>server_error</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>La verificación del video, el almacenamiento o el acceso al servicio no están disponibles temporalmente.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Espera a que el servicio esté disponible. Si ya tienes un ID de video, consulta esa tarea original en lugar de crear otra generación.</td></tr><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>El resultado y el cargo del video original requieren verificación.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Conserva el ID de video devuelto y consulta esa tarea. No envíes una solicitud de generación de reemplazo mientras se verifica.</td></tr><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>503 · <code>owned_result_unavailable</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>La descarga del video existente no está disponible temporalmente.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Consulta más tarde la misma tarea de video y descarga su salida existente. Una generación nueva crea una operación independiente.</td></tr><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>409 · <code>video_not_ready</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>El contenido del video no se ha publicado.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Consulta el estado de la tarea original. Descarga cuando indique completed; si indica failed, sigue su aviso de verificación del cargo.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias del modelo</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=kwaivgi%2Fkling-v3.0-std&amp;route=Ultra&amp;caller=kwaivgi%2Fkling-v3.0-std&amp;fmt=videos\"><code>kwaivgi/kling-v3.0-std</code></a></span></p><h4>Alias de rutas de métodos</h4><p class=\"note-s\">Usa las rutas de método indicadas arriba.</p><h4>ID de modelo relacionados</h4><p class=\"note-s\"><a href=\"#m=kwaivgi%2Fkling-v3.0-std&amp;route=Ultra&amp;caller=kwaivgi%2Fkling-v3.0-std&amp;fmt=videos\"><code>kwaivgi/kling-v3.0-std</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "kwaivgi/kling-v3.0-std",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "kwaivgi/kling-v3.0-std",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|kwaivgi%2Fkling-v3.0-std",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Las tarifas mostradas permiten estimar el costo antes de la generación. El cargo final se calcula a partir del costo registrado para la generación original. La duración medida de la salida y las cantidades estimadas no son la cantidad facturable final.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Conserva cada salida real que te pertenezca y los metadatos medidos que se devuelvan con ella.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "El acceso al video no está disponible o no se encontró este ID de video.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Verifica el acceso al video. Para un video existente, usa su ID público original y la misma clave API.",
                "type": "not_found_error"
              },
              {
                "condition": "La clave API no coincide con la cuenta autenticada.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Revisa tu clave API y el acceso de tu cuenta antes de enviar.",
                "type": "authentication_error"
              },
              {
                "condition": "No se pudo leer la solicitud o el índice de descarga no es válido.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Corrige el cuerpo de la solicitud. Para una descarga, elige un índice de salida devuelto por la tarea original.",
                "type": "invalid_request_error"
              },
              {
                "condition": "No se puede cotizar la configuración de video seleccionada.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Elige una configuración de video compatible y completa sus opciones obligatorias antes de enviar una solicitud corregida.",
                "type": "price_unavailable"
              },
              {
                "condition": "Una entrada de video o la tarea original de continuación no es válida.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Usa entradas HTTPS válidas. Para una continuación, usa el ID público de tu video original completado con la misma clave API.",
                "type": "invalid_request_error"
              },
              {
                "condition": "El saldo disponible o los límites no permiten reservar fondos.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Revisa tu saldo disponible y tus límites antes de enviar una solicitud nueva.",
                "type": "billing_error"
              },
              {
                "condition": "La verificación del video, el almacenamiento o el acceso al servicio no están disponibles temporalmente.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Espera a que el servicio esté disponible. Si ya tienes un ID de video, consulta esa tarea original en lugar de crear otra generación.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "El resultado y el cargo del video original requieren verificación.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Conserva el ID de video devuelto y consulta esa tarea. No envíes una solicitud de generación de reemplazo mientras se verifica.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "La descarga del video existente no está disponible temporalmente.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Consulta más tarde la misma tarea de video y descarga su salida existente. Una generación nueva crea una operación independiente.",
                "type": "server_error"
              },
              {
                "condition": "El contenido del video no se ha publicado.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Consulta el estado de la tarea original. Descarga cuando indique completed; si indica failed, sigue su aviso de verificación del cargo.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + id original + X-Should-Retry:false; nunca repitas el envío original"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-v3.0-std"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Proporciona prompt como texto y duration en segundos enteros. Elige una resolución compatible; agrega una relación de aspecto o usa un tamaño de la lista.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Una instrucción escrita."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-v3.0-std"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images es un arreglo. Cada objeto de fotograma tiene type, image_url y frame_type; image_url contiene url. Establece type en image_url. Usa first_frame con last_frame opcional. Cada función de fotograma puede aparecer como máximo una vez. Proporciona una URL HTTPS pública de imagen para cada fotograma. Elige una resolución compatible; agrega una relación de aspecto o usa un tamaño de la lista.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Una instrucción escrita y una imagen del primer fotograma."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Posición de este video en la lista de salidas, con índice que comienza en cero.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "URL HTTPS firmada de descarga de este video completado.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "Resumen SHA-256 de los bytes del video original; null si no está disponible.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Tamaño del archivo de video original en bytes; null si no está disponible.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Duración medida del video en milisegundos; null si no está disponible.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Ancho del video en píxeles; null si no está disponible.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Alto del video en píxeles; null si no está disponible.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Identificador del códec de video; null si no se registró.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Indica si el video contiene una pista de audio; null si no se midió.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Identificador del códec de audio; null cuando no se registra ningún identificador.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "URL firmadas de contenido que te pertenece",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "kwaivgi/kling-v3.0-std"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "kwaivgi/kling-v3.0-std"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "720p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Omitir esta opción selecciona el precio con audio. Establécela en false para seleccionar el precio sin audio. Revisa has_audio en el resultado para saber si se devolvió una pista de audio.",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Estas claves describen cada objeto de fotograma; image_url contiene únicamente url. Omite frame_images para una solicitud de solo texto.",
                "content": "Arreglo de objetos de fotograma. Cada objeto tiene type=image_url, image_url que contiene url y frame_type. Usa una URL HTTPS de imagen y establece frame_type en first_frame o last_frame. Cada función de fotograma puede aparecer como máximo una vez.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxItems": 0,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1280x720",
                  "720x1280",
                  "720x720"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "model": {
                  "const": "kwaivgi/kling-v3.0-std"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "720p"
                  ]
                },
                "seed": false,
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Source resolution enum is720p.480p/1080p price keys are inventory entries, not additional admitted resolution controls."
              ]
            },
            "unsupported": [
              "seed",
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": true,
              "quoted_unit": "per output second",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Salida de video · tarifa de referencia",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.252",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.252",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "image_to_video_frame_images"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Imagen a video (imágenes de fotogramas) · 1080p · tarifa de referencia",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "modo de generación: image_to_video; resolución: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Precio del video",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Texto a video · 1080p · tarifa de referencia",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "480p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Texto a video · 480p · tarifa de referencia",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_480p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: text_to_video; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Esta estimación no es un cargo adicional ni una tarifa fija por la generación completada.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Costo estimado de generación",
            "units": [
              {
                "amount": "0.504",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.504",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"kwaivgi/kling-v3.0-std\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": true,
              "quoted_unit": "per output second",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Video output · reference rate",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.252",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.252",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "image_to_video_frame_images"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Image to video (frame images) · 1080p · reference rate",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: image_to_video; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Text to video · 1080p · reference rate",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "480p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Text to video · 480p · reference rate",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_480p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: text_to_video; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.504",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.504",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "kwaivgi/kling-v3.0-std",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.252",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_with_audio",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.252",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_to_video_duration_seconds_1080p",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_to_video_duration_seconds_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "text_to_video_duration_seconds_1080p",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "text_to_video_duration_seconds_480p",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "text_to_video_duration_seconds_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.504",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.504",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "kwaivgi/kling-v3.0-std",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "91afd05564d0bb14385672f370fdcf20f0b0896a5a86be28e22e2fdb1d2001b2",
    "input_html_sha256": "79e143fd9190ef7da395753a705810835fe89ed4a654f051c20768d8f49a7448",
    "private_audit_sha256": "205d0160714c9aea3e8ff5aefe637fabfe827a51b39c5bc2804f3f145c4c3a23",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/es-mx/kwaivgi-kling-v3-0-std/",
    "description": "Kling VIDEO 3.0 Standard es el perfil de video de 720p de Kuaishou para encargos de texto e imagen. Crea escenas de tres a quince segundos con audio nativo, referencias de sujeto, guía de primer/último fotograma y narración de una o varias tomas.",
    "locale": "es-mx",
    "md_url": "https://ailoot.ai/models/es-mx/kwaivgi-kling-v3-0-std/index.md",
    "title": "Kling: Video v3.0 Standard — Ailoot",
    "url": "https://ailoot.ai/models/es-mx/kwaivgi-kling-v3-0-std/"
  },
  "rawModel": {
    "about": "Kling VIDEO 3.0 Standard es el perfil de 720p de Kuaishou para generar una escena desde texto o imagen. Usa audio nativo, referencias de sujeto y narración de varias tomas de VIDEO 3.0, con duración flexible de tres a quince segundos. Sirve para desarrollar una dirección visual, previsualizar una narración corta o crear una escena compacta con acción y sonido definidos.\n\nPara una escena con texto, establece sujeto, entorno, acción, luz y cámara. Para una con imagen, prepara un inicio que muestre claramente apariencia y composición a animar. Un encargo original podría mostrar un personaje junto a una mesa de taller y describir que toma un objeto pequeño mientras la cámara se acerca. Separa en la redacción movimiento del sujeto y de cámara.\n\nLa generación de varias tomas puede planear automáticamente la cobertura desde la descripción. La dirección personalizada asigna contenido y duración a cada toma. El perfil del fabricante acepta de una a seis tomas, máximo 512 caracteres por toma y al menos un segundo cada una. Las duraciones deben sumar la longitud total. Cuando una vista continua comunica claramente la escena, una instrucción de toma única evita transiciones innecesarias.\n\nUn storyboard breve puede comenzar con el entorno, pasar a la acción y terminar en el detalle que explica el resultado. Especifica qué sujeto permanece y cómo cambia el encuadre. El modo automático adapta la cobertura, mientras que una secuencia personalizada da instrucciones explícitas para cada parte. La instrucción normal única acepta hasta 2,500 caracteres en la referencia del fabricante.\n\nLos controles de referencia ayudan a anclar personajes, objetos y entorno. Usa material claro y una descripción estable para cada sujeto. El perfil documentado basado en imagen permite hasta tres elementos preparados. Para una escena ilustrada de producto, una referencia puede establecer el objeto y la composición inicial dónde está; la instrucción de movimiento describe el evento a su alrededor. Comprueba la apariencia en toda la toma en vez de suponer que la referencia evita cualquier cambio.\n\nLos extremos pueden guiar una transición condicionada por imagen hacia una composición final. Usa fotogramas con conexión plausible y describe la acción entre ellos. El perfil acepta JPG, JPEG y PNG de hasta 10 MB, con dimensiones de al menos 300 píxeles; la relación inicial debe estar entre 1:2.5 y 2.5:1. Prepara los fotogramas para esa tarea en vez de tratar una descripción de storyboard como paquete intercambiable de entradas.\n\nStandard puede generar audio nativo al activar ese modo; la referencia lo deja apagado por defecto. Describe líneas, atmósfera y sonidos pertinentes como parte de la escena. VIDEO 3.0 admite tratamientos de habla en chino, inglés, japonés, coreano y español, incluidos cambios de idioma y acentos o dialectos compatibles. La guía dice que el diálogo escrito en otro idioma se traduce al inglés. Identifica claramente al hablante en escenas con varios personajes y deja las líneas lo bastante cortas para la interpretación.\n\nUn encargo original puede asignar una línea al Hablante A, una reacción visible al Hablante B y un cambio de vista acorde con el intercambio. Describe el sonido del entorno aparte del diálogo para que un efecto de fondo no se vuelva una instrucción ambigua sobre habla. Usa referencias para apariencia y texto para acciones y palabras.\n\nLas letras visibles también forman parte del flujo 3.0. Una imagen fuente puede contener letrero, subtítulo o etiqueta de producto cuya apariencia importe durante la animación. Identifica el texto y su función y revisa ortografía, legibilidad y estabilidad. Para una pieza breve de campaña, destaca el mensaje principal en la composición en vez de depender de una etiqueta diminuta de fondo.\n\nLa salida Standard es 720p. Pro es el perfil 1080p seleccionado por separado y 4K nativo es otro modo del fabricante, no un ajuste automático de Standard. Las relaciones de texto incluyen 16:9, 9:16 y 1:1. Elige formato y encuadre para la ubicación prevista y conserva esa dirección visual al comparar cambios de acción, luz u orden de tomas.\n\nUna generación completada aporta video y duración real. La documentación indica que los videos se eliminan después de 30 días, así que guarda pronto el clip. Conserva encargo, referencias y perfil para mantener un punto de partida consistente en futuras revisiones. Revisa acción, continuidad, cobertura de cámara, diálogo y letras en el contexto de uso. Corregir el detalle fallido sirve más que sustituir todo el encargo por instrucciones inconexas.",
    "alias_of": null,
    "aliases": [],
    "author": "Kuaishou",
    "available": null,
    "canonical_model": "kwaivgi/kling-v3.0-std",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.504",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.504",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Consulta los precios completos de la configuración en los detalles."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "7f0ee1ca77508996be346955",
        "label": "Referencias de precios por configuración de video",
        "profiles": [
          {
            "basis": "Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.",
            "dimensions": {
              "conditions": "No se declara ninguna condición adicional en esta clave de precios."
            },
            "label": "Precio del video",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.",
            "dimensions": {
              "conditions": "configuración de audio: with_audio"
            },
            "label": "Precio del video",
            "units": [
              {
                "amount": "0.252",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.",
            "dimensions": {
              "conditions": "modo de generación: text_to_video; resolución: 480p"
            },
            "label": "Precio del video",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.",
            "dimensions": {
              "conditions": "modo de generación: text_to_video; resolución: 720p"
            },
            "label": "Precio del video",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.",
            "dimensions": {
              "conditions": "modo de generación: image_to_video; resolución: 720p"
            },
            "label": "Precio del video",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.",
            "dimensions": {
              "conditions": "modo de generación: text_to_video; resolución: 1080p"
            },
            "label": "Precio del video",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.",
            "dimensions": {
              "conditions": "modo de generación: image_to_video; resolución: 1080p"
            },
            "label": "Precio del video",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "kwaivgi/kling-v3.0-std",
    "input": [
      "text",
      "image"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Las tarifas mostradas permiten estimar el costo antes de la generación. El cargo final se calcula a partir del costo registrado para la generación original. La duración medida de la salida y las cantidades estimadas no son la cantidad facturable final.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Conserva cada salida real que te pertenezca y los metadatos medidos que se devuelvan con ella.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "El acceso al video no está disponible o no se encontró este ID de video.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Verifica el acceso al video. Para un video existente, usa su ID público original y la misma clave API.",
                "type": "not_found_error"
              },
              {
                "condition": "La clave API no coincide con la cuenta autenticada.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Revisa tu clave API y el acceso de tu cuenta antes de enviar.",
                "type": "authentication_error"
              },
              {
                "condition": "No se pudo leer la solicitud o el índice de descarga no es válido.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Corrige el cuerpo de la solicitud. Para una descarga, elige un índice de salida devuelto por la tarea original.",
                "type": "invalid_request_error"
              },
              {
                "condition": "No se puede cotizar la configuración de video seleccionada.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Elige una configuración de video compatible y completa sus opciones obligatorias antes de enviar una solicitud corregida.",
                "type": "price_unavailable"
              },
              {
                "condition": "Una entrada de video o la tarea original de continuación no es válida.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Usa entradas HTTPS válidas. Para una continuación, usa el ID público de tu video original completado con la misma clave API.",
                "type": "invalid_request_error"
              },
              {
                "condition": "El saldo disponible o los límites no permiten reservar fondos.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Revisa tu saldo disponible y tus límites antes de enviar una solicitud nueva.",
                "type": "billing_error"
              },
              {
                "condition": "La verificación del video, el almacenamiento o el acceso al servicio no están disponibles temporalmente.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Espera a que el servicio esté disponible. Si ya tienes un ID de video, consulta esa tarea original en lugar de crear otra generación.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "El resultado y el cargo del video original requieren verificación.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Conserva el ID de video devuelto y consulta esa tarea. No envíes una solicitud de generación de reemplazo mientras se verifica.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "La descarga del video existente no está disponible temporalmente.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Consulta más tarde la misma tarea de video y descarga su salida existente. Una generación nueva crea una operación independiente.",
                "type": "server_error"
              },
              {
                "condition": "El contenido del video no se ha publicado.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Consulta el estado de la tarea original. Descarga cuando indique completed; si indica failed, sigue su aviso de verificación del cargo.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + id original + X-Should-Retry:false; nunca repitas el envío original"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-v3.0-std"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Proporciona prompt como texto y duration en segundos enteros. Elige una resolución compatible; agrega una relación de aspecto o usa un tamaño de la lista.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Una instrucción escrita."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-v3.0-std"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images es un arreglo. Cada objeto de fotograma tiene type, image_url y frame_type; image_url contiene url. Establece type en image_url. Usa first_frame con last_frame opcional. Cada función de fotograma puede aparecer como máximo una vez. Proporciona una URL HTTPS pública de imagen para cada fotograma. Elige una resolución compatible; agrega una relación de aspecto o usa un tamaño de la lista.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Una instrucción escrita y una imagen del primer fotograma."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Posición de este video en la lista de salidas, con índice que comienza en cero.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "URL HTTPS firmada de descarga de este video completado.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "Resumen SHA-256 de los bytes del video original; null si no está disponible.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Tamaño del archivo de video original en bytes; null si no está disponible.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Duración medida del video en milisegundos; null si no está disponible.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Ancho del video en píxeles; null si no está disponible.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Alto del video en píxeles; null si no está disponible.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Identificador del códec de video; null si no se registró.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Indica si el video contiene una pista de audio; null si no se midió.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Identificador del códec de audio; null cuando no se registra ningún identificador.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "URL firmadas de contenido que te pertenece",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "kwaivgi/kling-v3.0-std"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "kwaivgi/kling-v3.0-std"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "720p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Omitir esta opción selecciona el precio con audio. Establécela en false para seleccionar el precio sin audio. Revisa has_audio en el resultado para saber si se devolvió una pista de audio.",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Estas claves describen cada objeto de fotograma; image_url contiene únicamente url. Omite frame_images para una solicitud de solo texto.",
                "content": "Arreglo de objetos de fotograma. Cada objeto tiene type=image_url, image_url que contiene url y frame_type. Usa una URL HTTPS de imagen y establece frame_type en first_frame o last_frame. Cada función de fotograma puede aparecer como máximo una vez.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxItems": 0,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1280x720",
                  "720x1280",
                  "720x720"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "model": {
                  "const": "kwaivgi/kling-v3.0-std"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "720p"
                  ]
                },
                "seed": false,
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Source resolution enum is720p.480p/1080p price keys are inventory entries, not additional admitted resolution controls."
              ]
            },
            "unsupported": [
              "seed",
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": true,
              "quoted_unit": "per output second",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Salida de video · tarifa de referencia",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.252",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.252",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "image_to_video_frame_images"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Imagen a video (imágenes de fotogramas) · 1080p · tarifa de referencia",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "modo de generación: image_to_video; resolución: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Precio del video",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Texto a video · 1080p · tarifa de referencia",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "480p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Texto a video · 480p · tarifa de referencia",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_480p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: text_to_video; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Esta estimación no es un cargo adicional ni una tarifa fija por la generación completada.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Costo estimado de generación",
            "units": [
              {
                "amount": "0.504",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.504",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"kwaivgi/kling-v3.0-std\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": true,
              "quoted_unit": "per output second",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Video output · reference rate",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.252",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.252",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "image_to_video_frame_images"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Image to video (frame images) · 1080p · reference rate",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: image_to_video; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "image_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "1080p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Text to video · 1080p · reference rate",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_1080p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": false,
              "quoted_unit": "per output second",
              "rate_generate_audio": false,
              "rate_modes": [
                "text_to_video"
              ],
              "rate_resolution": "480p",
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Text to video · 480p · reference rate",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_480p",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: text_to_video; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.168",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "text_to_video_duration_seconds_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.168",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.504",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.504",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "kwaivgi/kling-v3.0-std",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.252",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_with_audio",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.252",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_to_video_duration_seconds_1080p",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "image_to_video_duration_seconds_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "text_to_video_duration_seconds_1080p",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "text_to_video_duration_seconds_480p",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "text_to_video_duration_seconds_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.504",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.504",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "kwaivgi/kling-v3.0-std",
        "request_model_id": "kwaivgi/kling-v3.0-std",
        "route_label": "Ultra"
      }
    ],
    "name": "Kling: Video v3.0 Standard",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.504,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.504,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [],
          "variant": "duration_seconds"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.168",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [],
              "variant": "duration_seconds"
            },
            "key": "duration_seconds",
            "label": "duration seconds",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "with_audio"
          ],
          "variant": "duration_seconds_with_audio"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.252",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "with_audio"
              ],
              "variant": "duration_seconds_with_audio"
            },
            "key": "duration_seconds_with_audio",
            "label": "duration seconds with audio",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "text_to_video",
            "480p"
          ],
          "variant": "text_to_video_duration_seconds_480p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.168",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "text_to_video",
                "480p"
              ],
              "variant": "text_to_video_duration_seconds_480p"
            },
            "key": "text_to_video_duration_seconds_480p",
            "label": "text to video duration seconds 480p",
            "profile_index": 2,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "text_to_video",
            "720p"
          ],
          "variant": "text_to_video_duration_seconds_720p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.168",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "text_to_video",
                "720p"
              ],
              "variant": "text_to_video_duration_seconds_720p"
            },
            "key": "text_to_video_duration_seconds_720p",
            "label": "text to video duration seconds 720p",
            "profile_index": 3,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "image_to_video",
            "720p"
          ],
          "variant": "image_to_video_duration_seconds_720p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.168",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "image_to_video",
                "720p"
              ],
              "variant": "image_to_video_duration_seconds_720p"
            },
            "key": "image_to_video_duration_seconds_720p",
            "label": "image to video duration seconds 720p",
            "profile_index": 4,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "text_to_video",
            "1080p"
          ],
          "variant": "text_to_video_duration_seconds_1080p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.168",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "text_to_video",
                "1080p"
              ],
              "variant": "text_to_video_duration_seconds_1080p"
            },
            "key": "text_to_video_duration_seconds_1080p",
            "label": "text to video duration seconds 1080p",
            "profile_index": 5,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "image_to_video",
            "1080p"
          ],
          "variant": "image_to_video_duration_seconds_1080p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.168",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "image_to_video",
                "1080p"
              ],
              "variant": "image_to_video_duration_seconds_1080p"
            },
            "key": "image_to_video_duration_seconds_1080p",
            "label": "image to video duration seconds 1080p",
            "profile_index": 6,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.168",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "output second Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.168",
            "key": "duration_seconds",
            "label": "output second",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.252",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "audio=true",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.252",
            "key": "duration_seconds_with_audio",
            "label": "output second",
            "native_amount_usd_per_unit": "0.252",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=480p · text_to_video Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.168",
            "key": "text_to_video_duration_seconds_480p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=720p · text_to_video",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.168",
            "key": "text_to_video_duration_seconds_720p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=720p · image_to_video",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.168",
            "key": "image_to_video_duration_seconds_720p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=1080p · text_to_video Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.168",
            "key": "text_to_video_duration_seconds_1080p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.168",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=1080p · image_to_video Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.168",
            "key": "image_to_video_duration_seconds_1080p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.168",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          }
        ]
      }
    ],
    "public_id": "kwaivgi/kling-v3.0-std",
    "short": "Kling VIDEO 3.0 Standard es el perfil de video de 720p de Kuaishou para encargos de texto e imagen. Crea escenas de tres a quince segundos con audio nativo, referencias de sujeto, guía de primer/último fotograma y narración de una o varias tomas."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Kling VIDEO 3.0 Standard es el perfil de video de 720p de Kuaishou para encargos de texto e imagen. Crea escenas de tres a quince segundos con audio nativo, referencias de sujeto, guía de primer/último fotograma y narración de una o varias tomas.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "130d2b2d390ea50bd09cc1d610ec405d760cff34e8a4b0675342347d65a82a81",
    "renderer_sha256": "50c5984577eac7205687c05e1c36de5d3ba7a0afdff02194efad3a88143581e8"
  },
  "sourceRevision": "b5243095b250d82aabdbac8fcba7036186b9574182c5d72d1e7e4658439b8218"
}
