Skip to main content
POST
Kling 3.0 Turbo
Os parâmetros e o modo de uso estão alinhados ao oficial; para parâmetros detalhados, consulte diretamente a documentação oficial.

1. Visão geral

Este documento explica como usar as capacidades de geração de vídeo a partir de texto e a partir de imagem por meio do protocolo nativo do Kling 3.0 Turbo. O Turbo usa o mesmo protocolo nativo do Kling 3.0 padrão, com estruturas de requisição e resposta idênticas, diferindo apenas no escopo de recursos, nos níveis de resolução e na cobrança. Ambas as capacidades usam o modo de tarefa assíncrona:
  1. Chame o endpoint de criação correspondente.
  2. Salve o data.id presente na resposta da criação.
  3. Use a mesma API Key usada ao criar a tarefa para consultar o status.
  4. Após o sucesso da tarefa, obtenha e salve o vídeo gerado em outputs.

1.1 Endereços dos endpoints

O endereço completo nos exemplos deste documento é https://{api_domain} somado ao caminho do endpoint na tabela, em que {api_domain} é o domínio da API que você usa. O Turbo oferece apenas geração de vídeo a partir de texto e a partir de imagem; não suporta vídeo Omni nem controle de movimento.

1.2 Autenticação

Todas as requisições precisam incluir a API Key. Requisições POST também devem especificar o tipo de conteúdo JSON:

1.3 Estrutura da resposta

Na resposta de criação, data é um objeto. Os campos comuns são id (ID da tarefa gerado pelo sistema Kling, usado para consultas posteriores), external_id (refere-se ao options.external_task_id; pode não ser retornado quando não configurado) e status (status da tarefa após a criação, normalmente submitted). Na resposta da consulta, data é um array. Cada tarefa contém id, external_id, status (submitted, processing, succeeded ou failed), message, create_time, update_time e outputs. Os campos comuns dos resultados de vídeo em outputs são type, id, url, watermark_url e duration. url é o endereço do resultado sem marca d’água; watermark_url é o endereço do resultado com marca d’água; duration é a duração do vídeo em segundos.

2. Texto para vídeo

2.1 Criar tarefa

Campos da requisição: Vídeos com múltiplas cenas são implementados pelo formato fixo do prompt: “镜头 n, m, words; 镜头 n, m, words;” (separados por ponto e vírgula ASCII). Onde n é o número da cena (mínimo 1, máximo 6), m é a duração da cena (cada uma não inferior a 1, e a soma das durações de todas as cenas é igual à duração total do vídeo), e words é o prompt da cena (máximo de 512 caracteres).

2.2 Exemplo de criação

Após a criação bem-sucedida, retorna o ID da tarefa:
Salve data.id. Quando options.external_task_id não for enviado, data.external_id pode não ser retornado.

2.3 Consultar tarefa

Use a mesma API Key usada ao criar a tarefa. Também é possível consultar pelo ID de tarefa personalizado usando external_task_ids. Em cada chamada, informe exatamente um dos parâmetros task_ids ou external_task_ids; ambos aceitam de 1 a 50 IDs separados por vírgula em inglês. Na resposta, data é um array e mantém a ordem dos IDs informados.

2.4 Exemplo de consulta

Quando a tarefa é bem-sucedida, retorna:
status=processing indica que a tarefa ainda está em execução; recomenda-se consultar a cada 10–30 segundos. status=failed indica que a tarefa falhou; não continue fazendo polling. Após o sucesso, salve imediatamente o arquivo correspondente a outputs[type=video].url; o endereço de download pode ter prazo de validade.

2.5 Descrição de cobrança

O nível de preço é determinado apenas por settings.resolution (720p ou 1080p). Se duration não for informado, a cobrança é feita pelos 5 segundos padrão. Ao criar a tarefa, o valor é cobrado com base na duração solicitada; se a criação da tarefa falhar ou a geração final falhar, o valor é estornado automaticamente. O preço unitário específico deve ser consultado na página de preços do serviço que você utiliza.

3. Imagem para vídeo

3.1 Criar tarefa

Campos da requisição: As imagens aceitas são .jpg, .jpeg e .png; o arquivo não pode exceder 50 MB, a largura e a altura não podem ser inferiores a 300 pixels, e a proporção de aspecto deve estar entre 1:2.5 e 2.5:1. A geração de vídeo a partir de imagem suporta apenas imagem do primeiro quadro; por enquanto, não suporta “primeiro quadro + último quadro” nem “somente último quadro”. options.callback_url também pode ser enviado, com o mesmo uso do texto para vídeo. Vídeos com múltiplas cenas também são implementados pelo formato fixo do prompt.

3.2 Exemplo de criação

Quando a criação é bem-sucedida, retorna:

3.3 Consultar tarefa

Use o data.id da resposta de criação para consultar a tarefa:
Ao consultar usando task_ids, use a mesma API Key usada na criação da tarefa. Também é possível consultar pelo options.external_task_id informado na criação usando external_task_ids. O parâmetro de consulta aceita de 1 a 50 IDs separados por vírgula em inglês.

3.4 Exemplo de consulta

Quando a tarefa é bem-sucedida, o endereço do vídeo está em outputs[type=video].url:
Quando status=processing, recomenda-se continuar consultando a cada 10–30 segundos. Quando status=failed, pare o polling e ajuste a entrada com base na mensagem de erro.

3.5 Descrição de cobrança

O nível de preço é determinado apenas por settings.resolution (720p ou 1080p). Se duration não for informado, a cobrança é feita pelos 5 segundos padrão. Ao criar a tarefa, o valor é cobrado com base na duração solicitada; se a criação da tarefa falhar ou a geração final falhar, o valor é estornado automaticamente. O preço unitário específico deve ser consultado na página de preços do serviço que você utiliza.

4. Erros comuns e observações

Erros da API seguem a seguinte estrutura:
Códigos de status comuns: 400/1200 (parâmetros ou tipo de conteúdo inválidos; ajuste conforme message), 401/1000 (API Key ausente ou inválida), 403/1103 (sem permissão para executar), 404/1203 (tarefa inexistente ou sem permissão para consultar), 429/1302 (requisições frequentes demais; reduza a frequência e use backoff exponencial), 500/5000, 503/5001, 504/5002 (serviço anormal ou timeout; tente novamente mais tarde e evite reenvios descontrolados). Se message contiver trace_id, forneça-o ao contatar o suporte técnico. Outras observações:
  • O corpo da requisição não precisa incluir model ou model_name; a versão do modelo já está contida na URL.
  • Após criar a tarefa, persista data.id; não use request_id como ID da tarefa.
  • O corpo de uma única requisição tem o limite de 64 MB; para imagens grandes, recomenda-se usar uma URL pública acessível pela Kling.
  • As URLs dos materiais de entrada precisam ser publicamente acessíveis pela Kling; não podem depender de rede interna, cookies ou estado de login temporário.
  • No endpoint de consulta, use intervalo de polling de 10–30 segundos e configure um timeout global e backoff exponencial.
  • O timeout de um POST não significa necessariamente que a tarefa não foi criada; primeiro consulte usando external_task_id e então decida se deve tentar novamente.
  • Assim que receber o status de sucesso, salve imediatamente o arquivo correspondente a outputs[type=video].url; a URL do resultado pode expirar.

5. Exemplo de chamada em Python

O exemplo a seguir usa a biblioteca padrão requests e demonstra a criação e o polling de uma tarefa de texto para vídeo. Para imagem para vídeo, basta substituir o endpoint de criação e o corpo da requisição.
Última modificação em 15 de outubro de 2026