{
  "aboutHtml": "<p>Kling VIDEO 3.0 Pro é o perfil profissional do modelo VIDEO 3.0 da Kuaishou. O seu modo Pro documentado produz vídeo a 1080p a partir de instruções em texto ou de uma cena orientada por imagem, com clipes de três a quinze segundos. A edição 3.0 combina áudio nativo, controlos de consistência dos sujeitos e direção de vários planos, dando a uma produção curta uma forma clara de especificar o aspeto, a ação, a cobertura da câmara e o som.</p><p>Comece pela ação principal da cena. Num plano orientado por texto, descreva o sujeito, o ambiente, a luz e o ponto de vista que torna a ação compreensível. Num plano orientado por imagem, deixe que a imagem inicial estabeleça o aspeto e a composição e utilize depois o texto para indicar o que muda ao longo do tempo. Num conceito original de produto, uma imagem preparada pode mostrar o objeto numa superfície de estúdio enquanto a instrução descreve uma revelação lenta do seu material e da sua forma.</p><p>A direção de vários planos oferece cobertura automática ou uma sequência personalizada. A geração automática de vários planos planeia mudanças de enquadramento e de ângulo da câmara a partir das instruções; uma cena que caiba numa vista contínua pode ainda manter-se num único plano. Um storyboard personalizado permite definir o conteúdo e a duração de cada plano. O perfil de planos personalizados do produtor permite entre um e seis planos, com um máximo de 512 caracteres por plano e um mínimo de um segundo para cada um; as suas durações têm de perfazer a duração total do clipe.</p><p>Numa narrativa curta, descreva uma vista de apresentação, a ação principal e um pormenor final como planos separados. Indique o tratamento da câmara e aquilo em que o público deve reparar em cada um. Mantenha consistente nas instruções o aspeto de um sujeito recorrente, alterando deliberadamente a ação e a cobertura. O campo de instrução única na referência do fabricante aceita até 2 500 caracteres; uma sequência personalizada utiliza as suas descrições separadas por plano.</p><p>As referências de sujeitos podem apoiar uma cena orientada por imagem quando a personagem, o produto ou o cenário devem manter-se reconhecíveis. Escolha vistas claras que comuniquem as características que precisa de conservar e nomeie cada sujeito de referência de forma consistente. O perfil documentado orientado por imagem permite até três elementos preparados. Mantenha os papéis das referências bem focados, em vez de combinar vários recursos que dão instruções contraditórias sobre o aspeto do sujeito.</p><p>Os fotogramas inicial e final fornecem limites visuais para uma transição condicionada por imagem. Prepare fotogramas coerentes quanto ao sujeito e à cena pretendida e descreva depois como o movimento os liga. A entrada de fotogramas suportada pelo fabricante utiliza imagens JPG, JPEG ou PNG, com ficheiros até 10 MB, dimensões de pelo menos 300 píxeis e uma proporção da imagem inicial entre 1:2.5 e 2.5:1. Uma tarefa controlada por fotogramas e um storyboard personalizado têm formas próprias de tratar as entradas, pelo que deve organizar o material para o fluxo de trabalho selecionado antes de escrever as instruções completas.</p><p>O áudio nativo pode combinar falas, atmosfera e a interpretação visual. O áudio está desativado por predefinição na referência do fabricante e é ativado para uma cena audiovisual. O perfil linguístico da versão 3.0 inclui chinês, inglês, japonês, coreano e espanhol, juntamente com alternância entre idiomas e os tratamentos de dialeto ou sotaque suportados. O guia do fabricante indica que o diálogo introduzido noutro idioma é traduzido para inglês. Atribua cada fala ao sujeito pretendido e distinga o diálogo do som de fundo, para que as instruções de áudio expliquem quem fala e o que envolve a ação.</p><p>Uma instrução original para duas personagens pode identificar o Interlocutor A e o Interlocutor B, dar uma fala curta a cada um e descrever a resposta visível entre ambos. Mantenha o diálogo proporcional à duração do clipe e identifique quem fala quando o ponto de vista muda. A direção de voz e uma referência de personagem servem propósitos diferentes; as instruções devem indicar a interpretação pretendida, em vez de presumir que uma imagem de referência contém as palavras a dizer.</p><p>VIDEO 3.0 melhora também o tratamento do texto visível numa cena orientada por imagem. Se um sinal, um rótulo ou uma legenda forem importantes, identifique-os nas instruções e preserve o seu aspeto de referência. Reveja a ortografia, a legibilidade e o movimento desse texto no clipe concluído, sobretudo quando transmite uma mensagem de produto ou de campanha. A funcionalidade de texto do modelo orienta a geração sem substituir uma verificação visual final.</p><p>O perfil Pro é a 1080p; o perfil Standard é a 720p. O modo 4K do produtor, selecionado separadamente, é outro perfil de saída, pelo que Pro não deve ser tratado como sinónimo de todas as definições de resolução superior. Para geração orientada por texto, as opções documentadas de enquadramento incluem 16:9, 9:16 e 1:1. Escolha o enquadramento para o local de utilização pretendido e mantenha a composição legível dentro dele.</p><p>A geração decorre como uma tarefa cujo resultado bem-sucedido disponibiliza o ficheiro de vídeo concluído e a duração real. A documentação de resultados do fabricante indica que os vídeos gerados são eliminados após 30 dias, pelo que deve guardar o clipe concluído prontamente. Preserve o vídeo com as suas instruções e os recursos de referência e reveja depois a continuidade dos sujeitos, a ordem dos planos pedida, o movimento da câmara, o diálogo e o texto. Utilize o clipe selecionado como conceito cinematográfico, cena de produto ou narrativa curta e faça uma revisão focada na parte que não correspondeu ao resultado pretendido.</p>",
  "aboutText": "Kling VIDEO 3.0 Pro é o perfil profissional do modelo VIDEO 3.0 da Kuaishou. O seu modo Pro documentado produz vídeo a 1080p a partir de instruções em texto ou de uma cena orientada por imagem, com clipes de três a quinze segundos. A edição 3.0 combina áudio nativo, controlos de consistência dos sujeitos e direção de vários planos, dando a uma produção curta uma forma clara de especificar o aspeto, a ação, a cobertura da câmara e o som.\n\nComece pela ação principal da cena. Num plano orientado por texto, descreva o sujeito, o ambiente, a luz e o ponto de vista que torna a ação compreensível. Num plano orientado por imagem, deixe que a imagem inicial estabeleça o aspeto e a composição e utilize depois o texto para indicar o que muda ao longo do tempo. Num conceito original de produto, uma imagem preparada pode mostrar o objeto numa superfície de estúdio enquanto a instrução descreve uma revelação lenta do seu material e da sua forma.\n\nA direção de vários planos oferece cobertura automática ou uma sequência personalizada. A geração automática de vários planos planeia mudanças de enquadramento e de ângulo da câmara a partir das instruções; uma cena que caiba numa vista contínua pode ainda manter-se num único plano. Um storyboard personalizado permite definir o conteúdo e a duração de cada plano. O perfil de planos personalizados do produtor permite entre um e seis planos, com um máximo de 512 caracteres por plano e um mínimo de um segundo para cada um; as suas durações têm de perfazer a duração total do clipe.\n\nNuma narrativa curta, descreva uma vista de apresentação, a ação principal e um pormenor final como planos separados. Indique o tratamento da câmara e aquilo em que o público deve reparar em cada um. Mantenha consistente nas instruções o aspeto de um sujeito recorrente, alterando deliberadamente a ação e a cobertura. O campo de instrução única na referência do fabricante aceita até 2 500 caracteres; uma sequência personalizada utiliza as suas descrições separadas por plano.\n\nAs referências de sujeitos podem apoiar uma cena orientada por imagem quando a personagem, o produto ou o cenário devem manter-se reconhecíveis. Escolha vistas claras que comuniquem as características que precisa de conservar e nomeie cada sujeito de referência de forma consistente. O perfil documentado orientado por imagem permite até três elementos preparados. Mantenha os papéis das referências bem focados, em vez de combinar vários recursos que dão instruções contraditórias sobre o aspeto do sujeito.\n\nOs fotogramas inicial e final fornecem limites visuais para uma transição condicionada por imagem. Prepare fotogramas coerentes quanto ao sujeito e à cena pretendida e descreva depois como o movimento os liga. A entrada de fotogramas suportada pelo fabricante utiliza imagens JPG, JPEG ou PNG, com ficheiros até 10 MB, dimensões de pelo menos 300 píxeis e uma proporção da imagem inicial entre 1:2.5 e 2.5:1. Uma tarefa controlada por fotogramas e um storyboard personalizado têm formas próprias de tratar as entradas, pelo que deve organizar o material para o fluxo de trabalho selecionado antes de escrever as instruções completas.\n\nO áudio nativo pode combinar falas, atmosfera e a interpretação visual. O áudio está desativado por predefinição na referência do fabricante e é ativado para uma cena audiovisual. O perfil linguístico da versão 3.0 inclui chinês, inglês, japonês, coreano e espanhol, juntamente com alternância entre idiomas e os tratamentos de dialeto ou sotaque suportados. O guia do fabricante indica que o diálogo introduzido noutro idioma é traduzido para inglês. Atribua cada fala ao sujeito pretendido e distinga o diálogo do som de fundo, para que as instruções de áudio expliquem quem fala e o que envolve a ação.\n\nUma instrução original para duas personagens pode identificar o Interlocutor A e o Interlocutor B, dar uma fala curta a cada um e descrever a resposta visível entre ambos. Mantenha o diálogo proporcional à duração do clipe e identifique quem fala quando o ponto de vista muda. A direção de voz e uma referência de personagem servem propósitos diferentes; as instruções devem indicar a interpretação pretendida, em vez de presumir que uma imagem de referência contém as palavras a dizer.\n\nVIDEO 3.0 melhora também o tratamento do texto visível numa cena orientada por imagem. Se um sinal, um rótulo ou uma legenda forem importantes, identifique-os nas instruções e preserve o seu aspeto de referência. Reveja a ortografia, a legibilidade e o movimento desse texto no clipe concluído, sobretudo quando transmite uma mensagem de produto ou de campanha. A funcionalidade de texto do modelo orienta a geração sem substituir uma verificação visual final.\n\nO perfil Pro é a 1080p; o perfil Standard é a 720p. O modo 4K do produtor, selecionado separadamente, é outro perfil de saída, pelo que Pro não deve ser tratado como sinónimo de todas as definições de resolução superior. Para geração orientada por texto, as opções documentadas de enquadramento incluem 16:9, 9:16 e 1:1. Escolha o enquadramento para o local de utilização pretendido e mantenha a composição legível dentro dele.\n\nA geração decorre como uma tarefa cujo resultado bem-sucedido disponibiliza o ficheiro de vídeo concluído e a duração real. A documentação de resultados do fabricante indica que os vídeos gerados são eliminados após 30 dias, pelo que deve guardar o clipe concluído prontamente. Preserve o vídeo com as suas instruções e os recursos de referência e reveja depois a continuidade dos sujeitos, a ordem dos planos pedida, o movimento da câmara, o diálogo e o texto. Utilize o clipe selecionado como conceito cinematográfico, cena de produto ou narrativa curta e faça uma revisão focada na parte que não correspondeu ao resultado pretendido.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "ce4f4138156a7b369622b325a2c9b4f48ff79adc050e6fca4d945abbc63db923",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "pt-pt",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Kling: Video v3.0 Pro</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fechar\">×</button></div><div class=\"idline\"><span>Kuaishou /</span><code>kwaivgi/kling-v3.0-pro</code><button type=\"button\" id=\"copy-id\">Copiar ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Secções do cartão do modelo\"><button type=\"button\" data-card-jump=\"overview\">Introdução</button><button type=\"button\" data-card-jump=\"methods\">Entradas e métodos</button><button type=\"button\" data-card-jump=\"pricing\">Tarifários</button><button type=\"button\" data-card-jump=\"examples\">Exemplos</button><button type=\"button\" data-card-jump=\"results\">Resultados</button><button type=\"button\" data-card-jump=\"aliases\">Aliases</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Métodos da 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-pro\">Vídeo</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\">Introdução</h3><p class=\"mdesc-full\">Kling VIDEO 3.0 Pro é o perfil profissional de vídeo a 1080p da Kuaishou para cenas orientadas por texto e imagem. Combina clipes de três a quinze segundos, áudio nativo, fotogramas de início e fim guiados e direção num único plano ou em vários planos para conceitos cinematográficos e produções curtas.</p><dl class=\"card-io\" data-card-io><div><dt>Entradas aceites</dt><dd>Texto · Imagens</dd></div><div><dt>Resultados</dt><dd>Vídeo</dd></div></dl><details class=\"card-about\"><summary>Sobre o modelo</summary><p class=\"note-s\" data-model-method-boundary>Esta descrição apresenta as capacidades do modelo. As entradas, saídas e opções disponíveis no Ailoot para o método selecionado estão indicadas abaixo.</p><div class=\"mabout\" id=\"m-about\"><p>Kling VIDEO 3.0 Pro é o perfil profissional do modelo VIDEO 3.0 da Kuaishou. O seu modo Pro documentado produz vídeo a 1080p a partir de instruções em texto ou de uma cena orientada por imagem, com clipes de três a quinze segundos. A edição 3.0 combina áudio nativo, controlos de consistência dos sujeitos e direção de vários planos, dando a uma produção curta uma forma clara de especificar o aspeto, a ação, a cobertura da câmara e o som.</p><p>Comece pela ação principal da cena. Num plano orientado por texto, descreva o sujeito, o ambiente, a luz e o ponto de vista que torna a ação compreensível. Num plano orientado por imagem, deixe que a imagem inicial estabeleça o aspeto e a composição e utilize depois o texto para indicar o que muda ao longo do tempo. Num conceito original de produto, uma imagem preparada pode mostrar o objeto numa superfície de estúdio enquanto a instrução descreve uma revelação lenta do seu material e da sua forma.</p><p>A direção de vários planos oferece cobertura automática ou uma sequência personalizada. A geração automática de vários planos planeia mudanças de enquadramento e de ângulo da câmara a partir das instruções; uma cena que caiba numa vista contínua pode ainda manter-se num único plano. Um storyboard personalizado permite definir o conteúdo e a duração de cada plano. O perfil de planos personalizados do produtor permite entre um e seis planos, com um máximo de 512 caracteres por plano e um mínimo de um segundo para cada um; as suas durações têm de perfazer a duração total do clipe.</p><p>Numa narrativa curta, descreva uma vista de apresentação, a ação principal e um pormenor final como planos separados. Indique o tratamento da câmara e aquilo em que o público deve reparar em cada um. Mantenha consistente nas instruções o aspeto de um sujeito recorrente, alterando deliberadamente a ação e a cobertura. O campo de instrução única na referência do fabricante aceita até 2 500 caracteres; uma sequência personalizada utiliza as suas descrições separadas por plano.</p><p>As referências de sujeitos podem apoiar uma cena orientada por imagem quando a personagem, o produto ou o cenário devem manter-se reconhecíveis. Escolha vistas claras que comuniquem as características que precisa de conservar e nomeie cada sujeito de referência de forma consistente. O perfil documentado orientado por imagem permite até três elementos preparados. Mantenha os papéis das referências bem focados, em vez de combinar vários recursos que dão instruções contraditórias sobre o aspeto do sujeito.</p><p>Os fotogramas inicial e final fornecem limites visuais para uma transição condicionada por imagem. Prepare fotogramas coerentes quanto ao sujeito e à cena pretendida e descreva depois como o movimento os liga. A entrada de fotogramas suportada pelo fabricante utiliza imagens JPG, JPEG ou PNG, com ficheiros até 10 MB, dimensões de pelo menos 300 píxeis e uma proporção da imagem inicial entre 1:2.5 e 2.5:1. Uma tarefa controlada por fotogramas e um storyboard personalizado têm formas próprias de tratar as entradas, pelo que deve organizar o material para o fluxo de trabalho selecionado antes de escrever as instruções completas.</p><p>O áudio nativo pode combinar falas, atmosfera e a interpretação visual. O áudio está desativado por predefinição na referência do fabricante e é ativado para uma cena audiovisual. O perfil linguístico da versão 3.0 inclui chinês, inglês, japonês, coreano e espanhol, juntamente com alternância entre idiomas e os tratamentos de dialeto ou sotaque suportados. O guia do fabricante indica que o diálogo introduzido noutro idioma é traduzido para inglês. Atribua cada fala ao sujeito pretendido e distinga o diálogo do som de fundo, para que as instruções de áudio expliquem quem fala e o que envolve a ação.</p><p>Uma instrução original para duas personagens pode identificar o Interlocutor A e o Interlocutor B, dar uma fala curta a cada um e descrever a resposta visível entre ambos. Mantenha o diálogo proporcional à duração do clipe e identifique quem fala quando o ponto de vista muda. A direção de voz e uma referência de personagem servem propósitos diferentes; as instruções devem indicar a interpretação pretendida, em vez de presumir que uma imagem de referência contém as palavras a dizer.</p><p>VIDEO 3.0 melhora também o tratamento do texto visível numa cena orientada por imagem. Se um sinal, um rótulo ou uma legenda forem importantes, identifique-os nas instruções e preserve o seu aspeto de referência. Reveja a ortografia, a legibilidade e o movimento desse texto no clipe concluído, sobretudo quando transmite uma mensagem de produto ou de campanha. A funcionalidade de texto do modelo orienta a geração sem substituir uma verificação visual final.</p><p>O perfil Pro é a 1080p; o perfil Standard é a 720p. O modo 4K do produtor, selecionado separadamente, é outro perfil de saída, pelo que Pro não deve ser tratado como sinónimo de todas as definições de resolução superior. Para geração orientada por texto, as opções documentadas de enquadramento incluem 16:9, 9:16 e 1:1. Escolha o enquadramento para o local de utilização pretendido e mantenha a composição legível dentro dele.</p><p>A geração decorre como uma tarefa cujo resultado bem-sucedido disponibiliza o ficheiro de vídeo concluído e a duração real. A documentação de resultados do fabricante indica que os vídeos gerados são eliminados após 30 dias, pelo que deve guardar o clipe concluído prontamente. Preserve o vídeo com as suas instruções e os recursos de referência e reveja depois a continuidade dos sujeitos, a ordem dos planos pedida, o movimento da câmara, o diálogo e o texto. Utilize o clipe selecionado como conceito cinematográfico, cena de produto ou narrativa curta e faça uma revisão focada na parte que não correspondeu ao resultado pretendido.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Disponível no Ailoot · entradas e métodos</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Vídeo</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>Saída</dt><dd><code>video</code></dd></div><div><dt>Formato de saída</dt><dd>bytes MP4 originais; sem normalização nem transcodificação</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 e limites</th><th>Predefinição</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>Obrigatório</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>kwaivgi/kling-v3.0-pro</div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</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>Obrigatório</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</span></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</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>Obrigatório</td><td data-cell-label=\"Valores e limites\"><span class=\"card-cell-label\">Valores e limites</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=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</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 e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>720p</div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</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 e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>16:9, 9:16, 1:1</div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</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 e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>false, true</div><div>Condições: Omitir esta opção seleciona o preço com áudio. Defina-a como false para selecionar o preço sem áudio. Verifique has_audio no resultado para saber se foi devolvida uma faixa de áudio.</div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</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 e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>Número mínimo de elementos: 1</div><div>Número máximo de elementos: 2</div><div>Conteúdo de entrada: Matriz de objetos de fotograma. Cada objeto tem type=image_url, image_url com url e frame_type. Utilize um URL HTTPS de imagem e defina frame_type como first_frame ou last_frame. Cada função de fotograma aparece, no máximo, uma vez.</div><div>Chaves exatas: type, image_url, frame_type</div><div>Condições: Estas chaves descrevem cada objeto de fotograma; image_url contém apenas url. Omita frame_images num pedido apenas de texto.</div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</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 e limites\"><span class=\"card-cell-label\">Valores e limites</span></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</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 e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>1280x720, 720x1280, 720x720</div><div>Padrão: ^[1-9][0-9]*x[1-9][0-9]*$</div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</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 e limites\"><span class=\"card-cell-label\">Valores e limites</span><div>Padrão: ^https://</div></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</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 e limites\"><span class=\"card-cell-label\">Valores e limites</span></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</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 e limites\"><span class=\"card-cell-label\">Valores e limites</span></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</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 e limites\"><span class=\"card-cell-label\">Valores e limites</span></td><td data-cell-label=\"Predefinição\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinição</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Combinações de materiais de entrada</summary><p class=\"note-s\"><b>Texto para vídeo</b> · Uma instrução escrita. · Obrigatório: model, prompt, duration</p><p class=\"note-s\"><code>Forneça prompt como texto e duration em segundos inteiros. Escolha uma resolução suportada; adicione uma proporção ou utilize um tamanho enumerado.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Tipo: string · kwaivgi/kling-v3.0-pro</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Tipo: string · Número máximo de bytes UTF-8: 10 000 · São obrigatórios caracteres que não sejam espaços: Sim</p><p class=\"note-s\"><b>Imagem para vídeo</b> · Uma instrução escrita e uma imagem do primeiro fotograma. · Obrigatório: model, prompt, duration, frame_images</p><p class=\"note-s\"><code>frame_images é uma matriz. Cada objeto de fotograma tem type, image_url e frame_type; image_url contém url. Defina type como image_url. Utilize first_frame com um last_frame opcional. Cada função de fotograma aparece, no máximo, uma vez. Forneça um URL HTTPS público de imagem para cada fotograma. Escolha uma resolução suportada; adicione uma proporção ou utilize um tamanho enumerado.</code></p><p class=\"note-s\">Chaves exatas: type, image_url, frame_type</p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Tipo: string · kwaivgi/kling-v3.0-pro</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Tipo: string · Número máximo de bytes UTF-8: 10 000 · São obrigatórios caracteres que não sejam espaços: Sim</p></details><details class=\"note-s\" data-method-contract><summary>Parâmetros e ciclo de vida do método</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\">Tarifários</h3><div class=\"card-result-process\" data-billing-basis><h5>Cálculo do custo final</h5><p class=\"note-s\">As tarifas apresentadas permitem estimar o custo antes da geração. O montante final cobrado é calculado a partir do custo registado para a geração original. A duração medida do resultado e as quantidades previstas não correspondem à quantidade final faturável.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.</p><dl data-price-conditions><dt>Modo rápido</dt><dd>Não especificado <span class=\"note-s\">Quando o modo rápido está selecionado</span></dd><dt>Modo flex</dt><dd>Não especificado <span class=\"note-s\">Quando o modo flex está selecionado</span></dd><dt>Esforço máximo de raciocínio</dt><dd>Não especificado <span class=\"note-s\">Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarifas estimadas para comparação</h4><h4>Preços por configuração</h4><p class=\"note-s\">Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuração</th><th>Tabela de tarifas</th><th>Quantidade prevista</th><th>Componente do custo</th><th>Resolução de referência</th><th>Modo de referência</th><th>Áudio de referência</th><th>Unidade de faturação</th><th>Condições de faturação</th><th>Custo</th></tr></thead><tbody><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Tarifas base por token</th><td data-cell-label=\"Tabela de tarifas\"><span class=\"card-cell-label\">Tabela de tarifas</span>Tarifa base</td><td data-cell-label=\"Quantidade prevista\"><span class=\"card-cell-label\">Quantidade prevista</span>—</td><td data-cell-label=\"Componente do custo\"><span class=\"card-cell-label\">Componente do custo</span>—</td><td data-cell-label=\"Resolução de referência\"><span class=\"card-cell-label\">Resolução de referência</span>—</td><td data-cell-label=\"Modo de referência\"><span class=\"card-cell-label\">Modo de referência</span>—</td><td data-cell-label=\"Áudio de referência\"><span class=\"card-cell-label\">Áudio de referência</span>—</td><td data-cell-label=\"Unidade de faturação\"><span class=\"card-cell-label\">Unidade de faturação</span>—</td><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>—</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Entrada · Tokens de entrada · Estimativa apenas para comparação</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Saída · Tokens de saída · Estimativa apenas para comparação</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Leitura da cache · Estimativa apenas para comparação</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escrita na cache · Estimativa apenas para comparação</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escrita na cache, 1 hora · Estimativa apenas para comparação</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Saída de vídeo · tarifa de referência</th><td data-cell-label=\"Tabela de tarifas\"><span class=\"card-cell-label\">Tabela de tarifas</span>—</td><td data-cell-label=\"Quantidade prevista\"><span class=\"card-cell-label\">Quantidade prevista</span>—</td><td data-cell-label=\"Componente do custo\"><span class=\"card-cell-label\">Componente do custo</span><code>reference_output_rate</code></td><td data-cell-label=\"Resolução de referência\"><span class=\"card-cell-label\">Resolução de referência</span>—</td><td data-cell-label=\"Modo de referência\"><span class=\"card-cell-label\">Modo de referência</span>—</td><td data-cell-label=\"Áudio de referência\"><span class=\"card-cell-label\">Áudio de referência</span>—</td><td data-cell-label=\"Unidade de faturação\"><span class=\"card-cell-label\">Unidade de faturação</span>por segundo de saída</td><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>—</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Tarifa de referência por segundo de vídeo de saída · Estimativa apenas para comparação</span> <b>$0.224</b> <span class=\"price-unit\">por segundo de saída</span></div></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Preço do vídeo</th><td data-cell-label=\"Tabela de tarifas\"><span class=\"card-cell-label\">Tabela de tarifas</span>—</td><td data-cell-label=\"Quantidade prevista\"><span class=\"card-cell-label\">Quantidade prevista</span>—</td><td data-cell-label=\"Componente do custo\"><span class=\"card-cell-label\">Componente do custo</span>—</td><td data-cell-label=\"Resolução de referência\"><span class=\"card-cell-label\">Resolução de referência</span>—</td><td data-cell-label=\"Modo de referência\"><span class=\"card-cell-label\">Modo de referência</span>—</td><td data-cell-label=\"Áudio de referência\"><span class=\"card-cell-label\">Áudio de referência</span>—</td><td data-cell-label=\"Unidade de faturação\"><span class=\"card-cell-label\">Unidade de faturação</span>por segundo de vídeo</td><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>áudio: with_audio</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Preço do vídeo · Estimativa apenas para comparação</span> <b>$0.336</b> <span class=\"price-unit\">por segundo de vídeo</span></div></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Imagem para vídeo (imagens de fotogramas) · 1080p · tarifa de referência</th><td data-cell-label=\"Tabela de tarifas\"><span class=\"card-cell-label\">Tabela de tarifas</span>—</td><td data-cell-label=\"Quantidade prevista\"><span class=\"card-cell-label\">Quantidade prevista</span>—</td><td data-cell-label=\"Componente do custo\"><span class=\"card-cell-label\">Componente do custo</span><code>reference_output_rate</code></td><td data-cell-label=\"Resolução de referência\"><span class=\"card-cell-label\">Resolução de referência</span>1080p</td><td data-cell-label=\"Modo de referência\"><span class=\"card-cell-label\">Modo de referência</span>Imagem para vídeo (fotogramas)</td><td data-cell-label=\"Áudio de referência\"><span class=\"card-cell-label\">Áudio de referência</span>Sem áudio</td><td data-cell-label=\"Unidade de faturação\"><span class=\"card-cell-label\">Unidade de faturação</span>por segundo de saída</td><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>—</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Tarifa de referência por segundo de vídeo de saída · Estimativa apenas para comparação</span> <b>$0.224</b> <span class=\"price-unit\">por segundo de saída</span></div></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Preço do vídeo</th><td data-cell-label=\"Tabela de tarifas\"><span class=\"card-cell-label\">Tabela de tarifas</span>—</td><td data-cell-label=\"Quantidade prevista\"><span class=\"card-cell-label\">Quantidade prevista</span>—</td><td data-cell-label=\"Componente do custo\"><span class=\"card-cell-label\">Componente do custo</span>—</td><td data-cell-label=\"Resolução de referência\"><span class=\"card-cell-label\">Resolução de referência</span>—</td><td data-cell-label=\"Modo de referência\"><span class=\"card-cell-label\">Modo de referência</span>—</td><td data-cell-label=\"Áudio de referência\"><span class=\"card-cell-label\">Áudio de referência</span>—</td><td data-cell-label=\"Unidade de faturação\"><span class=\"card-cell-label\">Unidade de faturação</span>por segundo de vídeo</td><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>modo de geração: image_to_video; resolução: 720p</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Preço do vídeo · Estimativa apenas para comparação</span> <b>$0.224</b> <span class=\"price-unit\">por segundo de vídeo</span></div></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Texto para vídeo · 1080p · tarifa de referência</th><td data-cell-label=\"Tabela de tarifas\"><span class=\"card-cell-label\">Tabela de tarifas</span>—</td><td data-cell-label=\"Quantidade prevista\"><span class=\"card-cell-label\">Quantidade prevista</span>—</td><td data-cell-label=\"Componente do custo\"><span class=\"card-cell-label\">Componente do custo</span><code>reference_output_rate</code></td><td data-cell-label=\"Resolução de referência\"><span class=\"card-cell-label\">Resolução de referência</span>1080p</td><td data-cell-label=\"Modo de referência\"><span class=\"card-cell-label\">Modo de referência</span>Texto para vídeo</td><td data-cell-label=\"Áudio de referência\"><span class=\"card-cell-label\">Áudio de referência</span>Sem áudio</td><td data-cell-label=\"Unidade de faturação\"><span class=\"card-cell-label\">Unidade de faturação</span>por segundo de saída</td><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>—</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Tarifa de referência por segundo de vídeo de saída · Estimativa apenas para comparação</span> <b>$0.224</b> <span class=\"price-unit\">por segundo de saída</span></div></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Texto para vídeo · 480p · tarifa de referência</th><td data-cell-label=\"Tabela de tarifas\"><span class=\"card-cell-label\">Tabela de tarifas</span>—</td><td data-cell-label=\"Quantidade prevista\"><span class=\"card-cell-label\">Quantidade prevista</span>—</td><td data-cell-label=\"Componente do custo\"><span class=\"card-cell-label\">Componente do custo</span><code>reference_output_rate</code></td><td data-cell-label=\"Resolução de referência\"><span class=\"card-cell-label\">Resolução de referência</span>480p</td><td data-cell-label=\"Modo de referência\"><span class=\"card-cell-label\">Modo de referência</span>Texto para vídeo</td><td data-cell-label=\"Áudio de referência\"><span class=\"card-cell-label\">Áudio de referência</span>Sem áudio</td><td data-cell-label=\"Unidade de faturação\"><span class=\"card-cell-label\">Unidade de faturação</span>por segundo de saída</td><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>—</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Tarifa de referência por segundo de vídeo de saída · Estimativa apenas para comparação</span> <b>$0.224</b> <span class=\"price-unit\">por segundo de saída</span></div></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Preço do vídeo</th><td data-cell-label=\"Tabela de tarifas\"><span class=\"card-cell-label\">Tabela de tarifas</span>—</td><td data-cell-label=\"Quantidade prevista\"><span class=\"card-cell-label\">Quantidade prevista</span>—</td><td data-cell-label=\"Componente do custo\"><span class=\"card-cell-label\">Componente do custo</span>—</td><td data-cell-label=\"Resolução de referência\"><span class=\"card-cell-label\">Resolução de referência</span>—</td><td data-cell-label=\"Modo de referência\"><span class=\"card-cell-label\">Modo de referência</span>—</td><td data-cell-label=\"Áudio de referência\"><span class=\"card-cell-label\">Áudio de referência</span>—</td><td data-cell-label=\"Unidade de faturação\"><span class=\"card-cell-label\">Unidade de faturação</span>por segundo de vídeo</td><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>modo de geração: text_to_video; resolução: 720p</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Preço do vídeo · Estimativa apenas para comparação</span> <b>$0.224</b> <span class=\"price-unit\">por segundo de vídeo</span></div></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Custo estimado de geração</th><td data-cell-label=\"Tabela de tarifas\"><span class=\"card-cell-label\">Tabela de tarifas</span>—</td><td data-cell-label=\"Quantidade prevista\"><span class=\"card-cell-label\">Quantidade prevista</span>estimativa para uma geração</td><td data-cell-label=\"Componente do custo\"><span class=\"card-cell-label\">Componente do custo</span>—</td><td data-cell-label=\"Resolução de referência\"><span class=\"card-cell-label\">Resolução de referência</span>—</td><td data-cell-label=\"Modo de referência\"><span class=\"card-cell-label\">Modo de referência</span>—</td><td data-cell-label=\"Áudio de referência\"><span class=\"card-cell-label\">Áudio de referência</span>—</td><td data-cell-label=\"Unidade de faturação\"><span class=\"card-cell-label\">Unidade de faturação</span>—</td><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>—</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Custo estimado de geração · Estimativa apenas para comparação</span> <b>$0.672</b> <span class=\"price-unit\">estimativa antes da geração</span></div><p class=\"note-s\">Esta estimativa não é um encargo adicional nem uma tarifa fixa para a geração concluída.</p></td></tr></tbody></table></div></div><p class=\"note-s\">O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. <a href=\"/docs/pt-pt/billing/reserve/\">Como funcionam a reserva e a liquidação →</a></p><div data-declared-reference-pricing><h4>Detalhes da tarifa de referência</h4><p class=\"note-s\">As tabelas de referência do modelo não alteram a seleção do método, as cotações ou os custos. Os custos ativos usam as tarifas do método Ailoot selecionado.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Referências de preços das configurações de vídeo</summary><h4>Preços por configuração</h4><p class=\"note-s\">Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuração</th><th>Condições de faturação</th><th>Custo</th></tr></thead><tbody><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Preço do vídeo</th><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>Não é declarada nenhuma condição adicional nesta chave de preços.</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Preço do vídeo</span> <b>$0.224</b> <span class=\"price-unit\">por segundo de vídeo</span></div><p class=\"note-s\">Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada.</p></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Preço do vídeo</th><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>áudio: with_audio</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Preço do vídeo</span> <b>$0.336</b> <span class=\"price-unit\">por segundo de vídeo</span></div><p class=\"note-s\">Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada.</p></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Preço do vídeo</th><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>modo de geração: text_to_video; resolução: 480p</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Preço do vídeo</span> <b>$0.224</b> <span class=\"price-unit\">por segundo de vídeo</span></div><p class=\"note-s\">Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada.</p></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Preço do vídeo</th><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>modo de geração: text_to_video; resolução: 720p</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Preço do vídeo</span> <b>$0.224</b> <span class=\"price-unit\">por segundo de vídeo</span></div><p class=\"note-s\">Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada.</p></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Preço do vídeo</th><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>modo de geração: image_to_video; resolução: 720p</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Preço do vídeo</span> <b>$0.224</b> <span class=\"price-unit\">por segundo de vídeo</span></div><p class=\"note-s\">Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada.</p></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Preço do vídeo</th><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>modo de geração: text_to_video; resolução: 1080p</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Preço do vídeo</span> <b>$0.224</b> <span class=\"price-unit\">por segundo de vídeo</span></div><p class=\"note-s\">Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada.</p></td></tr><tr><th data-cell-label=\"Configuração\" scope=\"row\"><span class=\"card-cell-label\">Configuração</span>Preço do vídeo</th><td data-cell-label=\"Condições de faturação\"><span class=\"card-cell-label\">Condições de faturação</span>modo de geração: image_to_video; resolução: 1080p</td><td data-cell-label=\"Custo\"><span class=\"card-cell-label\">Custo</span><div><span>Saída · Preço do vídeo</span> <b>$0.224</b> <span class=\"price-unit\">por segundo de vídeo</span></div><p class=\"note-s\">Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada.</p></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Exemplos de pedidos</h3><h4>Ailoot Ultra · Vídeo</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes de código\"><button class=\"cg-tab\" id=\"model-code-1779-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1779-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · crie um vídeo</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-1779-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1779-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-pro&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\">Receber e guardar os resultados</h3><h4>Ailoot Ultra · Vídeo</h4><p class=\"note-s\">URLs assinados para conteúdo pertencente ao utilizador</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>Verificar o estado da tarefa</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes de código\"><button class=\"cg-tab\" id=\"model-code-1780-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1780-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET estado da operação original</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-1780-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1780-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>Outras leituras de conteúdo</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes de código\"><button class=\"cg-tab\" id=\"model-code-1781-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1781-panel-0\" aria-selected=\"true\" tabindex=\"0\">Guardar cada saída concluída de que é titular</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-1781-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1781-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>Guardar todos os resultados concluídos</h5><p class=\"note-s\">Guarde cada vídeo concluído ou ficheiro devolvido; obtenha cada URL de recurso efetivamente devolvido.</p><p class=\"note-s\">Conserve todos os resultados reais que pertencem ao utilizador e os respetivos metadados medidos devolvidos.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Se for necessário verificar a resposta original</h5><p class=\"note-s\">503 result_pending_check + id original + X-Should-Retry:false; nunca repita o original</p></div><details class=\"card-about\" data-output-fields><summary>Campos da resposta</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>Posição deste vídeo na lista de saídas, com contagem a partir de zero.</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 assinado para transferir este vídeo concluído.</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>Resumo criptográfico SHA-256 dos bytes do vídeo original; null se não estiver disponível.</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>Tamanho do ficheiro de vídeo original em bytes; null se não estiver disponível.</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>Duração medida do vídeo em milissegundos; null se não estiver disponível.</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>Largura do vídeo em píxeis; null se não estiver disponível.</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>Altura do vídeo em píxeis; null se não estiver disponível.</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 do codec de vídeo; null se não estiver registado.</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 se o vídeo contém uma faixa de áudio; null se não tiver sido medido.</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 do codec de áudio; null quando não está registado qualquer identificador.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Erros e passos seguintes</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Resposta</th><th>Condição</th><th>Passo seguinte</th></tr></thead><tbody><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>O acesso ao vídeo não está disponível ou este ID de vídeo não foi encontrado.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Verifique o acesso ao vídeo. Para um vídeo existente, utilize o ID público original e a mesma chave API.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>A chave API não corresponde à conta autenticada.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Verifique a sua chave API e o acesso à conta antes de enviar.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>Não foi possível ler o pedido ou o índice de transferência é inválido.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Corrija o corpo do pedido. Para uma transferência, escolha um índice de saída devolvido pela tarefa original.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>Não é possível calcular o preço da configuração de vídeo selecionada.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Escolha uma configuração de vídeo suportada e preencha as opções obrigatórias antes de enviar um pedido corrigido.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>Uma entrada de vídeo ou a tarefa original de continuação é inválida.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Utilize entradas HTTPS válidas. Para continuação, utilize o ID público do seu vídeo original concluído com a mesma chave API.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>402 · <code>billing_error</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>O saldo disponível ou os limites não permitem efetuar uma reserva.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Verifique o saldo disponível e os limites antes de enviar um novo pedido.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>503 · <code>server_error</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>A verificação, o armazenamento ou o acesso ao serviço de vídeo está temporariamente indisponível.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Aguarde a disponibilidade do serviço. Se já tiver um ID de vídeo, consulte essa tarefa original em vez de criar outra geração.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>O resultado e a cobrança do vídeo original precisam de verificação.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Conserve o ID de vídeo devolvido e consulte essa tarefa. Não envie um pedido de geração substituto enquanto estiver a ser verificada.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>503 · <code>owned_result_unavailable</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>A transferência do vídeo existente está temporariamente indisponível.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Consulte a mesma tarefa de vídeo mais tarde e transfira a saída existente. Uma nova geração cria uma operação separada.</td></tr><tr><th data-cell-label=\"Resposta\" scope=\"row\"><span class=\"card-cell-label\">Resposta</span>409 · <code>video_not_ready</code></th><td data-cell-label=\"Condição\"><span class=\"card-cell-label\">Condição</span>O conteúdo do vídeo não foi publicado.</td><td data-cell-label=\"Passo seguinte\"><span class=\"card-cell-label\">Passo seguinte</span>Consulte o estado da tarefa original. Transfira quando indicar completed; se indicar failed, siga o aviso de verificação da cobrança.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliases</h3><h4>Aliases do modelo</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=kwaivgi%2Fkling-v3.0-pro&amp;route=Ultra&amp;caller=kwaivgi%2Fkling-v3.0-pro&amp;fmt=videos\"><code>kwaivgi/kling-v3.0-pro</code></a></span></p><h4>Aliases dos caminhos dos métodos</h4><p class=\"note-s\">Use os caminhos dos métodos indicados acima.</p><h4>IDs de chamada relacionados</h4><p class=\"note-s\"><a href=\"#m=kwaivgi%2Fkling-v3.0-pro&amp;route=Ultra&amp;caller=kwaivgi%2Fkling-v3.0-pro&amp;fmt=videos\"><code>kwaivgi/kling-v3.0-pro</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "kwaivgi/kling-v3.0-pro",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "kwaivgi/kling-v3.0-pro",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|kwaivgi%2Fkling-v3.0-pro",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "As tarifas apresentadas permitem estimar o custo antes da geração. O montante final cobrado é calculado a partir do custo registado para a geração original. A duração medida do resultado e as quantidades previstas não correspondem à quantidade final faturável.",
          "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": "Conserve todos os resultados reais que pertencem ao utilizador e os respetivos metadados medidos devolvidos.",
            "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": "O acesso ao vídeo não está disponível ou este ID de vídeo não foi encontrado.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Verifique o acesso ao vídeo. Para um vídeo existente, utilize o ID público original e a mesma chave API.",
                "type": "not_found_error"
              },
              {
                "condition": "A chave API não corresponde à conta autenticada.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Verifique a sua chave API e o acesso à conta antes de enviar.",
                "type": "authentication_error"
              },
              {
                "condition": "Não foi possível ler o pedido ou o índice de transferência é inválido.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Corrija o corpo do pedido. Para uma transferência, escolha um índice de saída devolvido pela tarefa original.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Não é possível calcular o preço da configuração de vídeo selecionada.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Escolha uma configuração de vídeo suportada e preencha as opções obrigatórias antes de enviar um pedido corrigido.",
                "type": "price_unavailable"
              },
              {
                "condition": "Uma entrada de vídeo ou a tarefa original de continuação é inválida.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Utilize entradas HTTPS válidas. Para continuação, utilize o ID público do seu vídeo original concluído com a mesma chave API.",
                "type": "invalid_request_error"
              },
              {
                "condition": "O saldo disponível ou os limites não permitem efetuar uma reserva.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Verifique o saldo disponível e os limites antes de enviar um novo pedido.",
                "type": "billing_error"
              },
              {
                "condition": "A verificação, o armazenamento ou o acesso ao serviço de vídeo está temporariamente indisponível.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Aguarde a disponibilidade do serviço. Se já tiver um ID de vídeo, consulte essa tarefa original em vez de criar outra geração.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "O resultado e a cobrança do vídeo original precisam de verificação.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Conserve o ID de vídeo devolvido e consulte essa tarefa. Não envie um pedido de geração substituto enquanto estiver a ser verificada.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "A transferência do vídeo existente está temporariamente indisponível.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Consulte a mesma tarefa de vídeo mais tarde e transfira a saída existente. Uma nova geração cria uma operação separada.",
                "type": "server_error"
              },
              {
                "condition": "O conteúdo do vídeo não foi publicado.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Consulte o estado da tarefa original. Transfira quando indicar completed; se indicar failed, siga o aviso de verificação da cobrança.",
                "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 repita o original"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-v3.0-pro"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Forneça prompt como texto e duration em segundos inteiros. Escolha uma resolução suportada; adicione uma proporção ou utilize um tamanho enumerado.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Uma instrução escrita."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-v3.0-pro"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images é uma matriz. Cada objeto de fotograma tem type, image_url e frame_type; image_url contém url. Defina type como image_url. Utilize first_frame com um last_frame opcional. Cada função de fotograma aparece, no máximo, uma vez. Forneça um URL HTTPS público de imagem para cada fotograma. Escolha uma resolução suportada; adicione uma proporção ou utilize um tamanho enumerado.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Uma instrução escrita e uma imagem do primeiro 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": "Posição deste vídeo na lista de saídas, com contagem a partir de zero.",
                  "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 assinado para transferir este vídeo concluído.",
                  "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": "Resumo criptográfico SHA-256 dos bytes do vídeo original; null se não estiver disponível.",
                  "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": "Tamanho do ficheiro de vídeo original em bytes; null se não estiver disponível.",
                  "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": "Duração medida do vídeo em milissegundos; null se não estiver disponível.",
                  "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": "Largura do vídeo em píxeis; null se não estiver disponível.",
                  "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": "Altura do vídeo em píxeis; null se não estiver disponível.",
                  "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 do codec de vídeo; null se não estiver registado.",
                  "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 se o vídeo contém uma faixa de áudio; null se não tiver sido medido.",
                  "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 do codec de áudio; null quando não está registado qualquer 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": "URLs assinados para conteúdo pertencente ao utilizador",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "kwaivgi/kling-v3.0-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "kwaivgi/kling-v3.0-pro"
                },
                "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 opção seleciona o preço com áudio. Defina-a como false para selecionar o preço sem áudio. Verifique has_audio no resultado para saber se foi devolvida uma faixa de áudio.",
                "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 chaves descrevem cada objeto de fotograma; image_url contém apenas url. Omita frame_images num pedido apenas de texto.",
                "content": "Matriz de objetos de fotograma. Cada objeto tem type=image_url, image_url com url e frame_type. Utilize um URL HTTPS de imagem e defina frame_type como first_frame ou last_frame. Cada função de fotograma aparece, no máximo, uma 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-pro"
                },
                "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": "Saída de vídeo · tarifa de referência",
            "units": [
              {
                "amount": "0.224",
                "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.224",
                "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.336",
                "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.336",
                "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": "Imagem para vídeo (imagens de fotogramas) · 1080p · tarifa de referência",
            "units": [
              {
                "amount": "0.224",
                "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.224",
                "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 geração: image_to_video; resolução: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Preço do vídeo",
            "units": [
              {
                "amount": "0.224",
                "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.224",
                "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 para vídeo · 1080p · tarifa de referência",
            "units": [
              {
                "amount": "0.224",
                "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.224",
                "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 para vídeo · 480p · tarifa de referência",
            "units": [
              {
                "amount": "0.224",
                "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.224",
                "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.224",
                "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.224",
                "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 estimativa não é um encargo adicional nem uma tarifa fixa para a geração concluída.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Custo estimado de geração",
            "units": [
              {
                "amount": "0.672",
                "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.672",
                "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-pro\",\"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.224",
                "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.224",
                "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.336",
                "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.336",
                "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.224",
                "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.224",
                "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.224",
                "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.224",
                "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.224",
                "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.224",
                "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.224",
                "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.224",
                "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.224",
                "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.224",
                "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.672",
                "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.672",
                "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-pro",
        "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.224",
            "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.224",
            "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.336",
            "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.336",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.672",
            "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.672",
            "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-pro",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "cb9e5dbe964a26902d0af0c2e8c20bb6d9374fa02079e97b6779ece35569737e",
    "input_html_sha256": "897c974e26871249bc2906ee3b2c637890d00c6f6111d9cc1112512d471477d7",
    "private_audit_sha256": "c937b7e13a3539e22f72ae44adab526176041b5fba8d707b4b6e42be93371dff",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/pt-pt/kwaivgi-kling-v3-0-pro/",
    "description": "Kling VIDEO 3.0 Pro é o perfil profissional de vídeo a 1080p da Kuaishou para cenas orientadas por texto e imagem. Combina clipes de três a quinze segundos, áudio nativo, fotogramas de início e fim guiados e direção num único plano ou em vários planos para conceitos cinematográficos e produções curtas.",
    "locale": "pt-pt",
    "md_url": "https://ailoot.ai/models/pt-pt/kwaivgi-kling-v3-0-pro/index.md",
    "title": "Kling: Video v3.0 Pro — Ailoot",
    "url": "https://ailoot.ai/models/pt-pt/kwaivgi-kling-v3-0-pro/"
  },
  "rawModel": {
    "about": "Kling VIDEO 3.0 Pro é o perfil profissional do modelo VIDEO 3.0 da Kuaishou. O seu modo Pro documentado produz vídeo a 1080p a partir de instruções em texto ou de uma cena orientada por imagem, com clipes de três a quinze segundos. A edição 3.0 combina áudio nativo, controlos de consistência dos sujeitos e direção de vários planos, dando a uma produção curta uma forma clara de especificar o aspeto, a ação, a cobertura da câmara e o som.\n\nComece pela ação principal da cena. Num plano orientado por texto, descreva o sujeito, o ambiente, a luz e o ponto de vista que torna a ação compreensível. Num plano orientado por imagem, deixe que a imagem inicial estabeleça o aspeto e a composição e utilize depois o texto para indicar o que muda ao longo do tempo. Num conceito original de produto, uma imagem preparada pode mostrar o objeto numa superfície de estúdio enquanto a instrução descreve uma revelação lenta do seu material e da sua forma.\n\nA direção de vários planos oferece cobertura automática ou uma sequência personalizada. A geração automática de vários planos planeia mudanças de enquadramento e de ângulo da câmara a partir das instruções; uma cena que caiba numa vista contínua pode ainda manter-se num único plano. Um storyboard personalizado permite definir o conteúdo e a duração de cada plano. O perfil de planos personalizados do produtor permite entre um e seis planos, com um máximo de 512 caracteres por plano e um mínimo de um segundo para cada um; as suas durações têm de perfazer a duração total do clipe.\n\nNuma narrativa curta, descreva uma vista de apresentação, a ação principal e um pormenor final como planos separados. Indique o tratamento da câmara e aquilo em que o público deve reparar em cada um. Mantenha consistente nas instruções o aspeto de um sujeito recorrente, alterando deliberadamente a ação e a cobertura. O campo de instrução única na referência do fabricante aceita até 2 500 caracteres; uma sequência personalizada utiliza as suas descrições separadas por plano.\n\nAs referências de sujeitos podem apoiar uma cena orientada por imagem quando a personagem, o produto ou o cenário devem manter-se reconhecíveis. Escolha vistas claras que comuniquem as características que precisa de conservar e nomeie cada sujeito de referência de forma consistente. O perfil documentado orientado por imagem permite até três elementos preparados. Mantenha os papéis das referências bem focados, em vez de combinar vários recursos que dão instruções contraditórias sobre o aspeto do sujeito.\n\nOs fotogramas inicial e final fornecem limites visuais para uma transição condicionada por imagem. Prepare fotogramas coerentes quanto ao sujeito e à cena pretendida e descreva depois como o movimento os liga. A entrada de fotogramas suportada pelo fabricante utiliza imagens JPG, JPEG ou PNG, com ficheiros até 10 MB, dimensões de pelo menos 300 píxeis e uma proporção da imagem inicial entre 1:2.5 e 2.5:1. Uma tarefa controlada por fotogramas e um storyboard personalizado têm formas próprias de tratar as entradas, pelo que deve organizar o material para o fluxo de trabalho selecionado antes de escrever as instruções completas.\n\nO áudio nativo pode combinar falas, atmosfera e a interpretação visual. O áudio está desativado por predefinição na referência do fabricante e é ativado para uma cena audiovisual. O perfil linguístico da versão 3.0 inclui chinês, inglês, japonês, coreano e espanhol, juntamente com alternância entre idiomas e os tratamentos de dialeto ou sotaque suportados. O guia do fabricante indica que o diálogo introduzido noutro idioma é traduzido para inglês. Atribua cada fala ao sujeito pretendido e distinga o diálogo do som de fundo, para que as instruções de áudio expliquem quem fala e o que envolve a ação.\n\nUma instrução original para duas personagens pode identificar o Interlocutor A e o Interlocutor B, dar uma fala curta a cada um e descrever a resposta visível entre ambos. Mantenha o diálogo proporcional à duração do clipe e identifique quem fala quando o ponto de vista muda. A direção de voz e uma referência de personagem servem propósitos diferentes; as instruções devem indicar a interpretação pretendida, em vez de presumir que uma imagem de referência contém as palavras a dizer.\n\nVIDEO 3.0 melhora também o tratamento do texto visível numa cena orientada por imagem. Se um sinal, um rótulo ou uma legenda forem importantes, identifique-os nas instruções e preserve o seu aspeto de referência. Reveja a ortografia, a legibilidade e o movimento desse texto no clipe concluído, sobretudo quando transmite uma mensagem de produto ou de campanha. A funcionalidade de texto do modelo orienta a geração sem substituir uma verificação visual final.\n\nO perfil Pro é a 1080p; o perfil Standard é a 720p. O modo 4K do produtor, selecionado separadamente, é outro perfil de saída, pelo que Pro não deve ser tratado como sinónimo de todas as definições de resolução superior. Para geração orientada por texto, as opções documentadas de enquadramento incluem 16:9, 9:16 e 1:1. Escolha o enquadramento para o local de utilização pretendido e mantenha a composição legível dentro dele.\n\nA geração decorre como uma tarefa cujo resultado bem-sucedido disponibiliza o ficheiro de vídeo concluído e a duração real. A documentação de resultados do fabricante indica que os vídeos gerados são eliminados após 30 dias, pelo que deve guardar o clipe concluído prontamente. Preserve o vídeo com as suas instruções e os recursos de referência e reveja depois a continuidade dos sujeitos, a ordem dos planos pedida, o movimento da câmara, o diálogo e o texto. Utilize o clipe selecionado como conceito cinematográfico, cena de produto ou narrativa curta e faça uma revisão focada na parte que não correspondeu ao resultado pretendido.",
    "alias_of": null,
    "aliases": [],
    "author": "Kuaishou",
    "available": null,
    "canonical_model": "kwaivgi/kling-v3.0-pro",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.672",
            "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.672",
            "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": "Todas as tarifas da configuração constam dos detalhes."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "20f7ffd379215c0acecbd890",
        "label": "Referências de preços das configurações de vídeo",
        "profiles": [
          {
            "basis": "Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada.",
            "dimensions": {
              "conditions": "Não é declarada nenhuma condição adicional nesta chave de preços."
            },
            "label": "Preço do vídeo",
            "units": [
              {
                "amount": "0.224",
                "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": "Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada.",
            "dimensions": {
              "conditions": "áudio: with_audio"
            },
            "label": "Preço do vídeo",
            "units": [
              {
                "amount": "0.336",
                "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": "Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada.",
            "dimensions": {
              "conditions": "modo de geração: text_to_video; resolução: 480p"
            },
            "label": "Preço do vídeo",
            "units": [
              {
                "amount": "0.224",
                "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": "Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada.",
            "dimensions": {
              "conditions": "modo de geração: text_to_video; resolução: 720p"
            },
            "label": "Preço do vídeo",
            "units": [
              {
                "amount": "0.224",
                "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": "Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada.",
            "dimensions": {
              "conditions": "modo de geração: image_to_video; resolução: 720p"
            },
            "label": "Preço do vídeo",
            "units": [
              {
                "amount": "0.224",
                "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": "Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada.",
            "dimensions": {
              "conditions": "modo de geração: text_to_video; resolução: 1080p"
            },
            "label": "Preço do vídeo",
            "units": [
              {
                "amount": "0.224",
                "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": "Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada.",
            "dimensions": {
              "conditions": "modo de geração: image_to_video; resolução: 1080p"
            },
            "label": "Preço do vídeo",
            "units": [
              {
                "amount": "0.224",
                "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-pro",
    "input": [
      "text",
      "image"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "As tarifas apresentadas permitem estimar o custo antes da geração. O montante final cobrado é calculado a partir do custo registado para a geração original. A duração medida do resultado e as quantidades previstas não correspondem à quantidade final faturável.",
          "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": "Conserve todos os resultados reais que pertencem ao utilizador e os respetivos metadados medidos devolvidos.",
            "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": "O acesso ao vídeo não está disponível ou este ID de vídeo não foi encontrado.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Verifique o acesso ao vídeo. Para um vídeo existente, utilize o ID público original e a mesma chave API.",
                "type": "not_found_error"
              },
              {
                "condition": "A chave API não corresponde à conta autenticada.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Verifique a sua chave API e o acesso à conta antes de enviar.",
                "type": "authentication_error"
              },
              {
                "condition": "Não foi possível ler o pedido ou o índice de transferência é inválido.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Corrija o corpo do pedido. Para uma transferência, escolha um índice de saída devolvido pela tarefa original.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Não é possível calcular o preço da configuração de vídeo selecionada.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Escolha uma configuração de vídeo suportada e preencha as opções obrigatórias antes de enviar um pedido corrigido.",
                "type": "price_unavailable"
              },
              {
                "condition": "Uma entrada de vídeo ou a tarefa original de continuação é inválida.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Utilize entradas HTTPS válidas. Para continuação, utilize o ID público do seu vídeo original concluído com a mesma chave API.",
                "type": "invalid_request_error"
              },
              {
                "condition": "O saldo disponível ou os limites não permitem efetuar uma reserva.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Verifique o saldo disponível e os limites antes de enviar um novo pedido.",
                "type": "billing_error"
              },
              {
                "condition": "A verificação, o armazenamento ou o acesso ao serviço de vídeo está temporariamente indisponível.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Aguarde a disponibilidade do serviço. Se já tiver um ID de vídeo, consulte essa tarefa original em vez de criar outra geração.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "O resultado e a cobrança do vídeo original precisam de verificação.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Conserve o ID de vídeo devolvido e consulte essa tarefa. Não envie um pedido de geração substituto enquanto estiver a ser verificada.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "A transferência do vídeo existente está temporariamente indisponível.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Consulte a mesma tarefa de vídeo mais tarde e transfira a saída existente. Uma nova geração cria uma operação separada.",
                "type": "server_error"
              },
              {
                "condition": "O conteúdo do vídeo não foi publicado.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Consulte o estado da tarefa original. Transfira quando indicar completed; se indicar failed, siga o aviso de verificação da cobrança.",
                "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 repita o original"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-v3.0-pro"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Forneça prompt como texto e duration em segundos inteiros. Escolha uma resolução suportada; adicione uma proporção ou utilize um tamanho enumerado.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Uma instrução escrita."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-v3.0-pro"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images é uma matriz. Cada objeto de fotograma tem type, image_url e frame_type; image_url contém url. Defina type como image_url. Utilize first_frame com um last_frame opcional. Cada função de fotograma aparece, no máximo, uma vez. Forneça um URL HTTPS público de imagem para cada fotograma. Escolha uma resolução suportada; adicione uma proporção ou utilize um tamanho enumerado.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Uma instrução escrita e uma imagem do primeiro 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": "Posição deste vídeo na lista de saídas, com contagem a partir de zero.",
                  "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 assinado para transferir este vídeo concluído.",
                  "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": "Resumo criptográfico SHA-256 dos bytes do vídeo original; null se não estiver disponível.",
                  "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": "Tamanho do ficheiro de vídeo original em bytes; null se não estiver disponível.",
                  "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": "Duração medida do vídeo em milissegundos; null se não estiver disponível.",
                  "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": "Largura do vídeo em píxeis; null se não estiver disponível.",
                  "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": "Altura do vídeo em píxeis; null se não estiver disponível.",
                  "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 do codec de vídeo; null se não estiver registado.",
                  "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 se o vídeo contém uma faixa de áudio; null se não tiver sido medido.",
                  "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 do codec de áudio; null quando não está registado qualquer 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": "URLs assinados para conteúdo pertencente ao utilizador",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "kwaivgi/kling-v3.0-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "kwaivgi/kling-v3.0-pro"
                },
                "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 opção seleciona o preço com áudio. Defina-a como false para selecionar o preço sem áudio. Verifique has_audio no resultado para saber se foi devolvida uma faixa de áudio.",
                "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 chaves descrevem cada objeto de fotograma; image_url contém apenas url. Omita frame_images num pedido apenas de texto.",
                "content": "Matriz de objetos de fotograma. Cada objeto tem type=image_url, image_url com url e frame_type. Utilize um URL HTTPS de imagem e defina frame_type como first_frame ou last_frame. Cada função de fotograma aparece, no máximo, uma 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-pro"
                },
                "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": "Saída de vídeo · tarifa de referência",
            "units": [
              {
                "amount": "0.224",
                "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.224",
                "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.336",
                "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.336",
                "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": "Imagem para vídeo (imagens de fotogramas) · 1080p · tarifa de referência",
            "units": [
              {
                "amount": "0.224",
                "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.224",
                "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 geração: image_to_video; resolução: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Preço do vídeo",
            "units": [
              {
                "amount": "0.224",
                "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.224",
                "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 para vídeo · 1080p · tarifa de referência",
            "units": [
              {
                "amount": "0.224",
                "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.224",
                "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 para vídeo · 480p · tarifa de referência",
            "units": [
              {
                "amount": "0.224",
                "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.224",
                "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.224",
                "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.224",
                "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 estimativa não é um encargo adicional nem uma tarifa fixa para a geração concluída.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Custo estimado de geração",
            "units": [
              {
                "amount": "0.672",
                "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.672",
                "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-pro\",\"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.224",
                "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.224",
                "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.336",
                "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.336",
                "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.224",
                "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.224",
                "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.224",
                "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.224",
                "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.224",
                "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.224",
                "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.224",
                "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.224",
                "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.224",
                "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.224",
                "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.672",
                "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.672",
                "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-pro",
        "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.224",
            "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.224",
            "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.336",
            "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.336",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.672",
            "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.672",
            "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-pro",
        "request_model_id": "kwaivgi/kling-v3.0-pro",
        "route_label": "Ultra"
      }
    ],
    "name": "Kling: Video v3.0 Pro",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.672,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.672,
      "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.224",
            "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.336",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "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.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "output second Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.224",
            "key": "duration_seconds",
            "label": "output second",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.336",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "audio=true",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.336",
            "key": "duration_seconds_with_audio",
            "label": "output second",
            "native_amount_usd_per_unit": "0.336",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "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.224",
            "key": "text_to_video_duration_seconds_480p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=720p · text_to_video",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.224",
            "key": "text_to_video_duration_seconds_720p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=720p · image_to_video",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.224",
            "key": "image_to_video_duration_seconds_720p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "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.224",
            "key": "text_to_video_duration_seconds_1080p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.224",
            "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.224",
            "key": "image_to_video_duration_seconds_1080p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          }
        ]
      }
    ],
    "public_id": "kwaivgi/kling-v3.0-pro",
    "short": "Kling VIDEO 3.0 Pro é o perfil profissional de vídeo a 1080p da Kuaishou para cenas orientadas por texto e imagem. Combina clipes de três a quinze segundos, áudio nativo, fotogramas de início e fim guiados e direção num único plano ou em vários planos para conceitos cinematográficos e produções curtas."
  },
  "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 Pro é o perfil profissional de vídeo a 1080p da Kuaishou para cenas orientadas por texto e imagem. Combina clipes de três a quinze segundos, áudio nativo, fotogramas de início e fim guiados e direção num único plano ou em vários planos para conceitos cinematográficos e produções curtas.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "828f8c49fca9a37134031f7b4eeff793c6dc620267e4e7c2418fb7f912eb029a",
    "renderer_sha256": "8caea4544177cc2b7d2cb3356b5f07bfd3660386d75f2714a6f603fa5e2a6cd2"
  },
  "sourceRevision": "0b103113c837488acfdb61b4717006149dbd68e3c6ed2123838d73648ce4e83f"
}
