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.
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.
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.
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 KeysExemplos 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.
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.
/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.