Quickstart — aponte seu cliente para o Load Balance
Você gera uma chave de acesso, monta a URL do proxy e recebe a primeira resposta 200 de POST /{orgSlug}/{customUrl}/v1/messages — com cURL ou com o Claude Code apontado para o Load Balance.
Pré-requisitos#
Antes do primeiro pedido, tenha em mãos:
sk-lb-…. Pessoal: crie a sua em Minha conta → Chaves de API (/app/account) — o segredo aparece uma única vez, na criação. De serviço: um ADMIN emite na tela Chaves de URL (/app/client-keys)./app/configs): cada config exibe o endereço completo pronto para copiar e o snippet “Como usar” com as variáveis de ambiente do cliente.A URL que o cliente chama tem o formato https://, e cada parte vem de um lugar:
| Parte da URL | De onde vem | Exemplo |
|---|---|---|
host | O host público onde o proxy responde — a tela de Configs de URL mostra o endereço completo. | lb.exemplo.com |
orgSlug | O slug da sua organização, único no Load Balance. | minha-empresa |
customUrl | O slug da Config de URL que atende o pedido — cada config aponta para o grupo de chaves upstream e define o systemPrompt. | ana |
A chave sk-lb-… não é de provedor nenhum: o proxy a valida, a remove dos headers e injeta sozinho a chave upstream escolhida — ela nunca chega ao provedor.
Faça a primeira requisição#
Três passos levam do zero à primeira resposta 200:
-
Guarde a URL base e a chave
Copie o endereço da Config de URL e a sua chave. Exporte os dois valores no terminal, substituindo os placeholders pelos valores do seu painel:
bashexport LB_BASE_URL="https://lb.exemplo.com/minha-empresa/ana" export LB_KEY="sk-lb-SUA-CHAVE" -
Envie a primeira mensagem com cURL
Chame
POST /v1/messagesna URL base. A chave vai no headerx-api-key; o proxy aceita o mesmo valor emAuthorization: Bearer.bash200 OKcurl -sS -X POST "$LB_BASE_URL/v1/messages" \ -H "content-type: application/json" \ -H "x-api-key: $LB_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "claude-sonnet-5-5", "max_tokens": 128, "messages": [ { "role": "user", "content": "Em uma frase: o que é um gateway de chaves?" } ] } 'json{ "id": "msg_01Kw8Vq7Xp2Nz", "type": "message", "role": "assistant", "model": "claude-sonnet-5-5", "content": [ { "type": "text", "text": "Um gateway que recebe uma chave de acesso e escolhe, a cada requisição, qual chave de provedor atende o pedido." } ], "stop_reason": "end_turn", "stop_sequence": null, "usage": { "input_tokens": 16, "output_tokens": 23 } } -
Aponte o Claude Code para a URL base
O Claude Code lê
ANTHROPIC_BASE_URL— a URL base, sem/v1, porque o cliente acrescenta o caminho — eANTHROPIC_API_KEY, enviada comox-api-key.bashexport ANTHROPIC_BASE_URL="https://lb.exemplo.com/minha-empresa/ana" export ANTHROPIC_API_KEY="sk-lb-SUA-CHAVE" claudeAntes da primeira requisição, o CLI dispara um
HEADcontra a URL base para testar a conectividade. O proxy responde200com corpo vazio — não há configuração extra.
Se a resposta não for 200#
O corpo de erro segue o formato da API Messages, com um type que identifica a causa. O que você pode encontrar neste quickstart:
| Status | Corpo | O que fazer |
|---|---|---|
401 | authentication_error | Sem chave, chave inválida ou URL fora do seu alcance — a resposta é idêntica nas três situações, de propósito, para não enumerar URLs. Confira a chave e a URL base. |
403 | permission_error com code: ORG_SUSPENDED | O contrato da empresa está encerrado na Conta. As chaves voltam a valer quando a empresa contratar de novo. |
404 | Custom URL config not found | A organização ou a URL não existe. Confira orgSlug e customUrl. |
429 | rate_limit_error + header Retry-After | Todas as contas da URL passaram do corte de uso (janela de 5h ou semanal) ou levaram 429. Aguarde o tempo indicado em Retry-After. |
503 | overloaded_error | Erro interno após esgotar as tentativas com os provedores. Tente de novo em instantes. |
Próximos passos#
Sua resposta 200 já passou pelo motor de seleção — siga adiante para entender o caminho entre o seu POST e o provedor.
Depois de dominar o básico, explore além: