Voltar ao blog

IA para iniciantesGuia

API compatível com OpenAI: o que é base_url e como trocar

Uma API compatível com OpenAI aceita as mesmas requisições da OpenAI. Altere base_url, a chave e o id do modelo, e seu código envia a primeira requisição ao CheapTokens.

Por CheapTokens TeamPublicado em Atualizado em 5 min de leitura

Três valores a alterar ao migrar para uma API compatível com OpenAI: base_url, chave de API e id do modelo
Nesta página
  1. O que significa "compatível com OpenAI"?
  2. O que é base_url?
  3. Os três valores que você altera
  4. Primeira requisição em Python
  5. A mesma requisição com curl
  6. O que você deve ver
  7. Quanto custa?
  8. Se não funcionar
  9. Próximos passos

Uma API compatível com OpenAI é uma API que aceita requisições no mesmo formato da Chat Completions API da OpenAI e responde no mesmo formato. Para migrar um app para outro provedor, você normalmente altera três valores: base_url (para onde as requisições vão), a chave de API e o id do modelo. O restante do seu código, incluindo a lista de mensagens e a forma como você lê a resposta, permanece igual.

Este guia explica a ideia em palavras simples e termina com uma primeira requisição funcional ao CheapTokens em Python e curl. As informações sobre o CheapTokens foram verificadas na documentação dele em 22 de outubro de 2026.

O que significa "compatível com OpenAI"?#

Uma API é um conjunto de regras para conversar com um serviço pela internet (se a palavra é nova, comece por como funciona sua primeira requisição de API). O formato de chat da OpenAI se tornou um padrão comum: muitos provedores e ferramentas aceitam o mesmo corpo de requisição e retornam o mesmo formato de resposta. Uma API assim é chamada de compatível com OpenAI.

Na prática, isso significa que três coisas são iguais em qualquer provedor compatível:

  • A requisição: um corpo JSON com um campo model e uma lista messages, em que cada mensagem tem um role (system, user ou assistant) e content.
  • O caminho do endpoint: /chat/completions, adicionado após a base URL.
  • A resposta: um objeto JSON em que o texto gerado está em choices[0].message.content.

Como o formato é compartilhado, SDKs oficiais e muitos apps conseguem conversar com qualquer provedor compatível. Eles só precisam saber para onde enviar a requisição.

O que é base_url?#

base_url é o endereço com o qual toda requisição começa. Um SDK monta o endereço completo adicionando a ele o caminho da chamada.

Parte Exemplo
base_url https://api.cheaptokens.dev/v1
Caminho adicionado pelo SDK /chat/completions
Endereço completo da requisição https://api.cheaptokens.dev/v1/chat/completions

Assim, quando você define um base_url diferente, o mesmo código envia o mesmo tipo de requisição para um servidor diferente. A base URL do CheapTokens é https://api.cheaptokens.dev/v1. A API dele é compatível com OpenAI Chat Completions e com Anthropic Messages, e um único saldo pré-pago cobre todos os modelos.

Os três valores que você altera#

Valor O que é De onde vem
base_url Endereço da API https://api.cheaptokens.dev/v1
Chave de API Sua senha secreta para a API Sua conta CheapTokens. Veja o que é uma chave de API e como armazená-la com segurança
Id do modelo O nome exato do modelo no campo model A documentação do CheapTokens

O id do modelo merece atenção. Provedores diferentes dão ids diferentes ao mesmo modelo, então um id de outro serviço não funcionará aqui. Use os ids da documentação do CheapTokens. Os ids disponíveis agora:

Modelo Id do modelo Contexto Saída máxima por resposta
GLM-5.3-Flash zai-org/GLM-5.3-Flash 390K 8.192 tokens
DeepSeek-V4-Flash deepseek-ai/DeepSeek-V4-Flash-0731 380K 32.768 tokens
MiniMax-M2.7 MiniMaxAI/MiniMax-M2.7 180K 8.192 tokens

O DeepSeek-V4-Flash retorna até 32.768 tokens por resposta e tem contexto de 380K; o GLM-5.3-Flash tem contexto de 390K; o MiniMax-M2.7 tem contexto de 180K. Os três são cobrados do mesmo saldo, então alternar entre eles significa alterar apenas o id do modelo.

Primeira requisição em Python#

Instale o pacote openai e depois armazene sua chave em uma variável de ambiente em vez de escrevê-la no código:

bash
pip install openai
export CHEAPTOKENS_API_KEY="YOUR_CHEAPTOKENS_KEY"

Agora o código. A única diferença em relação a um exemplo padrão da OpenAI é o argumento base_url, a chave e o id do modelo:

python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.cheaptokens.dev/v1",   # 1. where requests go
    api_key=os.environ["CHEAPTOKENS_API_KEY"],   # 2. your CheapTokens key
)

response = client.chat.completions.create(
    model="MiniMaxAI/MiniMax-M2.7",                # 3. model id from the docs
    messages=[
        {"role": "system", "content": "You answer briefly."},
        {"role": "user", "content": "Explain base_url in one sentence."},
    ],
)

print(response.choices[0].message.content)

A chave no exemplo é um placeholder: substitua YOUR_CHEAPTOKENS_KEY pela sua própria chave e nunca faça commit de uma chave real em um repositório.

Se um app que você já tem lê configurações de um arquivo de config ou de variáveis de ambiente, você não precisa editar o código dele. Procure campos chamados base URL, API base ou endpoint e preencha os mesmos três valores ali.

A mesma requisição com curl#

O curl mostra o que o SDK faz nos bastidores: a base URL mais o caminho, a chave no cabeçalho Authorization e um corpo JSON.

bash
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MiniMaxAI/MiniMax-M2.7",
    "messages": [
      {"role": "user", "content": "Explain base_url in one sentence."}
    ]
  }'

O que você deve ver#

Quando tudo está configurado corretamente, o script Python imprime uma resposta de texto curta e o curl imprime um objeto JSON. Procure a lista choices: o texto da resposta está em choices[0].message.content. Se você vir isso, sua primeira requisição ao CheapTokens funcionou e você pode seguir para o seu app real.

Quanto custa?#

A cobrança é por tokens, contados separadamente para entrada e saída (veja tokens de entrada vs saída). Por exemplo, o MiniMax-M2.7 atualmente custa $0.05 por 1M de tokens de entrada e $0.15 por 1M de tokens de saída. A tabela abaixo sempre mostra os preços atuais de todos os modelos, sem sobretaxas de horário de pico.

Modelo Contexto Entrada $/1M Saída $/1M OpenRouter entrada OpenRouter saída
GLM-5.3-Flash reasoning 390K $0.02 $0.04 $0.0413 $0.0758
DeepSeek-V4-Flash 380K $0.015 $0.10 $0.0475 $0.1568
MiniMax-M2.7 180K $0.05 $0.15 $0.30 $1.20

Preços em USD por 1 milhão de tokens. Valores do OpenRouter exibidos para comparação e sujeitos a alterações.

Os preços da lista completa de modelos também estão na página de preços do CheapTokens.

Se não funcionar#

  • Erro de autenticação (geralmente 401): a chave está ausente, digitada errado ou tem espaços extras. Verifique se a variável de ambiente está definida no mesmo terminal em que você executa o script.
  • "Not found" (geralmente 404): verifique base_url. Ele deve terminar com /v1, e você não deve adicionar /chat/completions por conta própria ao usar um SDK, ou o caminho será duplicado.
  • Modelo desconhecido: copie o id do modelo exatamente da tabela acima ou da documentação, incluindo maiúsculas e a parte antes da barra.
  • Sem conexão ou timeout: veja erros de conexão comuns e como corrigi-los.
  • Resposta cortada no meio da frase: o limite max_tokens foi atingido, o que é abordado em por que uma resposta de IA para no meio da frase.

Próximos passos#

Depois que a primeira requisição funcionar, você pode adicionar streaming em Python, inserir os mesmos três valores no seu editor ou agente, ou ler como ler nomes de modelos de IA. Detalhes de configuração e uma lista completa de modelos estão na documentação do CheapTokens.