Chat
Anthropic Messages e Claude Code
Os modelos Claude também são compatíveis com a Messages API da Anthropic, então os SDKs da Anthropic, o Claude Code e tudo o que foi desenvolvido para eles funcionam com uma nova URL base e chave.
/v1/messagesURL base https://api.zurelay.com (os SDKs adicionam /v1/messages). Envie a chave como x-api-key ou Authorization: Bearer, com anthropic-version: 2023-06-01. Só os modelos Claude são atendidos aqui; os demais usam /v1/chat/completions.
Com os SDKs da Anthropic
import osimport anthropicclient = anthropic.Anthropic( base_url="https://api.zurelay.com", api_key=os.environ["ZURELAY_API_KEY"],)message = client.messages.create( model="claude-opus-5-5", max_tokens=1024, system="You are a careful code reviewer.", messages=[{"role": "user", "content": "Review this function: def add(a, b): return a - b"}],)print(message.content[0].text)Tudo na Messages API da Anthropic é repassado (exceto metadata, que fica conosco): system como string ou blocos (com cache_control para cache de prompt), tools, thinking, output_config, stop_sequences, temperature, streaming com os mesmos eventos e cabeçalhos anthropic-beta. Imagens e PDFs são enviados como blocos image e document: veja Imagens, PDFs, áudio e vídeo. A Anthropic rejeita temperature, top_p e top_k no Claude a partir do Opus 4.7, então, para esses modelos, removemos esses campos da requisição em vez de retornar um erro.
Raciocínio
O Claude raciocina de forma adaptativa: ele decide quanto raciocínio uma requisição exige, e output_config.effort define o nível de esforço: low, medium, high, xhigh (extra alto) ou max. Adicione display: "summarized" a thinking para receber um resumo do raciocínio em blocos thinking.
import osimport anthropicclient = anthropic.Anthropic( base_url="https://api.zurelay.com", api_key=os.environ["ZURELAY_API_KEY"],)message = client.messages.create( model="claude-opus-5-5", max_tokens=32000, thinking={"type": "adaptive", "display": "summarized"}, output_config={"effort": "xhigh"}, messages=[{"role": "user", "content": "How many primes are there below 1,000?"}],)for block in message.content: print(block.thinking if block.type == "thinking" else block.text)- O Claude Opus 5.5 e os modelos Fable sempre raciocinam: o Opus 5.5 em
medium, a menos que você defina um nível, e o Fable emhigh. Quando você pede que não raciocinem, eles usamlow. - O Claude Sonnet 5.5 e o Opus 5 raciocinam em
highpor padrão, e o Claude Haiku 5.5 emmedium. Do Opus 4.6 ao 4.8, só há raciocínio quando você enviathinking. O Opus 4.6 não temxhigh, então usahigh. - O formato antigo,
thinking: { type: "enabled", budget_tokens }, funciona em todos os modelos Claude: os que não o aceitam usam raciocínio adaptativo no nível mais próximo. O Claude Haiku 4.5 só aceita esse formato e recebe um orçamento de raciocínio quando você envia raciocínio adaptativo. - O raciocínio é cobrado como tokens de saída, então reserve espaço para ele em
max_tokensemxhighemax, e use streaming para respostas longas. Quando você define um nível, o cabeçalhox-zurelay-reasoning-effortinforma qual foi usado.
Cache de prompts
O cache funciona como na Anthropic: adicione cache_control aos blocos que você quer armazenar em cache, ou à requisição inteira, para mantê-los por cinco minutos, ou adicione "ttl": "1h" para mantê-los por uma hora. Cada parte da entrada é cobrada como na Anthropic:
Os dois tipos de gravação estão em usage.cache_creation, e cache_creation_input_tokens é a soma dos dois. A página de cada modelo mostra seus preços de cache. Só o que você pede para armazenar em cache é cobrado como gravação: uma requisição sem cache_control paga o preço de entrada por tudo que não lê do cache, e a entrada que você pediu para manter por cinco minutos nunca é cobrada como armazenamento por uma hora.
Claude Code
Configure o Claude Code para usar a Zurelay com cinco variáveis de ambiente (a URL base, sua chave e os três aliases de modelo), depois execute-o normalmente:
export ANTHROPIC_BASE_URL="https://api.zurelay.com"export ANTHROPIC_AUTH_TOKEN="$ZURELAY_API_KEY"export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-5-5"export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5-5"export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-5-5"claudePara manter a configuração, coloque os mesmos valores no bloco env de ~/.claude/settings.json. O guia completo e os guias para Cursor, Cline e outros estão em Integrações.
Os níveis de /effort do Claude Code chegam ao modelo como output_config.effort, então xhigh e max funcionam como na Anthropic. Ultracode é uma configuração do Claude Code, não um nível de esforço: ele usa o nível da sessão (xhigh quando você inicia o Claude Code com --effort ultracode).
Contagem de tokens
/v1/messages/count_tokensAceita o mesmo corpo de /v1/messages e retorna { "input_tokens": 1234 }, uma estimativa da contagem de tokens da requisição. Grátis.
Erros
Os erros são retornados no formato da Anthropic ({ "type": "error", "error": { "type", "message" } }), com os mesmos significados da página de erros. Eles não incluem code: use o status HTTP e error.type.
/v1/chat/completions. Se você enviar um para /v1/messages, o erro informa qual endpoint usar. A tabela em Imagens, PDFs, áudio e vídeo mostra o que cada modelo lê.- Dica: O contador de tokens da Anthropic e o nosso podem variar um pouco; a cobrança é baseada no uso informado na resposta.
Tem dúvidas ou falta algo? Fale com nossa equipe de suporte e responderemos por e-mail, geralmente em até um minuto.