API e SDKGuia
SDK Python da Anthropic com CheapTokens: API Messages
Instale o SDK Python da Anthropic, aponte base_url para o CheapTokens, envie uma requisição messages.create e defina max_tokens.

Nesta página
Se o seu código já usa o SDK Python da Anthropic, você não precisa reescrevê-lo para chamar outro modelo. O CheapTokens fala a API Anthropic Messages, então você altera as configurações do cliente e mantém client. como está. Este guia leva você de uma pasta vazia até um script que imprime uma resposta.
O que você precisa#
- Python 3.10 ou mais recente (requisito do SDK).
- Uma chave de API do CheapTokens. Se você ainda não tem uma, veja "O que é uma chave de API e como armazená-la com segurança".
- Um saldo cobre todos os modelos, e não há horários de pico, então o mesmo script custa o mesmo em qualquer hora do dia.
Instale o SDK#
pip install anthropic
export CHEAPTOKENS_API_KEY="your-key"Mantenha a chave em uma variável de ambiente, não no arquivo de código.
Crie o cliente#
Duas configurações diferem de uma configuração padrão da Anthropic: a chave e base_url.
import os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["CHEAPTOKENS_API_KEY"],
base_url="https://api.cheaptokens.dev",
)O SDK acrescenta o caminho /v1/messages por conta própria, então base_url é o host sem /v1. (O endpoint no estilo OpenAI, https:/, é o que você usa com o SDK da OpenAI; veja "Sua primeira requisição de API com o CheapTokens".)
Primeira requisição#
message = client.messages.create(
model="deepseek-ai/DeepSeek-V4-Flash-0731",
max_tokens=1024,
messages=[
{"role": "user", "content": "Explain what a token is in two sentences."}
],
)
print(message.content[0].text)
print(message.stop_reason, message.usage.input_tokens, message.usage.output_tokens)Pegue o id do modelo na documentação do CheapTokens; os ids variam entre provedores. Aqui usamos DeepSeek-V4-Flash: uma janela de contexto de 380K e até 32.768 tokens em uma resposta, o que serve para respostas longas e loops de agentes.
A resposta está em message.content, uma lista de blocos; o texto está no primeiro. usage mostra quantos tokens de entrada e saída a chamada usou, que é pelo que você é cobrado.
max_tokens é obrigatório#
Diferente da API da OpenAI, messages.create não funciona sem max_tokens. Ele limita o comprimento da resposta:
- Muito baixo, e a resposta é cortada.
message.então éstop_ reason "max_tokens"em vez de"end_turn". - Para DeepSeek-V4-Flash você pode ir até 32.768 para respostas longas, como arquivos completos ou relatórios.
- Você paga pelos tokens realmente gerados, não pelo limite que definiu.
Se uma resposta parar no meio de uma frase, leia "Por que uma resposta de IA para no meio de uma frase?" para a explicação completa.
Trocando de modelo#
Apenas a string model muda; o resto do script permanece o mesmo. Escolha por tarefa:
- DeepSeek-V4-Flash: respostas longas e loops de agentes, um preço em qualquer horário, até 32.768 tokens de saída.
- GLM-5.3-Flash: chat e chamadas de programação do dia a dia baratas, contexto de 390K, até 8.192 tokens de saída.
- MiniMax-M2.7: trabalho de agentes e programação de baixo custo, contexto de 180K, até 8.192 tokens de saída.
A lista de ids disponíveis é retornada por GET https:/, por exemplo zai- e MiniMaxAI/.
Os preços atuais por 1M de tokens para MiniMax-M2.7 são $0.05 para entrada e $0.15 para saída. MiniMax-M2.7 é mais barato que o OpenRouter no total, com entrada e saída contadas juntas. Aqui está quanto custa uma requisição com 2.000 tokens de entrada e 500 de saída em cada modelo, ao vivo da lista de preços:
| Modelo | Entrada $/1M | Saída $/1M | Custo | OpenRouter |
|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.00006 | $0.00012 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.00008 | $0.00017 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.00018 | $0.0012 |
2.000 tokens de entrada e 500 tokens de saída no total. Os preços por 1M de tokens são atuais e mudam junto com nossas tarifas; a coluna OpenRouter mostra preços de referência para a mesma carga de trabalho.
GLM-5.3-Flash e MiniMax-M2.7 são mais baratos que o OpenRouter no total, com entrada e saída contadas juntas.
Próximo passo#
Crie uma chave e execute o script da seção Primeira requisição. Quando ele imprimir uma resposta, troque a string model para comparar modelos na sua própria tarefa.



