API de LLM por token

Modelos de linguagem de pesos abertos por uma API compatível com a da OpenAI, cobrada por token consumido, em reais. Troque a base_url do seu código e comece a usar.

Você paga por token, em reais, e só pelo que usar. Sem assinatura, sem mensalidade e sem franquia: cada chamada é debitada do mesmo saldo que já paga as suas instâncias de GPU. Cobrança em reais via Pix ou cartão, sem conversão de moeda e sem IOF de compra internacional, com suporte em português.

Preços por modelo

Preço por milhão de tokens, em reais. Tokens de entrada (o que você envia: instruções, histórico e contexto) e de saída (o que o modelo gera) são contados separadamente, porque custam diferente.

Modelo Contexto Entrada (R$/1M) Saída (R$/1M)
DeepSeek V4 Flash gpub-fast 1.000.000 tokens R$ 0,49 R$ 1,09
Qwen 3.6 35B gpub-mini 200.000 tokens R$ 0,59 R$ 3,49
Qwen 3.8 27B gpub-plus 1.000.000 tokens R$ 0,69 R$ 3,99
GLM 5.3 Flash gpub-pro 250.000 tokens R$ 1,89 R$ 5,90
GLM 5.2 gpub-base 250.000 tokens R$ 7,90 R$ 17,90
Kimi K3 gpub-max 1.000.000 tokens R$ 17,90 R$ 84,90

Preços por milhão de tokens, em reais.

Não existe mínimo de compra de tokens. Você não compra pacote, lote nem crédito de token: a cobrança é proporcional ao que a chamada consumiu de fato. Uma pergunta curta pode custar frações de centavo. Os únicos mínimos são os de depósito, que já valem para as GPUs: R$100 no primeiro depósito (com bônus de R$12, ou R$25 a partir de R$300) e R$5 nas recargas seguintes.

Use gpub-max, gpub-base, gpub-pro, gpub-plus, gpub-mini ou gpub-fast no campo model. São identificadores estáveis: quando o modelo por trás for atualizado para uma geração nova, o seu código continua funcionando sem alteração. Por conveniência, o nome do modelo também é aceito na entrada (kimi-k3, qwen3.8), mas a resposta sempre devolve o identificador que você enviou.

Simulador de custo

Estime quanto custaria uma chamada antes de escrever a primeira linha de código. Para referência, uma pergunta curta (500 tokens de entrada e 300 de saída) fica na casa de frações de centavo nos modelos mais econômicos.

≈ R$ 0,00

Estimativa com os mesmos preços públicos da tabela acima. O valor exato de cada chamada vem no campo usage.cost_brl da própria resposta da API.

URL base e autenticação

Todos os endpoints ficam sob a URL base abaixo e seguem o formato da API da OpenAI:

https://gpubrasil.com.br/v1

Autentique com a mesma API key que já usa para provisionar GPUs, no header Authorization. Trate-a como uma senha.

Authorization: Bearer gpub_live_suachaveaqui

Gere sua API key no painel

Por segurança, as API keys são geradas e gerenciadas dentro da sua conta, na seção API Keys do painel. A chave em claro é exibida uma única vez, no ambiente autenticado.

Abrir painel → API Keys

Exemplos de código

cURL

curl https://gpubrasil.com.br/v1/chat/completions \
  -H "Authorization: Bearer gpub_live_suachaveaqui" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpub-plus",
    "messages": [
      { "role": "user", "content": "Explique o que e um token de LLM em duas frases." }
    ]
  }'

Resposta (resumo):
{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "model": "gpub-plus",
  "choices": [
    { "index": 0, "message": { "role": "assistant", "content": "..." }, "finish_reason": "stop" }
  ],
  "usage": {
    "prompt_tokens": 22,
    "completion_tokens": 64,
    "total_tokens": 86,
    "cost_brl": 0.0012
  }
}

O campo usage.cost_brl é o custo em reais daquela chamada, já calculado pelo servidor. É o mesmo valor debitado do seu saldo.

Se você não enviar max_tokens, aplicamos um teto padrão de 4.096 tokens de saída (limite máximo de 32.768 por chamada, e sempre respeitando o que sobra da janela de contexto). É a trava que impede uma única chamada de custar dezenas de reais — peça max_tokens explicitamente quando precisar de respostas mais longas, senão a resposta volta com finish_reason: "length".

Python (SDK oficial da OpenAI)

Instale com pip install openai. Só mudam a base_url e a chave:

from openai import OpenAI

client = OpenAI(
    api_key="gpub_live_suachaveaqui",
    base_url="https://gpubrasil.com.br/v1",
)

resposta = client.chat.completions.create(
    model="gpub-plus",
    messages=[{"role": "user", "content": "Resuma este texto em 3 topicos: ..."}],
)

print(resposta.choices[0].message.content)
print("Custo em R$:", resposta.usage.model_dump().get("cost_brl"))

Node.js (pacote openai)

Instale com npm i openai:

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "gpub_live_suachaveaqui",
  baseURL: "https://gpubrasil.com.br/v1",
});

const resposta = await client.chat.completions.create({
  model: "gpub-mini",
  messages: [{ role: "user", content: "Classifique este comentario como positivo ou negativo: ..." }],
});

console.log(resposta.choices[0].message.content);
console.log("Custo em R$:", resposta.usage.cost_brl);

Streaming (resposta em fluxo contínuo)

Com stream: true os tokens chegam conforme são gerados. Peça stream_options.include_usage para receber o bloco de uso, com o custo em reais, no último evento do fluxo:

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "gpub_live_suachaveaqui",
  baseURL: "https://gpubrasil.com.br/v1",
});

const fluxo = await client.chat.completions.create({
  model: "gpub-max",
  messages: [{ role: "user", content: "Escreva um roteiro curto sobre..." }],
  stream: true,
  stream_options: { include_usage: true },
});

for await (const parte of fluxo) {
  const texto = parte.choices?.[0]?.delta?.content;
  if (texto) process.stdout.write(texto);
  // O ultimo evento do fluxo nao traz texto: traz o uso e o custo em reais.
  if (parte.usage) console.log("\nCusto em R$:", parte.usage.cost_brl);
}

Erros seguem o mesmo envelope da OpenAI: {"error":{"message","type","param","code"}}. Os mais comuns: 402 saldo insuficiente (deposite e repita a chamada), 403 a API programática é liberada depois do primeiro depósito confirmado — antes disso, teste os modelos pelo playground do painel, 429 limite de requisições (espere e repita) e 503 serviço temporariamente indisponível.

Quando usar API por token e quando usar GPU dedicada

API por token

Para começar em minutos, sem nada para provisionar nem manter ligado. Faz sentido quando:

  • o uso é intermitente ou imprevisível;
  • você não quer pagar máquina ociosa entre uma chamada e outra;
  • você quer testar vários modelos trocando uma linha de código;
  • o pico de demanda é curto e você não quer dimensionar infraestrutura para ele;
  • a integração já usa o SDK da OpenAI e você só quer trocar a base_url.

Não usamos os seus prompts nem as respostas para treinar modelos.

GPU dedicada

Uma instância com GPU que é só sua, cobrada por hora. Faz sentido quando:

  • o volume é alto e constante, e a hora de GPU sai mais barata que o token;
  • você precisa de um modelo próprio, ajustado por fine-tuning ou fora do nosso catálogo;
  • você precisa de controle: os pesos rodam dentro da sua instância e você decide o que é registrado em log, por quanto tempo e quem tem acesso, sem depender da API de ninguém. É esse controle, e não a geografia do servidor, que sustenta uma política de governança e LGPD;
  • você quer rodar treino, RAG, geração de imagem ou qualquer carga que não seja só texto.
Abrir o console e subir uma GPU dedicada

Acesso à internet

No playground do painel, a consulta à internet é automática. Conversa comum não consulta nada e paga só os tokens; quando a pergunta pede informação atual — uma notícia recente, um número que muda ao longo do dia — o dado é buscado antes de a pergunta chegar ao modelo, e a resposta cita o valor e o horário da consulta.

Só nessas mensagens entra uma taxa de acesso de R$ 0,05, somada ao custo dos tokens. Um selo na resposta marca quando houve consulta e de onde veio o dado.

Na API, o controle é seu. As chamadas para /v1/chat/completions não consultam a internet: você monta o contexto que quiser. O caminho padrão é declarar uma ferramenta de busca em tools — o modelo pede a chamada, o seu código executa a busca e devolve o resultado. Isso funciona pela nossa API hoje.

Suporte a ferramentas varia por modelo. gpub-max, gpub-pro e gpub-plus pedem a ferramenta e usam o resultado corretamente. gpub-fast pede a ferramenta, mas nem sempre aproveita bem o resultado. gpub-mini não suporta ferramentas — ele ignora o pedido mesmo quando obrigado. Para agente com ferramentas, use gpub-max, gpub-pro ou gpub-plus.

Sobre max_tokens em modelos de raciocínio. Cinco dos seis modelos — gpub-max, gpub-base, gpub-pro, gpub-plus e gpub-mini — pensam antes de responder, e esse texto chega no campo reasoning_content, separado de content. Esses tokens são cobrados como saída, apareçam ou não na resposta: eles foram gerados. Com um teto baixo o raciocínio consome a cota inteira, a resposta volta vazia e a chamada termina com finish_reason: "length" — medimos o gpub-max gastar 1.024 tokens inteiros pensando sem escrever uma linha. Para uma pergunta de verdade nesses modelos, use pelo menos 4.096 tokens de saída. Só o gpub-fast responde direto, sem fase de raciocínio.

Perguntas frequentes

Existe mínimo de compra de tokens?

Não. Não há pacote, lote nem mínimo de tokens: a cobrança é proporcional ao que a chamada realmente consumiu, contando entrada e saída separadamente. Os únicos mínimos são os de depósito, que já existem para as GPUs: R$100 no primeiro depósito (com bônus de R$12, ou R$25 a partir de R$300) e R$5 nas recargas seguintes.

Preciso assinar um plano mensal?

Não. Não há assinatura, mensalidade nem franquia. Você deposita saldo em reais e o consumo da API é debitado desse mesmo saldo, o mesmo que paga as suas instâncias de GPU. Mês sem chamada é mês sem cobrança.

A API é compatível com a da OpenAI?

Sim. Os endpoints /v1/chat/completions, /v1/completions e /v1/models seguem o formato da OpenAI, inclusive respostas em fluxo contínuo com stream: true. Na prática você usa o SDK oficial e troca apenas a base_url e a chave.

Como sei quanto custou cada chamada?

Toda resposta traz usage.cost_brl, o custo em reais daquela chamada já calculado pelo servidor. Em streaming, envie stream_options: {"include_usage": true} para receber o bloco de uso no último evento. Você também acompanha o consumo agregado em /api/inference/usage e no seu extrato no painel.

Vocês usam meus prompts para treinar modelos?

Não. Os seus prompts e as respostas não são usados para treinar modelos. Se o seu requisito é controle total sobre pesos, logs e retenção, o caminho é uma GPU dedicada: o modelo roda dentro de uma instância que é só sua e você decide o que fica registrado.

Quando vale mais a pena a GPU dedicada em vez da API por token?

Quando o volume é alto e constante, quando você precisa de um modelo próprio ou ajustado por fine-tuning, ou quando precisa controlar diretamente pesos, logs e retenção. A API por token vence quando o uso é intermitente, quando você não quer manter máquina ligada e quando o objetivo é começar em minutos.

Em qual moeda a API é cobrada?

Em reais. Os preços são publicados em R$ por milhão de tokens, o saldo é depositado em reais via Pix ou cartão e a cobrança sai do mesmo saldo. Não há conversão de moeda nem IOF de compra internacional.

Os preços desta página são os mesmos da cobrança?

Sim. A tabela acima é carregada em tempo de execução a partir do mesmo catálogo que o servidor usa para calcular usage.cost_brl. Os valores que aparecem no HTML servem apenas para a página continuar legível se a sua rede falhar ao carregar a tabela.

Posso usar o mesmo saldo das minhas GPUs?

Sim, e é exatamente assim que funciona: um saldo só, em reais, que paga as instâncias por hora e as chamadas de API por token. Depósito por Pix ou cartão, sem conversão de moeda e sem IOF de compra internacional.