Pular para o conteúdo
Fantástico Mundo de Jon
RSS

Quanto custa programar com ChatGPT: os $20 do Plus contra a API

A escolha entre assinatura e API erra nas duas direções, e pelo mesmo motivo: no chat cada mensagem reenvia a conversa inteira. O gasto não cresce com o número de perguntas, cresce com o quadrado dele.

Com pressa? Peça o TL;DR ao Claude — ele lê a página e resume.

Quase todo mundo que programa com modelo online está pagando errado — e o mais interessante é que o erro acontece nas duas direções ao mesmo tempo.

De um lado, quem assina os US$ 20 e abre o chat três vezes por mês. Está pagando cerca de sete dólares por conversa e nem desconfia.

Do outro, quem migrou para a API porque “por token é muito mais barato”, ligou o script, mandou a conversa inteira em cada chamada e fechou o mês gastando o dobro da assinatura que cancelou.

Os dois erros têm a mesma raiz: ninguém faz a conta do contexto. Este post é essa conta, com os preços vigentes em 10 de fevereiro de 2025 e a aritmética aberta para você refazer com o seu uso.

Os preços que valem hoje

Comecemos pelo que é fato de tabela. Assinaturas primeiro:

Assinatura Preço mensal (US$)
ChatGPT Plus 20
Claude Pro 20
Cursor Pro 20
GitHub Copilot 10
Preços de lista dos planos individuais, vigentes em 10/02/2025. Planos de time e empresa têm outra tabela e ficam fora deste post.

E as APIs, por milhão de tokens:

Modelo (API) Entrada (US$/1M) Saída (US$/1M)
GPT-4o 2,50 10,00
GPT-4o mini 0,15 0,60
Claude 3.5 Sonnet 3,00 15,00
xAI grok-beta 5,00 15,00
Preços públicos por milhão de tokens, vigentes em 10/02/2025. A API da xAI entrou em beta público em 4 de novembro de 2024, com US$ 25 de crédito mensal — na prática, muita gente experimentou sem pagar nada.

Olhando essa segunda tabela, a conclusão parece óbvia. Uma pergunta de 200 tokens custa US$ 0,0005 de entrada no GPT-4o. Meio milésimo de dólar. Com esse número na cabeça, US$ 20 por mês viram quarenta mil perguntas, e a assinatura parece um roubo.

Some a resposta e o número já muda de ordem. Uma resposta de 500 tokens custa US$ 0,005 — dez vezes a pergunta, e a decomposição é limpa: o token de saída custa quatro vezes o de entrada, e a resposta é duas vezes e meia maior que a pergunta. Pergunta e resposta juntas: US$ 0,0105. Agora os US$ 20 valem 1.905 mensagens, não quarenta mil.

Ainda parece muito. É aqui que a conta desmonta.

A conta que ninguém faz

A API não tem memória. Cada chamada é independente, e o modelo não sabe nada do que foi dito na chamada anterior. Se a conversa precisa de continuidade, quem carrega a continuidade é você: a cada mensagem, o histórico inteiro volta a ser enviado como entrada, e volta a ser cobrado.

A interface do chat esconde isso muito bem. Você digita uma linha e parece que pagou uma linha. Por baixo, foi embora a conversa completa outra vez.

Então a décima mensagem não custa como a primeira. Ela custa a primeira mais tudo que veio antes. Vamos escrever isso direito.

Chamo de C o contexto inicial — o arquivo que você colou, as instruções de sistema, o stack trace. p é o tamanho da sua pergunta e r o tamanho da resposta do modelo. No turno n:

entrada no turno n     = C + (n − 1) × (p + r) + p
entrada acumulada em N = N × (C + p) + (p + r) × N × (N − 1) / 2
saída acumulada em N   = N × r

O termo que importa é o do meio. Ele tem N × (N − 1), ou seja, cresce com o quadrado do número de idas e voltas. Dobrar o tamanho da conversa não dobra o custo: quadruplica.

Para a conta virar número preciso fixar os três parâmetros. Escolhi um cenário de sessão de programação que me parece honesto, e deixo declarado que são valores estipulados, não medidos: C = 2.000 tokens (um arquivo de umas 200 linhas colado no começo), p = 200 tokens por pergunta (um parágrafo e um trecho pequeno) e r = 500 tokens por resposta (código com explicação curta). Troque pelos seus e a estrutura da conta não muda.

Idas e voltas Entrada no último turno Entrada acumulada Custo GPT-4o (US$) Se fosse linear (US$)
1 2.200 2.200 0,0105 0,0105
5 5.000 18.000 0,0700 0,0525
10 8.500 53.500 0,1838 0,1050
20 15.500 177.000 0,5425 0,2100
30 22.500 370.500 1,0763 0,3150
Aritmética a partir dos preços de 10/02/2025, com C=2.000, p=200 e r=500 tokens — parâmetros estipulados, não medidos. A última coluna é o erro comum: multiplicar o custo da primeira mensagem pelo número de mensagens.

Trinta idas e voltas — uma sessão de tarde, nada excepcional — custam US$ 1,08, e não os US$ 0,315 que a conta de cabeça prometia. Erro de 3,4 vezes.

Dois números dessa tabela merecem ser ditos em voz alta.

O primeiro: a trigésima mensagem sozinha custa US$ 0,061, contra US$ 0,0105 da primeira. A mesma pergunta, feita no fim da conversa, custa 5,8 vezes mais do que no começo. Você não mudou nada no seu comportamento; mudou o tamanho do que vai junto.

O segundo é pior. Dos 370.500 tokens de entrada cobrados na sessão inteira, apenas 8.000 são texto que eu digitei: os 2.000 do arquivo mais as trinta perguntas de 200 tokens. Todo o resto é material que já tinha passado por ali antes, meu ou do modelo. 97,8% do que você paga em entrada é conversa reenviada.

Não é desperdício por descuido do provedor. É como a inferência funciona: sem o histórico no prompt, o modelo não tem estado. Mas é uma conta que você pode influenciar, e quase ninguém tenta.

O ponto de virada tem fórmula

Com o custo de uma sessão fechado, o ponto de virada é uma divisão:

sessões até empatar com a assinatura = 20 / custo_de_uma_sessão

custo_de_uma_sessão =
  ( entrada_acumulada × preço_entrada + saída_acumulada × preço_saída ) / 1.000.000

Aplicando a cada modelo, na mesma sessão de trinta turnos:

Modelo (API) Sessão de 30 turnos (US$) Sessões/mês até chegar a US$ 20
GPT-4o 1,0763 18,58
GPT-4o mini 0,0646 309,72
Claude 3.5 Sonnet 1,3365 14,96
xAI grok-beta 2,0775 9,63
Mesma sessão-modelo (C=2.000, p=200, r=500, 30 turnos), aplicada aos preços de 10/02/2025. Divisão simples: US$ 20 pelo custo de uma sessão.

Pouco menos de dezenove sessões de trinta mensagens por mês, no GPT-4o, e a API já alcançou o Plus. No Claude 3.5 Sonnet bastam quinze. No grok-beta, menos de dez — e é aí que o crédito de US$ 25 do beta faz diferença: ele cobre doze sessões, o que para muita gente é o mês inteiro sem tirar o cartão do bolso.

O GPT-4o mini está em outro planeta: seriam 310 sessões, dez por dia, todo dia. Se o seu trabalho cabe no mini, a discussão de assinatura simplesmente não existe.

Traduzindo sessões em horas, que é como a maioria pensa o próprio uso:

Duração de uma sessão GPT-4o (h/mês para empatar) Claude 3.5 Sonnet (h/mês)
30 min 9,3 7,5
45 min 13,9 11,2
60 min 18,6 15,0
90 min 27,9 22,4
Conversão direta da tabela anterior: número de sessões multiplicado pela duração suposta de cada uma. Supõe que a hora de trabalho é densa — trinta idas e voltas de verdade, não uma pergunta e meia hora lendo a resposta.

Menos de dez horas por mês de conversa densa e a assinatura provavelmente não se paga. Mais de vinte e a API só ganha se você fizer alguma coisa a respeito do contexto. É exatamente essa faixa do meio, entre dez e vinte horas, que engole quase todo mundo — e é onde a decisão é decidida por detalhe, não por preço de tabela.

O que a assinatura compra e a API não vende

Antes de tratar a escolha como problema de otimização, vale listar o que os US$ 20 entregam que nenhuma planilha de token mostra.

Teto de gasto. Vinte dólares são vinte dólares. Na API não existe teto natural: existe um cartão cadastrado e um limite que você configurou, se lembrou de configurar. Um loop mal fechado num script noturno é uma classe de erro que a assinatura simplesmente não tem.

Zero manutenção. Sem chave para guardar, sem .env, sem rotacionar credencial, sem descobrir que o segredo vazou num commit. O custo disso não é zero, é só invisível.

A interface. Histórico pesquisável, anexo de arquivo, upload de imagem, voz, retomar uma conversa de terça-feira. Reimplementar isso para uso próprio é um projeto paralelo, e projeto paralelo de infraestrutura é onde o tempo de programador vai morrer.

Em compensação, o Plus tem um teto de uso que a API não tem — e ele se move. O número de mensagens do GPT-4o por janela de três horas variou ao longo de 2024 e no começo de 2025 conforme a carga, segundo relatos recorrentes no fórum de desenvolvedores da OpenAI. Não é número para basear conta: é limite que aparece na hora errada. Quem bate nele com frequência tem o ChatGPT Pro a US$ 200 por mês, anunciado em dezembro de 2024 com acesso ilimitado ao o1 — um degrau de dez vezes, que só faz sentido para quem já provou que o degrau de baixo não basta.

O que a API dá e a assinatura não

Três coisas, em ordem crescente de importância.

Escolher o modelo por tarefa. No chat você usa o modelo bom para tudo, inclusive para renomear variável e escrever mensagem de commit. Na API, o trivial vai para o GPT-4o mini, que custa exatamente 6% do GPT-4o — nos dois lados, entrada e saída. Não é economia de centavo: é a diferença entre US$ 1,08 e US$ 0,06 na mesma sessão. O o3-mini, lançado no fim de janeiro, entra na mesma categoria para o que precisa de raciocínio e não de conhecimento amplo.

Automatizar. Rodar em cima de um diff, num hook de commit, em lote sobre cem arquivos. O chat exige uma pessoa presente colando texto; a API não exige ninguém. Ferramentas como o Aider vivem disso.

Controlar o contexto. Esta é a que paga as outras duas, e é o assunto do resto do post.

Cortar contexto é a alavanca que ninguém puxa

No chat, o histórico é sagrado: ele cresce e você assiste. Na API, o histórico é um array que você monta antes de cada chamada, e você decide o que entra.

Vamos comparar três políticas na mesma sessão de trinta turnos:

Política de contexto Entrada acumulada (tokens) Custo GPT-4o (US$) Economia
Histórico inteiro 370.500 1,0763 0%
Janela dos 4 últimos turnos 143.000 0,5075 52,8%
Sem histórico: só C mais a pergunta 66.000 0,3150 70,7%
Mesma sessão-modelo e mesmos preços de 10/02/2025. A saída é idêntica nas três linhas (15.000 tokens); a diferença é só o que se manda de entrada.

Uma janela deslizante de quatro turnos — que na prática cobre quase todo pedido de programação, porque a pergunta atual raramente depende do que foi dito vinte mensagens atrás — corta o custo pela metade e não muda nada no que você digita.

E repare na terceira linha: US$ 0,3150. É exatamente o número da coluna “se fosse linear” da primeira tabela. A conta ingênua não estava errada por acaso — ela descreve com precisão o caso em que você não manda histórico nenhum. Toda a diferença entre a conta ingênua e a conta real é o histórico. Quem foi para a API convencido pela conta ingênua fez, sem saber, uma promessa de não usar contexto. Depois usou.

Cache de prompt: desconto com pedágio

Existe um segundo caminho, que ataca o mesmo problema por outro lado: se você vai mandar os mesmos tokens de novo, o provedor pode cobrar menos por eles. Os dois grandes já tinham isso funcionando em fevereiro de 2025.

Na OpenAI, o cache de prompt foi anunciado em outubro de 2024 e é automático — nenhuma mudança de código. Vale para prefixos com pelo menos 1.024 tokens, e o desconto é de 50% sobre a parte da entrada que já foi vista. O ponto crítico está na documentação da API: o acerto só acontece em correspondência exata de prefixo, e o prefixo em cache costuma sobreviver de cinco a dez minutos de inatividade, chegando a no máximo uma hora.

Na Anthropic, o cache virou disponibilidade geral em dezembro de 2024 e é explícito: você marca o ponto de corte com cache_control. A tabela de preços é diferente — para o Claude 3.5 Sonnet, escrever no cache custa US$ 3,75 por milhão (25% acima da entrada normal) e ler custa US$ 0,30 (um décimo dela). O prazo de validade padrão é de cinco minutos, renovados a cada leitura.

Aplicando às nossas trinta idas e voltas. A cada turno, o que já foi enviado antes vira leitura barata e só os 700 tokens novos — a resposta anterior mais a pergunta atual — entram a preço cheio:

Sessão de 30 turnos Sem cache (US$) Com cache (US$) Economia
GPT-4o 1,0763 0,6413 40,4%
Claude 3.5 Sonnet 1,3365 0,4138 69,0%
Estimativa aritmética, não medição: 348.000 tokens lidos do cache e 22.500 a preço cheio, com escrita de cache contabilizada no caso da Anthropic. Ignora o arredondamento em blocos de 128 tokens da OpenAI e supõe cache sempre quente — o melhor caso possível, portanto.

O Claude 3.5 Sonnet sai de mais caro que o GPT-4o para mais barato, e não é pouco: 69% de corte. O motivo é a assimetria das duas políticas — leitura a um décimo do preço compensa com folga o prêmio de 25% na escrita, desde que o cache seja lido várias vezes.

Essa última condição é o pedágio, e ela tem duas cobranças.

A segunda cobrança é o relógio. Poucos minutos de inatividade — cinco no padrão da Anthropic, cinco a dez na OpenAI — e o cache morre. Programar não é digitar sem parar: é ler a resposta, rodar o teste, olhar o log, voltar. Se você levantou para pegar café entre o turno onze e o doze, o turno doze paga entrada cheia — e no caso da Anthropic você já tinha pago 25% a mais para escrever um cache que ninguém leu. O melhor caso da tabela acima é otimista de propósito; o caso real depende do seu ritmo, e o meu eu ainda não cronometrei.

Onde cada escolha ganha

Juntando tudo, com a sessão de trinta turnos como unidade e três volumes mensais:

Escolha 5 sessões (US$) 20 sessões (US$) 40 sessões (US$)
Assinatura de US$ 20 (Plus ou Claude Pro) 20,00 20,00 20,00
GPT-4o mini, histórico inteiro 0,32 1,29 2,58
Claude 3.5 Sonnet, histórico com cache 2,07 8,28 16,55
GPT-4o, janela de 4 turnos 2,54 10,15 20,30
GPT-4o, histórico com cache 3,21 12,83 25,65
GPT-4o, histórico inteiro 5,38 21,53 43,05
Claude 3.5 Sonnet, histórico inteiro 6,68 26,73 53,46
xAI grok-beta, histórico inteiro 10,39 41,55 83,10
Custo mensal em dólares, multiplicando o custo por sessão pelo número de sessões. Preços de 10/02/2025. A linha do grok-beta ignora o crédito de US$ 25 do beta público, que no primeiro mês derruba as 20 sessões para US$ 16,55.

A célula marcada é a que resume o post. Vinte sessões por mês — umas cinco horas por semana de conversa densa — no GPT-4o com histórico inteiro: US$ 21,53, mais caro que a assinatura que essa pessoa cancelou. Mesmo volume, mesmo modelo, mesmo trabalho, com janela de quatro turnos: US$ 10,15. A diferença entre ganhar e perder não está no provedor. Está em quantas vezes você paga pelo mesmo token.

Repare também que a tabela inverte na coluna de cinco sessões: ali, qualquer linha de API ganha da assinatura com folga, e a pior delas — o grok-beta com histórico inteiro — ainda sai por pouco mais da metade dos US$ 20. Uso leve, na API, é quase sempre a escolha certa. Uso pesado sem controle de contexto é quase sempre a errada.

Os outros vinte dólares

Vale registrar que a escolha não é binária. O GitHub Copilot custa US$ 10 — metade do Plus — e o Cursor Pro custa os mesmos US$ 20, ambos com o modelo dentro do editor.

O que os dois vendem é justamente a variável que decide a conta deste post: eles montam o contexto por você. Selecionam trechos do arquivo aberto, dos arquivos vizinhos, do repositório. Você não decide o que entra, e não vê a fatura por token.

É uma troca legítima, e é preciso ser honesto sobre a direção dela: você paga um preço fixo para não pensar na variável. Se o contexto que a ferramenta escolhe é bom, você levou vantagem. Se é ruim, você não tem como saber, porque a conta não chega discriminada. Para uso previsível dentro do editor, é o melhor negócio da lista pelos US$ 10 do Copilot. Para trabalho que sai do editor — analisar log, discutir arquitetura, gerar em lote —, não substitui nem o chat nem a API.

O que eu ainda preciso medir

Toda a aritmética acima é derivada de preço de tabela e de uma sessão-modelo que eu estipulei. Ela é correta, e ainda assim não responde à pergunta que importa para mim, que é qual é o meu uso de verdade:

São cinco números, e eu não tenho nenhum: quantas sessões eu faço por mês, quanto dura cada uma, quantas idas e voltas ela tem, quantos tokens de entrada isso dá numa semana normal de trabalho, e quanto de fato apareceu na fatura.

Sem esses cinco números, qualquer recomendação que eu desse seria opinião com aparência de conta. Com eles, a fórmula do meio do post responde sozinha — e é por isso que ela está aberta ali em cima, para você preencher com o seu uso antes de eu preencher com o meu.


Se sobrar uma frase deste post, que seja esta: o preço por token é a parte do problema que já vem resolvida na tabela do provedor; o que decide a sua conta é quantas vezes você paga pelo mesmo token.

Quem assina os US$ 20 comprou o direito de não pensar nisso — e para uso pesado e desatento, esse direito é barato. Quem foi para a API comprou o controle da variável, mas controle só vira desconto quando é exercido: se o array de mensagens cresce sozinho até o fim da conversa, você pagou pela chave de um cofre que nunca abriu.

E o número que ninguém deveria esquecer é o 97,8%. Essa é a fração da entrada, numa sessão de trinta mensagens, que é texto que o modelo já tinha visto. Não existe otimização de prompt, escolha de modelo ou negociação de preço que chegue perto de mexer nessa fração. Só existe decidir o que entra.