Documentação do app v1.0

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:

  • Uma chave de acesso 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).
  • A URL base do proxy. Abra Configs de URL (/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.
  • Um cliente HTTP. Qualquer cliente compatível com a API Messages da Anthropic serve — cURL para o teste, Claude Code para trabalhar.
  • A URL que o cliente chama tem o formato https:///{orgSlug}/{customUrl}, e cada parte vem de um lugar:

    Parte da URLDe onde vemExemplo
    hostO host público onde o proxy responde — a tela de Configs de URL mostra o endereço completo.lb.exemplo.com
    orgSlugO slug da sua organização, único no Load Balance.minha-empresa
    customUrlO 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 é do Load Balance

    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:

    1. 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:

      bash
      export LB_BASE_URL="https://lb.exemplo.com/minha-empresa/ana"
      export LB_KEY="sk-lb-SUA-CHAVE"
    2. Envie a primeira mensagem com cURL

      Chame POST /v1/messages na URL base. A chave vai no header x-api-key; o proxy aceita o mesmo valor em Authorization: Bearer.

      bash200 OK
      curl -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
        }
      }
      
    3. 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 — e ANTHROPIC_API_KEY, enviada como x-api-key.

      bash
      export ANTHROPIC_BASE_URL="https://lb.exemplo.com/minha-empresa/ana"
      export ANTHROPIC_API_KEY="sk-lb-SUA-CHAVE"
      claude

      Antes da primeira requisição, o CLI dispara um HEAD contra a URL base para testar a conectividade. O proxy responde 200 com 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:

    StatusCorpoO que fazer
    401authentication_errorSem 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.
    403permission_error com code: ORG_SUSPENDEDO contrato da empresa está encerrado na Conta. As chaves voltam a valer quando a empresa contratar de novo.
    404Custom URL config not foundA organização ou a URL não existe. Confira orgSlug e customUrl.
    429rate_limit_error + header Retry-AfterTodas as contas da URL passaram do corte de uso (janela de 5h ou semanal) ou levaram 429. Aguarde o tempo indicado em Retry-After.
    503overloaded_errorErro 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:

    Documentação gerada com a skill docs-padrao.