Conversa
Anthropic Messages e Claude Code
Os modelos Claude também são compatíveis com a Messages API da Anthropic, pelo que os SDKs da Anthropic, o Claude Code e tudo o que foi criado para eles funcionam com um novo URL base e uma nova chave.
/v1/messagesURL base https://api.zurelay.com (os SDKs acrescentam /v1/messages). Envie a chave como x-api-key ou Authorization: Bearer, com anthropic-version: 2023-06-01. Aqui só estão disponíveis modelos Claude; os restantes modelos 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 passa diretamente (exceto metadata, que fica connosco): system como string ou blocos (com cache_control para cache de prompts), tools, thinking, output_config, stop_sequences, temperature, streaming com os mesmos eventos e cabeçalhos anthropic-beta. As imagens e os PDFs são enviados em blocos image e document: consulte Imagens, PDFs, áudio e vídeo. A Anthropic rejeita temperature, top_p e top_k no Claude a partir do Opus 4.7, pelo que, nesses modelos, os omitimos do pedido em vez de devolver um erro.
Raciocínio
O Claude raciocina de forma adaptativa: decide quanto raciocínio é necessário para cada pedido, e output_config.effort define o nível de esforço: low, medium, high, xhigh (muito elevado) 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 raciocinam sempre: o Opus 5.5 em
medium, a menos que defina um nível, e o Fable emhigh. Se lhes pedir para não raciocinar, funcionam emlow. - O Claude Sonnet 5.5 e o Opus 5 raciocinam em
highpor predefinição, e o Claude Haiku 5.5 emmedium. Do Opus 4.6 ao 4.8, só raciocinam quando enviathinking. O Opus 4.6 não temxhigh, pelo que funciona emhigh. - A forma anterior,
thinking: { type: "enabled", budget_tokens }, funciona em todos os modelos Claude: os que não a aceitam usam raciocínio adaptativo no nível mais próximo. O Claude Haiku 4.5 só aceita essa forma e recebe um orçamento de raciocínio quando envia raciocínio adaptativo. - O raciocínio é faturado como tokens de saída, por isso reserve espaço para ele em
max_tokensnos níveisxhighemax, e use streaming para respostas longas. Quando define um nível, o cabeçalhox-zurelay-reasoning-effortindica qual foi utilizado.
Cache de prompts
A cache funciona como na Anthropic: coloque cache_control nos blocos a guardar em cache, ou no pedido completo, para os manter durante cinco minutos, ou adicione "ttl": "1h" para os manter durante uma hora. Cada parte da entrada é faturada da mesma forma que na Anthropic:
Os dois tipos de escrita estão em usage.cache_creation, e cache_creation_input_tokens é a soma de ambos. A página de cada modelo mostra os respetivos preços de cache. Só o que pede para guardar em cache é faturado como escrita: num pedido sem cache_control, tudo o que não for lido da cache é cobrado ao preço de entrada, e a entrada que pediu para manter durante cinco minutos nunca é faturada como se fosse de uma hora.
Claude Code
Configure o Claude Code para usar a Zurelay com cinco variáveis de ambiente (o URL base, a sua chave e os três aliases de modelos) e, depois, execute-o como habitualmente:
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 esta 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, pelo que xhigh e max funcionam como na Anthropic. Ultracode é uma definição do Claude Code, não um nível de esforço: usa o nível da sessão (xhigh quando inicia o Claude Code com --effort ultracode).
Contagem de tokens
/v1/messages/count_tokensAceita o mesmo corpo que /v1/messages e devolve { "input_tokens": 1234 }, uma estimativa do número de tokens do pedido. Gratuito.
Erros
Os erros são devolvidos no formato da Anthropic ({ "type": "error", "error": { "type", "message" } }), com os mesmos significados indicados na página de erros. Não incluem code: use o estado HTTP e error.type.
/v1/chat/completions. Se enviar um para /v1/messages, o erro indica que endpoint deve usar. A tabela em Imagens, PDFs, áudio e vídeo mostra o que cada modelo consegue ler.- Dica: O contador de tokens da Anthropic e o nosso podem apresentar pequenas diferenças; a utilização indicada na resposta é a que é faturada.
Tem dúvidas ou falta alguma coisa? Contacte a nossa equipa de apoio e responderemos por email, normalmente num minuto.