Preços da Gemini Batch API: limites, plano gratuito e tempo de resposta

A Gemini Batch API cobra 50% da tarifa padrão em troca de um prazo-alvo de 24 horas. Este artigo lista os preços em lote por modelo, as regras do plano gratuito, os limites de requisições e tokens por nível, os tempos de resposta reais e um exemplo de custo com código em Python.

Preços da Gemini Batch API: limites, plano gratuito e tempo de resposta
Cristian Da Conceicao
Fundador do Picasso IA

Pagar preço cheio por respostas que ninguém precisa neste minuto é o desperdício mais comum em projetos com Gemini. A Gemini Batch API existe exatamente para essa situação: você entrega ao Google uma pilha de requisições, se afasta e recolhe os resultados depois, por 50% do custo padrão. A pegadinha é o tempo. O prazo-alvo do Google é de 24 horas, os jobs expiram após 48 horas, e alguns limites determinam o tamanho da pilha que você pode enviar.

Este artigo reúne os números em um só lugar: preços em lote por modelo, o que o plano gratuito realmente permite, limites de tamanho e de tokens por nível, quanto tempo levam os resultados e as chamadas exatas em Python para enviar um job. Todos os valores vêm das páginas públicas de preços, lotes e limites de taxa do Google, conferidas em outubro de 2026, então confirme-os antes de comprometer um orçamento grande.

💡 Resposta rápida: o lote custa metade do preço, tem prazo-alvo de 24 horas, aceita menos de 20 MB inline ou 2 GB por arquivo e permite 100 jobs simultâneos. O plano gratuito lista o lote como gratuito para apenas dois modelos Flash-Lite.

O que a Batch API realmente faz

Jobs assíncronos pela metade do preço

Uma longa mesa de triagem de madeira com fileiras de envelopes creme idênticos, vista de cima

Uma chamada normal ao Gemini é síncrona: você envia um prompt, espera alguns segundos e paga a tarifa interativa. Um job em lote funciona como deixar uma caixa de envelopes em uma central de triagem. Você envia muitas requisições como um único job, o Google as coloca na fila, executa quando há capacidade e mantém a saída pronta para você baixar. Os modelos, o formato do prompt e as configurações continuam os mesmos. Só muda a entrega, e o Google cobra 50% do custo padrão por essa troca.

A Batch também aceita mais do que prompts de texto simples:

  • Context caching, cobrado pelas tarifas padrão de cache
  • Jobs de embeddings por meio de batches.create_embeddings
  • Geração de imagens com a família Nano Banana de modelos de imagem do Gemini
  • Saída estruturada com esquemas JSON
  • Google Search como ferramenta dentro de uma requisição

Onde o lote funciona melhor

O lote compensa quando ninguém está esperando a resposta. Bons casos são classificar um catálogo de produtos, resumir milhares de chamados de suporte, rotular um conjunto de dados, rodar uma suíte de avaliação durante a noite, escrever textos alternativos para uma biblioteca de imagens ou gerar embeddings para um índice de busca. Também combina com qualquer pipeline que já roda em agenda, como a atualização noturna das descrições de produtos que mudaram naquele dia. Casos ruins são chatbots, buscas ao vivo e qualquer tela em que uma pessoa fica olhando um carregamento.

💡 Regra prática: se um atraso de seis horas não incomodaria ninguém, o job pertence ao lote.

Preços da Gemini Batch API por modelo

Todas as tarifas abaixo já têm desconto. Os preços estão em dólares americanos por 1 milhão de tokens no plano pago, conforme a página de preços do Google em outubro de 2026.

Tarifas por milhão de tokens

Close de uma calculadora preta e recibos impressos sobre uma mesa de nogueira escura

ModeloEntrada em loteSaída em lote
Gemini 3.8, 3.7 e 3.6 Flash (até 31 de dez. de 2026)$0,375$1,875
Gemini 3.8, 3.7 e 3.6 Flash (a partir de 1º de jan. de 2027)$0,75$3,75
Gemini 3.5 Flash$0,75$4,50
Gemini 3.5 Flash-Lite$0,15$1,25
Gemini 3.1 Flash-Lite$0,125 texto, imagem, vídeo; $0,25 áudio$0,75
Gemini 2.5 Pro$0,625 até 200 mil tokens; $1,25 acima$5,00 até 200 mil; $7,50 acima
Gemini 2.5 Flash$0,15 texto, imagem, vídeo; $0,50 áudio$1,25
Gemini 2.5 Flash-Lite$0,05 texto, imagem, vídeo; $0,15 áudio$0,20

Dois detalhes importam aqui. Primeiro, as tarifas de lote do Gemini 3.8, 3.7 e 3.6 Flash são promocionais até 31 de dezembro de 2026 e dobram em 1º de janeiro de 2027, então um orçamento escrito agora precisa das duas linhas. Segundo, o Gemini 2.5 Pro é o único modelo da tabela em que o tamanho do prompt muda o preço unitário.

Um exemplo de custo calculado

Considere um job de 10.000 requisições, cada uma com 1.500 tokens de entrada e 300 tokens de saída. Isso soma 15 milhões de tokens de entrada e 3 milhões de tokens de saída.

ModeloCusto de entradaCusto de saídaTotal em loteTotal padrão
Gemini 3.5 Flash-Lite$2,25$3,75$6,00$12,00
Gemini 3.5 Flash$11,25$13,50$24,75$49,50

O desconto é exatamente a metade, então a execução com Flash-Lite economiza $6,00 e a com Flash economiza $24,75. Com 1.000.000 de requisições, os mesmos jobs economizam $600 e $2.475. Se seus prompts provocam raciocínio longo, lembre que os tokens de pensamento são cobrados como saída, então a coluna de saída pode crescer mais rápido que a de entrada.

Não chute a contagem de tokens. Primeiro rode 50 requisições representativas pela API normal, leia os metadados de uso de cada resposta e calcule a média das entradas e saídas. Multiplique pelo número de requisições e pela tarifa de lote. Uma amostra de 50 leva alguns minutos e costuma revelar o formato de prompt que gasta três vezes mais que os outros.

Custos da geração de imagens

A saída de imagem é a parte cara dos jobs de imagem. O Gemini 3.1 Flash Image, o modelo conhecido como Nano Banana 2, tem tarifas de lote de $0,25 por milhão de tokens de entrada de texto ou imagem, $1,50 por milhão de tokens de saída de texto e pensamento, e $30,00 por milhão de tokens de saída de imagem. Para algumas poucas imagens você nem precisa de um job: o Nano Banana 2 no PicassoIA gera imagens sem limites de créditos, o que o torna um lugar mais barato para testar um prompt antes de enfileirar 5.000 deles.

Plano gratuito: o que você realmente recebe

Um jovem desenvolvedor de suéter verde trabalhando em um notebook em uma mesa de café

Modelos com lote gratuito

A tabela de preços do Google tem uma linha de Lote para cada modelo, com as colunas separadas de Plano gratuito e Plano pago. No momento em que este texto foi escrito, a coluna do Plano gratuito diz gratuito para dois modelos: Gemini 3.5 Flash-Lite e Gemini 3.1 Flash-Lite. Diz não disponível para Gemini 3.8, 3.7, 3.6 e 3.5 Flash, Gemini 3.1 Flash Image, Gemini 2.5 Pro, Gemini 2.5 Flash e Gemini 2.5 Flash-Lite.

Onde a documentação fica em silêncio

A página de lotes não diz se contas do plano gratuito podem enviar jobs. A página de limites de taxa lista números de tokens em fila para os três níveis pagos e nenhum para o plano gratuito. Então leia "gratuito" como com preço zero para esses dois modelos, não como ilimitado.

💡 Teste antes de planejar: envie um job de dez requisições em um dos dois modelos Flash-Lite, acompanhe o estado dele e confira a página de limites de taxa do seu projeto no AI Studio. Não construa uma agenda de produção em cima de uma linha de lote gratuito até que esse job pequeno tenha dado certo.

Limites que você vai encontrar

Vista de baixo ângulo de um corredor de data center entre armários de servidor cinza-fosco

Os limites de lote se dividem em dois grupos: quão grande pode ser um único job e quanto trabalho você pode ter esperando ao mesmo tempo.

Limites de requisições e tamanho de arquivo

LimiteValor
Payload de requisição inlineMenos de 20 MB no total
Tamanho do arquivo de entrada2 GB por arquivo
Armazenamento de arquivos20 GB
Requisições de lote simultâneas100
Expiração do job48 horas se pendente ou em execução
Prazo-alvo de resposta24 horas

Requisições inline servem para jobs pequenos. Quando o payload se aproximar de 20 MB, mude para um arquivo JSONL: uma requisição por linha, cada linha com um ID de requisição mais o corpo da requisição, enviado pela Files API.

Tokens em fila por nível

Vista aérea de um porto de carga com contêineres empilhados e um guindaste de pórtico ao entardecer

O limite mais rigoroso não é o tamanho do arquivo, e sim os tokens em fila: o total de tokens esperando em todos os jobs de lote ativos de um modelo. Ele cresce conforme o seu nível de faturamento.

NívelComo se qualificarTokens em fila (exemplo)
Nível 1Conta de faturamento vinculada3.000.000 para Gemini 3.8 Flash
Nível 2US$ 100 pagos e 3 dias desde o primeiro pagamento bem-sucedido400.000.000 para Gemini 3.8 Flash
Nível 3US$ 1.000 pagos e 30 dias desde o primeiro pagamento bem-sucedido1.000.000.000 para a maioria dos modelos

Para um modelo com limite de 3.000.000 de tokens no Nível 1, nosso exemplo de 15 milhões de tokens de entrada precisaria de pelo menos cinco ondas separadas. No Nível 2, cabe em um único job com folga. A passagem do Nível 1 para o Nível 2 é a que muda a forma como você projeta um pipeline.

Tempo de resposta e estados do job

O que 24 horas realmente significa

Um relógio de parede analógico redondo com mostrador creme em uma parede de tijolos brancos à luz da manhã

O Google chama 24 horas de prazo-alvo de resposta e acrescenta que, na maioria dos casos, os resultados chegam bem antes. Trate isso como um teto para planejar, não como uma velocidade com a qual você pode contar. Jobs pequenos costumam voltar rápido, enquanto os grandes esperam por capacidade.

O limite rígido são 48 horas: um job ainda pendente ou em execução nesse ponto expira. Dividir uma carga grande em vários jobs faz com que uma expiração ou falha custe apenas uma fatia, e não a execução inteira.

Mais uma armadilha: enviar um job de lote não é idempotente. Se o seu script estourar o tempo limite depois da chamada de criação e você tentar de novo, cria um segundo job e paga pelos dois. Salve o nome do job da primeira resposta antes de fazer qualquer outra coisa.

Um ritmo prático é a execução noturna. Envie o job no fim do expediente, deixe-o rodar durante a noite e leia os resultados com o primeiro café. Se um job ainda estiver pendente depois de um dia inteiro, não espere a expiração de 48 horas para descobrir: verifique o estado, observe seu total de tokens em fila para aquele modelo e considere cancelar e reenviar em fatias menores.

Estados do job para acompanhar

Um padeiro tirando bandejas de pães dourados de uma prateleira de aço em uma padaria antes do amanhecer

Como em uma fornada de padaria, um job passa por etapas, e você só recolhe a saída no final.

EstadoO que significa
JOB_STATE_PENDINGNa fila, ainda não iniciado
JOB_STATE_RUNNINGAs requisições estão sendo processadas
JOB_STATE_SUCCEEDEDOs resultados estão prontos para leitura
JOB_STATE_FAILEDO job falhou, verifique o campo de erro
JOB_STATE_CANCELLEDO job foi cancelado
JOB_STATE_EXPIREDO job passou da janela de 48 horas

O código de exemplo do Google consulta o estado a cada 30 segundos. Para jobs que devem rodar por horas, um intervalo maior evita chamadas desnecessárias.

Envie um job de lote em Python

Vista por cima do ombro de um desenvolvedor digitando em uma mesa em pé

Requisições inline

Com o SDK google-genai, um job inline recebe uma lista de requisições, um nome de modelo e um nome de exibição opcional:

from google import genai

client = genai.Client()

inline_requests = [
    {"contents": [{"parts": [{"text": "Tell me a one-sentence joke."}], "role": "user"}]},
    {"contents": [{"parts": [{"text": "Why is the sky blue?"}], "role": "user"}]},
]

job = client.batches.create(
    model="gemini-3.8-flash",
    src=inline_requests,
    config={"display_name": "inlined-requests-job-1"},
)
print(job.name)

Para um job com arquivo, envie o JSONL com client.files.upload, usando mime_type='jsonl', e depois passe uploaded_file.name como src.

Consultar e ler os resultados

import time

finished_states = {
    "JOB_STATE_SUCCEEDED",
    "JOB_STATE_FAILED",
    "JOB_STATE_CANCELLED",
    "JOB_STATE_EXPIRED",
}

job = client.batches.get(name=job.name)
while job.state.name not in finished_states:
    time.sleep(30)
    job = client.batches.get(name=job.name)

if job.state.name == "JOB_STATE_SUCCEEDED":
    for i, item in enumerate(job.dest.inlined_responses):
        if item.response:
            print(i, item.response.text)
        elif item.error:
            print(i, item.error)

Jobs com arquivo devolvem um arquivo de resultados: leia job.dest.file_name e baixe-o com client.files.download.

Teste os prompts antes de enviar em lote

Um job de lote é um feedback lento. Um prompt ruim custa uma janela de resposta inteira e uma conta inteira. Teste o prompt de forma interativa primeiro, com uma dúzia de amostras variadas, e só então enfileire os milhares.

Use o Gemini 3.5 Flash no PicassoIA

O Gemini 3.5 Flash no PicassoIA roda prompts únicos no seu navegador, o que o torna uma bancada de testes rápida. Ele não envia jobs da Batch API, que continuam passando pelo SDK do Google. Esta é a rotina:

  1. Abra a página do modelo e encontre o campo Prompt.
  2. Cole o prompt exato que você pretende enviar no lote, incluindo os exemplos.
  3. Adicione uma instrução de sistema que defina o papel e o formato de saída, como "Retorne um objeto JSON por produto".
  4. Escolha um nível de pensamento: nenhum, baixo ou alto. Níveis mais altos custam mais tokens de saída no seu lote real, então use o mais baixo que funcione.
  5. Reduza a temperatura para extração ou classificação. O padrão é 1 em uma escala de 0 a 2.
  6. Anexe mídia se o job precisar. O modelo aceita até 10 imagens de 7 MB cada, áudio de até 8,4 horas e vídeo de até 45 minutos.
  7. Rode dez amostras variadas e leia todas as respostas. Ajuste o prompt e rode de novo.
  8. Copie o prompt final e a instrução de sistema para suas requisições em lote.

O limite padrão de saída é de 65.535 tokens, então defina um teto menor em tarefas curtas. Em um lote, cada token não usado que você deixa de gerar é dinheiro que você economiza.

Quer uma segunda opinião sobre a qualidade? Gemini 3.1 Pro, Gemini 3 Flash e Gemini 2.5 Flash estão na mesma coleção de modelos de linguagem (LLM), então você pode rodar um prompt em todos eles antes de escolher qual modelo vai para o job.

Gaste menos e depois crie imagens

Três colegas em volta de uma mesa de reunião de carvalho revisando gráficos de barras impressos

Três formas de reduzir a conta

  1. Coloque em cache a parte compartilhada. O context caching funciona dentro dos jobs de lote com as tarifas padrão de cache, então um prompt de sistema longo repetido em 10.000 requisições não deve ser pago 10.000 vezes.
  2. Escolha o menor modelo que funcione. A entrada do Gemini 3.5 Flash-Lite custa $0,15 por milhão de tokens contra $0,75 do Gemini 3.5 Flash, cinco vezes menos, e sua tarifa de saída de $1,25 equivale a cerca de 28% de $4,50.
  3. Limite a saída. Respostas curtas, um nível de pensamento baixo e um limite de saída apertado reduzem a coluna mais cara da sua conta.

Evite o lote quando uma pessoa estiver esperando, quando os resultados alimentarem uma tela ao vivo ou quando o job for tão pequeno que o custo de consultar o estado supera o desconto.

O mesmo hábito de testar barato antes de gastar alto vale para as imagens. Se o seu job em lote alimenta um blog, um catálogo ou um app, você provavelmente vai querer fotos para acompanhar o texto. Abra o Nano Banana 2 no PicassoIA e gere imagens sem um contador de créditos rodando, experimente o Seedream 5 Pro ou o FLUX 2 Pro para um visual diferente e itere até o resultado ficar certo. Veja todas as opções em picassoia.com/en/all-models e crie sua primeira imagem hoje.

Compartilhe este artigo

Escolha seu idioma