> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apimart.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Kling V4 Flash Geração de vídeos

> Vídeo por texto, uma imagem inicial ou referências de imagem/vídeo, edição e extensão. Apenas 720p, 3–20 segundos gerados, 24fps.

> [!NOTE]
>
> Este endpoint é assíncrono. Após o envio, use o `task_id` retornado com `GET /v1/tasks/{task_id}` para consultar o status e o resultado.

```bash cURL theme={null}
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "kling-v4-flash",
    "prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16"
  }'
```

```python Python theme={null}
import requests

response = requests.post(
    "https://api.apimart.ai/v1/videos/generations",
    headers={"Authorization": "Bearer <token>"},
    json={
        "model": "kling-v4-flash",
        "prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
        "duration": 5,
        "resolution": "720p",
        "aspect_ratio": "9:16"
    }
)
response.raise_for_status()
print(response.json())
```

```javascript JavaScript theme={null}
const response = await fetch("https://api.apimart.ai/v1/videos/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer <token>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "kling-v4-flash",
    prompt: "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
    duration: 5,
    resolution: "720p",
    aspect_ratio: "9:16"
  })
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
```

## Seleção do modo

Os cinco modos usam o mesmo modelo, `kling-v4-flash`. O modo é selecionado conforme os arquivos enviados e `omni_reference_task_type`.

| Modo | Entrada |
| - | - |
| Texto para vídeo | Sem arquivos de imagem, vídeo ou áudio |
| Imagem para vídeo | Um único quadro inicial via `first_frame_image`, `first_frame` em `image_with_roles` ou a única imagem em `image_urls` |
| Geração com referências | Forneça `video_urls` ou `reference_image` em `image_with_roles`, ou defina `omni_reference_task_type: "reference"` explicitamente |
| Edição de vídeo | Defina `omni_reference_task_type: "edit"` e forneça um vídeo de entrada |
| Extensão de vídeo | Defina `omni_reference_task_type: "extend"` e forneça um vídeo de entrada |

`omni_reference_task_type` usa `auto` por padrão, equivalente a omitir o campo. Com `reference` explícito, as imagens de `image_urls` são tratadas como referências.

> [!WARNING]
>
> Enviar apenas `video_url` sem especificar `edit` ou `extend` retorna HTTP 400. Para usar um vídeo como referência, use `video_urls`.

## Cabeçalhos da requisição

**Authorization** `string` *required*

Autenticação Bearer: `Bearer <token>`, em que `<token>` é sua chave de API APIMart.

## Parâmetros da requisição

**model** `string` *required*

Deve ser `kling-v4-flash`.

**prompt** `string`

Descreva o conteúdo a gerar ou editar. Opcional apenas em imagem para vídeo. Use `@Image1` / `@Video1` nas referências, numeradas a partir de 1 em cada array. Na edição, a entrada é `@Video1` e as imagens são `@Image1`, `@Image2` etc.

**duration** `integer`

Segundos inteiros de `3` a `20`, normalmente `5` por padrão. Na edição, a omissão usa a duração de entrada arredondada para cima. Na extensão, indica o trecho adicionado. `0` explícito retorna HTTP 400; `null` equivale à omissão. A cobrança usa esse inteiro; o arquivo pode ter cerca de um quadro a mais.

**seconds** `integer`

Alias de `duration`, com as mesmas regras. Se ambos forem enviados, cada valor deve estar entre `3` e `20` e ser igual ao outro; caso contrário, HTTP 400.

**resolution** `string` (default: 720p)

Apenas `720p`, também o padrão. `1080p` retorna HTTP 400. A seleção de nível com `mode` não é suportada.

**aspect\_ratio** `string`

Geração por texto, por referências e edição aceitam `16:9`, `9:16`, `1:1` e `21:9`; somente a geração por referências aceita `auto`. A geração por imagem não aceita `aspect_ratio` / `size`: valores não vazios retornam HTTP 400, enquanto uma string vazia equivale à omissão. Recorte o quadro inicial antes do envio para alterar a proporção.

| Modo | Comportamento padrão |
| - | - |
| Texto para vídeo | `16:9` |
| Imagem para vídeo | Omita `aspect_ratio` / `size`; segue o quadro inicial. Recorte-o previamente para alterar a proporção |
| Geração com referências | `auto` |
| Edição de vídeo | Segue o vídeo de entrada |
| Extensão de vídeo | Este campo não é aceito; a proporção original é preservada |

**image\_urls** `string[]`

Imagem para vídeo aceita uma única imagem inicial; duas retornam HTTP 400. Referências e edição aceitam até 10 imagens de referência. Para referências apenas de imagens, defina `omni_reference_task_type: "reference"`. As URLs devem ser públicas. Quadros iniciais e imagens de referência devem ter largura e altura de pelo menos 300px, com proporção largura:altura entre 2:5 e 5:2. Imagens fora desses limites retornam HTTP 400 no envio, sem cobrança.

**image\_with\_roles** `object[]`

Cada item contém `url` e `role`. Imagem para vídeo aceita um único `first_frame`; referências e edição usam `reference_image`. Quadros finais e intermediários não são suportados. Até 10 imagens e 15 recursos no total, incluindo vídeos de referência. Quadros iniciais e imagens de referência devem ter largura e altura de pelo menos 300px, com proporção largura:altura entre 2:5 e 5:2. Imagens fora desses limites retornam HTTP 400 no envio, sem cobrança.

**first\_frame\_image** `string`

URL do quadro inicial para imagem para vídeo. Também pode ser fornecida como `first_frame` em `image_with_roles` ou como primeira imagem de `image_urls`. Quadros iniciais e imagens de referência devem ter largura e altura de pelo menos 300px, com proporção largura:altura entre 2:5 e 5:2. Imagens fora desses limites retornam HTTP 400 no envio, sem cobrança.

**video\_urls** `string[]`

Até 5 vídeos de referência, totalizando no máximo 20 segundos. Exceder o limite retorna HTTP 400, sem corte. Em edição ou extensão, uma entrada pode substituir `video_url` se o tipo de tarefa correspondente for explícito.

Vídeos de referência devem ser MP4 / MOV, com largura e altura entre 700 e 4553px cada. A duração é medida pelo fluxo de vídeo, não pelo contêiner: mínimo de 3 segundos por clipe e máximo de 20 segundos no total. Qualquer vídeo de referência com menos de 3 segundos retorna HTTP 400 no envio, sem cobrança.

**video\_url** `string`

Vídeo de entrada para edição ou extensão. Exige `omni_reference_task_type: "edit"` ou `"extend"` explícito, caso contrário retorna HTTP 400. A entrada de edição deve durar 3–20 segundos. Fora dessa faixa, é rejeitada sem cobrança.

A edição aceita vídeos MP4 / MOV com largura e altura entre 700 e 4553px cada. O limite de 3–20 segundos usa a duração do fluxo de vídeo, não do contêiner. Formato, largura, altura ou duração de entrada inválidos retornam HTTP 400 no envio, sem cobrança.

Entradas de extensão não estão sujeitas à faixa de altura nem ao mínimo de 3 segundos da edição. Por exemplo, um vídeo 480p de 2 segundos pode ser estendido.

**omni\_reference\_task\_type** `string` (default: auto)

Aceita `auto`, `reference`, `edit` e `extend`.

* `auto`: seleciona texto para vídeo, imagem para vídeo ou geração com referências conforme os arquivos; equivale a omitir o campo.
* `reference`: geração com referências; imagens de `image_urls` são tratadas como referências.
* `edit`: edição de vídeo; exige um vídeo de entrada.
* `extend`: extensão de vídeo; exige um vídeo de entrada.

**audio\_setting** `string`

Para geração com referências de vídeo: `origin` preserva o áudio do primeiro vídeo de referência; `auto` gera novo áudio e é o padrão. `origin` exige um vídeo de referência. Se o primeiro vídeo não tiver faixa de áudio, a saída também não terá. A edição gera novo áudio e não preserva o original; omita este parâmetro nas solicitações de edição. A extensão não o aceita.

## Dimensões de saída e taxa de quadros

A saída usa o nível `720p`, com dimensões reais em pixels variando conforme a proporção, a 24fps. O arquivo pode ter cerca de um quadro a mais que `duration`; por exemplo, uma solicitação de 3 segundos produz cerca de 3.04 segundos.

| Proporção / modo | Dimensões reais em pixels |
| - | - |
| `16:9` | 1280×720 |
| `9:16` | 720×1280 |
| `1:1` | 960×960 |
| `21:9` | 1464×628 |
| Por imagem | Segue o quadro inicial, cerca de 0.92MP no total; um quadro 1:2.5 produz 604×1516 |

## Exemplos de requisições

As URLs abaixo são ilustrativas. Substitua-as por URLs reais e acessíveis publicamente.

### Imagem para vídeo: um único quadro inicial

```json theme={null}
{
  "model": "kling-v4-flash",
  "image_urls": [
    "https://example.com/start.png"
  ]
}
```

Forneça uma imagem inicial; `prompt` é opcional. Quadros finais, intermediários ou uma segunda imagem não são suportados.

Omita `aspect_ratio` / `size`; segue o quadro inicial. Recorte-o previamente para alterar a proporção.

Quadros iniciais e imagens de referência devem ter largura e altura de pelo menos 300px, com proporção largura:altura entre 2:5 e 5:2. Imagens fora desses limites retornam HTTP 400 no envio, sem cobrança.

### Geração com referências

```json theme={null}
{
  "model": "kling-v4-flash",
  "prompt": "The girl in @Image1 runs along the beach with the camera movement from @Video1.",
  "image_with_roles": [
    {
      "url": "https://example.com/girl.png",
      "role": "reference_image"
    }
  ],
  "video_urls": [
    "https://example.com/camera.mp4"
  ],
  "aspect_ratio": "auto",
  "duration": 5
}
```

Até 10 imagens e 5 vídeos de referência, no máximo 15 recursos no total. Os vídeos somam até 20 segundos. Áudio de referência não é suportado. Adicione `audio_setting: "origin"` para preservar o áudio do primeiro vídeo de referência. Com `origin`, se o primeiro vídeo de referência não tiver faixa de áudio, a saída também não terá.

Quadros iniciais e imagens de referência devem ter largura e altura de pelo menos 300px, com proporção largura:altura entre 2:5 e 5:2. Imagens fora desses limites retornam HTTP 400 no envio, sem cobrança.

Vídeos de referência devem ser MP4 / MOV, com largura e altura entre 700 e 4553px cada. A duração é medida pelo fluxo de vídeo, não pelo contêiner: mínimo de 3 segundos por clipe e máximo de 20 segundos no total. Qualquer vídeo de referência com menos de 3 segundos retorna HTTP 400 no envio, sem cobrança.

### Edição de vídeo

```json theme={null}
{
  "model": "kling-v4-flash",
  "prompt": "Change the scene to a snowy winter night.",
  "omni_reference_task_type": "edit",
  "video_url": "https://example.com/in.mp4",
  "image_urls": [
    "https://example.com/style.png"
  ]
}
```

A entrada de edição deve ter um fluxo de vídeo de 3–20 segundos. Sem `duration`, a duração de entrada é arredondada para cima; sem `aspect_ratio`, a proporção de entrada é mantida. A edição gera novo áudio sem preservar o original. Omita `audio_setting` na solicitação.

Quadros iniciais e imagens de referência devem ter largura e altura de pelo menos 300px, com proporção largura:altura entre 2:5 e 5:2. Imagens fora desses limites retornam HTTP 400 no envio, sem cobrança.

A edição aceita vídeos MP4 / MOV com largura e altura entre 700 e 4553px cada. O limite de 3–20 segundos usa a duração do fluxo de vídeo, não do contêiner. Formato, largura, altura ou duração de entrada inválidos retornam HTTP 400 no envio, sem cobrança.

### Extensão de vídeo

```json theme={null}
{
  "model": "kling-v4-flash",
  "prompt": "The camera continues moving forward as the sky grows darker.",
  "omni_reference_task_type": "extend",
  "video_url": "https://example.com/in.mp4",
  "duration": 5
}
```

Gera um novo trecho de 3–20 segundos a partir do último quadro da entrada e retorna apenas esse trecho, sem o vídeo original. A cobrança considera o novo trecho. Não aceita imagens, quadro final desejado, `aspect_ratio` ou `audio_setting`; mantém a proporção original.

Entradas de extensão não estão sujeitas à faixa de altura nem ao mínimo de 3 segundos da edição. Por exemplo, um vídeo 480p de 2 segundos pode ser estendido.

## Consultar uma tarefa

Substitua o ID da tarefa na requisição abaixo pelo ID retornado no envio:

```bash theme={null}
curl --request GET \
  --url 'https://api.apimart.ai/v1/tasks/<task_id>' \
  --header 'Authorization: Bearer <token>'
```

Use a [consulta de tarefas](https://docs.apimart.ai/pt/api-reference/tasks/status.md). Salve `task_id` e consulte até `completed` ou `failed`. Um vídeo 720p de 3 segundos levou cerca de 1–4 minutos nos testes; é uma referência, não um prazo fixo para declarar falha.

## Cobrança

Cobrança por segundo; consulte os [preços dos modelos](https://apimart.ai/pricing). A geração padrão e a entrada de vídeo usam tarifas diferentes.

| Modo | Segundos cobrados |
| - | - |
| Texto para vídeo, imagem para vídeo, referências apenas de imagens | Segundos de saída; `kling-v4-flash@720P` |
| Extensão de vídeo | Segundos do trecho adicionado; `kling-v4-flash@720P` |
| Edição, geração com vídeos de referência | Segundos de saída + max(segundos de saída, segundos de vídeo de entrada); `kling-v4-flash@720P-input` |

Os segundos de entrada são a soma das durações dos fluxos de vídeo, arredondada para cima, não as durações dos contêineres. Editar um vídeo de 3.04 segundos com `duration: 3` resulta em 3 + 4 = 7 segundos cobrados. A edição e a geração com referências de vídeo verificam formato, largura, altura e duração do fluxo no envio. Falha na verificação, formato diferente de MP4 / MOV, largura ou altura fora de 700–4553px, total acima de 20 segundos ou entrada de edição abaixo de 3 segundos retornam HTTP 400 sem cobrança. Cada referência é avaliada pela duração do fluxo de vídeo; clipes com menos de 3 segundos retornam HTTP 400 no envio, sem cobrança.

Tarefas que falham recebem reembolso integral, incluindo aquelas que a plataforma marca como expiradas. Parar as consultas no cliente não cancela a tarefa; se ela tiver sucesso depois, será cobrada normalmente.

## Parâmetros não aceitos

Os seguintes parâmetros ou valores retornam HTTP 400:

* `resolution: "1080p"`
* `last_frame_image`, `role: "last_frame"`, `role: "keyframe"`
* `audio_urls`, `audio_url`
* `mode`, `negative_prompt`, `watermark: true`, `audio: false`
* `multi_shot`, `multi_prompt`, `element_list`, `video_list`
* `camera_control`, `voice_list`

## Erros comuns

| Erro | Solução |
| - | - |
| `kling-v4-flash only supports resolution 720p (got: 1080p)` | Use `720p`, não `1080p`. |
| `kling-v4-flash duration must be between 3 and 20 seconds` | Use um inteiro de 3 a 20 para `duration` / `seconds`; não envie 0. |
| `kling-v4-flash image-to-video follows the first frame's aspect ratio; remove aspect_ratio / size` | Remova `aspect_ratio` / `size` na geração por imagem. A proporção segue o quadro inicial; recorte-o antes do envio para alterá-la. |
| `kling-v4-flash first frame: image width and height must be at least 300px` | Quadros iniciais e imagens de referência devem ter pelo menos 300px em ambos os eixos. |
| `kling-v4-flash first frame: image aspect ratio (width:height) must be between 2:5 and 5:2` | Use uma proporção largura:altura entre 2:5 e 5:2. |
| `kling-v4-flash input video #1: unsupported video format webm/mkv (supported: mp4/mov)` | Use MP4 / MOV para edição e referências de vídeo; WebM / MKV não são suportados. |
| `kling-v4-flash input video #1: video height must be between 700 and 4553px` | Vídeos de edição e referência exigem largura e altura entre 700 e 4553px cada. Essa faixa não se aplica a entradas de extensão. |
| `kling-v4-flash input video #1: video width must be between 700 and 4553px` | A largura e a altura dos vídeos de edição e referência devem estar entre 700 e 4553px cada. Vídeos verticais também devem ter pelo menos 700px de largura. |
| `kling-v4-flash reference video #1 must be at least 3 seconds` | Cada referência deve ter um fluxo de vídeo de pelo menos 3 segundos. Clipes mais curtos retornam HTTP 400 no envio, sem cobrança. |
| `kling-v4-flash only supports aspect_ratio 16:9, 9:16, 1:1 or 21:9 (got: auto)` | Somente a geração por referências aceita `auto`; omita os campos de proporção na geração por imagem. |
| `kling-v4-flash image-to-video only takes a first frame; last frame and keyframes are not supported` | Mantenha uma imagem inicial; remova quadros finais/intermediários ou a segunda imagem. |
| `kling-v4-flash reference-to-video does not take reference audios` | Remova `audio_urls` / `audio_url`. |
| `kling-v4-flash video extend takes no images` | Remova imagens e quadros finais alvo das extensões. |
| `kling-v4-flash input videos must be at most 20 seconds in total` | Referências de vídeo ou entrada de edição não podem ultrapassar 20 segundos. Não há corte automático. |
| `video edit requires an input video of at least 3 seconds` | Use uma entrada de edição com fluxo de vídeo de pelo menos 3 segundos, sem considerar a duração do contêiner. |
| `video_url needs omni_reference_task_type edit ... or extend` | Especifique `edit` / `extend`; use `video_urls` para referências. |
| `Failed to probe the input video duration` | Verifique se a URL é acessível e contém um vídeo válido. |
| `duration (3) and seconds (5) are aliases and must match` | Envie um alias ou dois valores iguais dentro de 3–20. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.