> ## 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.

# Nano banana 2.1 Geração de imagens

> Geração de texto para imagem e edição de imagens de referência em 1K / 2K / 4K, com 10 proporções e versões oficial e Ext.

## Escolha do modelo

| ID do modelo | Cobrança | Imagens por solicitação | Tamanho das imagens de referência |
| - | - | - | - |
| `gemini-nano-banana-2.1` | Uso real de tokens | 1–4 | Até 20MB por imagem |
| `gemini-nano-banana-2.1-ext` | Por imagem, conforme a faixa de resolução | Apenas 1 | Até 20MB por imagem, 50MB no total |

Os dois modelos oferecem as mesmas dimensões de saída e qualidade de imagem. Escolha a versão oficial para gerar várias imagens em uma solicitação ou Ext para estimar o custo por imagem. Consulte os [preços dos modelos](https://apimart.ai/pricing) para os valores aplicáveis.

<Info>
  Este endpoint é assíncrono. Um envio bem-sucedido retorna um `task_id`. Use a [consulta de tarefas](/pt/api-reference/tasks/status) para obter o status e as imagens. Consulte a cada 3–5 segundos e configure um tempo limite total de espera de pelo menos 3 minutos.
</Info>

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url https://api.apimart.ai/v1/images/generations \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
      "model": "gemini-nano-banana-2.1",
      "prompt": "Um gato laranja sobre uma mesa de madeira ao lado de uma xícara de café, luz suave da manhã, fotografia realista",
      "size": "16:9",
      "resolution": "2K",
      "n": 1
    }'
  ```

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

  response = requests.post(
      "https://api.apimart.ai/v1/images/generations",
      headers={"Authorization": "Bearer <token>"},
      json={
          "model": "gemini-nano-banana-2.1",
          "prompt": "Um gato laranja sobre uma mesa de madeira ao lado de uma xícara de café, luz suave da manhã, fotografia realista",
          "size": "16:9",
          "resolution": "2K",
          "n": 1
      }
  )
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.apimart.ai/v1/images/generations", {
    method: "POST",
    headers: {
      Authorization: "Bearer <token>",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      model: "gemini-nano-banana-2.1",
      prompt: "Um gato laranja sobre uma mesa de madeira ao lado de uma xícara de café, luz suave da manhã, fotografia realista",
      size: "16:9",
      resolution: "2K",
      n: 1
    })
  });
  console.log(await response.json());
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "code": 200,
    "data": [
      {
        "status": "submitted",
        "task_id": "task_01K..."
      }
    ]
  }
  ```
</ResponseExample>

## Cabeçalhos da solicitação

<ParamField header="Authorization" type="string" required>
  Autenticação Bearer no formato `Bearer <token>`, em que `<token>` é sua APIMart API Key.
</ParamField>

## Parâmetros da solicitação

<ParamField body="model" type="string" required>
  ID do modelo: `gemini-nano-banana-2.1` ou `gemini-nano-banana-2.1-ext`.
</ParamField>

<ParamField body="prompt" type="string" required>
  Descrição textual para gerar ou editar imagens. Chinês e inglês são suportados.
</ParamField>

<ParamField body="size" type="string" default="auto">
  Proporção da imagem de saída. Suporta `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9` e `21:9`. Formatos como `16x9` também são aceitos.

  Se omitido ou definido como `auto`, o modelo decide. Na geração de imagem para imagem, a saída segue a proporção da imagem de referência.

  Outras proporções, incluindo `1:4`, `4:1`, `1:8` e `8:1`, não são suportadas. Uma proporção não suportada causa falha na tarefa e reembolso.
</ParamField>

<ParamField body="resolution" type="string" default="1K">
  Faixa de resolução de saída: `1K`, `2K` ou `4K`. Letras minúsculas são aceitas. Também afeta a cobrança.

  `0.5K` e `512` não são suportados e retornam HTTP 400 no envio. Outros valores não reconhecidos, como `3K`, são gerados e cobrados como `1K`. Use apenas os valores suportados acima.
</ParamField>

<ParamField body="n" type="integer" default="1">
  Número de imagens geradas: 1–4 na versão oficial; apenas 1 na Ext.

  Valores acima de 4 retornam HTTP 400 imediatamente. Solicitações Ext com 2–4 falham durante a execução e recebem reembolso integral. Para várias imagens, envie tarefas Ext separadas ou use a versão oficial.
</ParamField>

<ParamField body="image_urls" type="string[]">
  Lista de imagens de referência. Omita para texto para imagem; inclua para imagem para imagem ou edição. Cada item aceita:

  * Uma URL de imagem HTTP(S) acessível publicamente.
  * Uma Data URL Base64, como `data:image/png;base64,...`.

  Recomenda-se PNG, JPEG ou WEBP. A versão oficial permite até 20MB por imagem. Ext permite até 20MB por imagem e 50MB no total.

  A plataforma não define um limite fixo de quantidade de imagens de referência, mas isso não significa uploads ilimitados: ultrapassar os limites do modelo pode causar falha na tarefa e reembolso. Mais imagens de referência geralmente aumentam o tempo de processamento.
</ParamField>

<ParamField body="official_fallback" type="boolean" default="false">
  Aplica-se apenas a `gemini-nano-banana-2.1-ext`. Quando ativado, tenta concluir a tarefa com a versão oficial se Ext falhar.

  **Se a versão oficial for realmente usada, a cobrança passa a seguir seu uso real de tokens, e não o preço por imagem da Ext.**
</ParamField>

<ParamField body="webhook" type="string">
  URL de callback para notificação ao término da tarefa. Consulte os [webhooks de tarefas](/pt/api-reference/tasks/webhook).
</ParamField>

## Referência de dimensões de saída

| Proporção | 1K | 2K | 4K |
| - | - | - | - |
| 1:1 | 1024×1024 | 2048×2048 | 4096×4096 |
| 2:3 | 848×1264 | 1696×2528 | 3392×5056 |
| 3:2 | 1264×848 | 2528×1696 | 5056×3392 |
| 3:4 | 896×1200 | 1792×2400 | 3584×4800 |
| 4:3 | 1200×896 | 2400×1792 | 4800×3584 |
| 4:5 | 928×1152 | 1856×2304 | 3712×4608 |
| 5:4 | 1152×928 | 2304×1856 | 4608×3712 |
| 9:16 | 768×1376 | 1536×2752 | 3072×5504 |
| 16:9 | 1376×768 | 2752×1536 | 5504×3072 |
| 21:9 | 1584×672 | 3168×1344 | 6336×2688 |

Estas dimensões incluem valores medidos e valores de referência da família de modelos. Nem todas as combinações foram testadas. As dimensões reais em pixels da imagem retornada são as definitivas.

## Editar uma imagem de referência

```json theme={null}
{
  "model": "gemini-nano-banana-2.1-ext",
  "prompt": "Coloque um gorro vermelho de tricô no gato da imagem e mantenha todo o restante inalterado",
  "image_urls": ["https://example.com/cat.jpg"],
  "resolution": "1K"
}
```

Substitua a URL de exemplo por uma URL de imagem acessível. Se `size` for omitido, a saída segue a proporção da imagem de referência.

## Geração em lote (apenas versão oficial)

```json theme={null}
{
  "model": "gemini-nano-banana-2.1",
  "prompt": "Cidade cyberpunk à noite, luzes de neon, ruas após a chuva",
  "size": "16:9",
  "resolution": "2K",
  "n": 4
}
```

## Resposta do envio

<ResponseField name="code" type="integer">
  Código de status da resposta. `200` indica sucesso.
</ResponseField>

<ResponseField name="data" type="array">
  Resultado do envio da tarefa. `status` é `submitted`. `task_id` serve para consultar o status e os resultados; não é a URL da imagem final.
</ResponseField>

## Consultar resultados da tarefa

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

Exemplo de resposta bem-sucedida (a URL da imagem é ilustrativa):

```json theme={null}
{
  "code": 200,
  "data": {
    "id": "task_01K...",
    "status": "completed",
    "progress": 100,
    "result": {
      "images": [
        {
          "url": ["https://example.com/generated-image.png"],
          "expires_at": 1791417625
        }
      ]
    }
  }
}
```

| Status da tarefa | Significado |
| - | - |
| `pending` | Na fila |
| `processing` | Em geração |
| `completed` | Sucesso; leia o array de URLs em `data.result.images[0].url` |
| `failed` | Falha; motivo em `data.error.message`. Reembolso integral; `data.cost` é 0 |

Todos os links das imagens finais estão no array `data.result.images[0].url`. Ao gerar 4 imagens, esse array contém 4 links. Apenas imagens finais são retornadas; `n=1` corresponde a 1 imagem final.

Os links expiram 24 horas após a conclusão da tarefa, conforme `expires_at`. Baixe e salve as imagens a tempo. A saída é PNG ou JPEG; considere o conteúdo real do arquivo. `data.cost` no resultado da consulta é o valor final cobrado em USD.

## Cobrança

* **Versão oficial**: cobrança pelo uso real de tokens de entrada e saída. Prompts e imagens de referência contam como entrada. No envio, um valor é debitado antecipadamente com base na resolução e em `n`; ao concluir, é ajustado ao uso real por reembolso ou cobrança adicional.
* **Versão Ext**: preço unitário da faixa de resolução × quantidade real de imagens geradas. A proporção não afeta a faixa. Se `official_fallback` estiver ativado e a versão oficial for realmente usada, aplica-se a cobrança por tokens da versão oficial.
* Consulte os [preços dos modelos](https://apimart.ai/pricing) para os valores unitários. Solicitações rejeitadas no envio não criam tarefas nem geram cobrança. Tarefas com falha recebem reembolso integral.

## Erros comuns

| Situação | Ação |
| - | - |
| HTTP 400 | Verifique `0.5K` / `512`, `n` acima de 4 ou imagens de referência que excedam o limite por imagem |
| HTTP 401 | Verifique a API Key |
| HTTP 402 | Verifique se o saldo cobre o débito inicial |
| HTTP 429 | Limite de requisições atingido; tente novamente com espera progressiva |
| Falha: proporção não suportada | Use uma das 10 proporções `size` suportadas ou `auto` |
| Falha: várias imagens solicitadas com Ext | Defina `n` como 1 ou use a versão oficial |
| Falha: bloqueio de segurança do conteúdo | Altere o prompt ou as imagens de referência e tente novamente |
| Falha: download da imagem de referência | Verifique se a URL da imagem é acessível publicamente |

<Warning>
  Nano banana 2.1 e Gemini 3.1 Flash Image são modelos diferentes; seus nomes não são aliases intercambiáveis. Ao migrar deste último, altere a resolução `0.5K` e as quatro proporções extremas: `1:4`, `4:1`, `1:8` e `8:1`.
</Warning>


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