Documentação do BasicRouter
Início rápido
O BasicRouter oferece às equipes de produção uma API estável para acesso a modelos, roteamento, fallback, rastreamento de uso e cobrança baseada em créditos. O fornecimento de tokens LLM é proveniente de contas originais de provedores confiáveis em nuvem corporativa, com proteção de privacidade, alta estabilidade e rastreabilidade de solicitações integradas ao gateway.
https://api.basicrouter.ai/apihttps://api.basicrouter.ai/api/v1https://api.basicrouter.ai/api/v1Authorization: Bearer <key>Criar uma chave API
Crie uma chave API do BasicRouter no console. Mantenha a chave no seu servidor e nunca a exponha no código do navegador ou do cliente móvel.
Estratégia de chave recomendada:
| Tipo de chave | Uso recomendado |
|---|---|
| Chave de desenvolvimento | Desenvolvimento local, homologação, testes e protótipos. |
| Chave de produção | Apenas cargas de trabalho de produção no backend. |
| Chave de integração | Chave dedicada para ferramentas como Cursor, Claude Code, Codex, Hermes ou OpenClaw. |
| Chave de cliente / tenant | Isolamento opcional de chave para clientes corporativos, tráfego de tenant ou unidades de negócio. |
Rotacione as chaves quando o acesso da equipe mudar. Revogue as chaves que não são mais usadas.
Aponte seu SDK para o BasicRouter
A maioria dos clientes compatíveis com OpenAI só precisa de uma nova URL base e chave API.
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.BASICROUTER_API_KEY,
baseURL: "https://api.basicrouter.ai/api/v1"
});Enviar uma conclusão de chat
curl --request POST \
--url https://api.basicrouter.ai/api/v1/chat/completions \
--header "Authorization: Bearer $BASICROUTER_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "claude-sonnet-5",
"messages": [
{ "role": "user", "content": "Explain BasicRouter in one sentence." }
]
}'Verificar uso e saldo
curl --request GET \
--url https://api.basicrouter.ai/api/v1/billing/balance \
--header "Authorization: Bearer $BASICROUTER_API_KEY"Descoberta de modelos
Use a página de Modelos ou a API de Modelos para inspecionar os modelos de texto disponíveis. Os metadados do modelo incluem fornecedor, provedor de serviço, modalidade, comprimento de contexto, famílias de API suportadas, capacidades suportadas, disponibilidade, limites no nível da conta e preço em créditos.
Endpoint: GET /v1/models Objetivo: Listar modelos disponíveis para a conta atual.
curl --request GET \
--url https://api.basicrouter.ai/api/v1/models \
--header "Authorization: Bearer $BASICROUTER_API_KEY"Matriz de capacidades
| Capacidade | Descrição | Comumente usado por |
|---|---|---|
streaming | Suporta streaming de eventos enviados pelo servidor (SSE). | Apps de chat, agentes de programação, UX em tempo real. |
tool_calling | Suporta chamada de ferramentas ou funções. | Agentes, automação de fluxos de trabalho, assistentes de programação. |
structured_outputs | Suporta saídas com restrição de esquema ou JSON. | Extração de dados, automação de fluxos de trabalho, apps corporativos. |
json_mode | Pode retornar saída formatada em JSON. | Respostas estruturadas leves. |
vision | Aceita entrada de imagem. | Chat multimodal, análise de UI, capturas de tela de documentos. |
prompt_caching | Suporta entrada em cache ou reutilização de contexto. | Agentes de contexto longo, prompts de sistema repetidos. |
reasoning | Suporta controles explícitos de raciocínio quando disponíveis. | Planejamento complexo, programação, fluxos de análise. |
logprobs | Suporta saída de probabilidade de tokens. | Avaliação, classificação, fluxos avançados de NLP. |
Matriz de compatibilidade de famílias de API
| Família de API | Texto | Entrada de visão | Chamada de ferramentas | Saída estruturada | Streaming | Observações |
|---|---|---|---|---|---|---|
| OpenAI Chat Completions | Sim | Depende do modelo | Depende do modelo | Depende do modelo | Sim | Melhor padrão para agentes e SDKs compatíveis com OpenAI. |
| OpenAI Responses | Sim | Depende do modelo | Depende do modelo | Depende do modelo | Sim | Recomendado para fluxos de trabalho de agentes mais recentes no estilo OpenAI. |
| Anthropic Messages | Sim | Depende do modelo | Depende do modelo | Depende do modelo | Sim | Melhor para clientes compatíveis com Claude e Claude Code. |
| Geração de imagem BasicRouter | Não | Depende do modelo | Não | Não | Não | Usa polling assíncrono de tarefas ou webhook. |
| Geração de vídeo BasicRouter | Não | Depende do modelo | Não | Não | Não | Usa polling assíncrono de tarefas ou webhook. |
Autenticação
Toda solicitação de API usa um token bearer. Armazene as chaves em variáveis de ambiente do lado do servidor, rotacione-as quando o acesso da equipe mudar e registre os IDs de solicitação para depuração.
| Cabeçalho | Valor | Observações |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | Obrigatório para toda solicitação. |
Content-Type | application/json | Obrigatório para corpos de solicitação JSON. |
Recomendações de segurança de chaves
- Mantenha as chaves API no servidor. Não exponha as chaves no código do navegador ou do cliente móvel.
- Use chaves separadas para desenvolvimento, homologação, produção e integrações de terceiros.
- Defina o escopo das chaves por ambiente, serviço, cliente ou tenant quando disponível.
- Faça a rotação das chaves após a saída de funcionários, mudanças no acesso de fornecedores ou suspeita de vazamento.
- Armazene as chaves em gerenciadores de segredos ou variáveis de ambiente, não no código-fonte.
Uso do console
O Console do BasicRouter é o plano de controle operacional para acesso à API, disponibilidade de modelos, políticas de roteamento, visibilidade de uso e administração de cobrança. Ele oferece aos administradores da conta uma visão centralizada de chaves, modelos, solicitações, créditos e controles no nível da conta para tráfego de modelos em produção.
Gerenciamento de chaves API
Crie, rotacione, revogue e rotule chaves API no console. Use chaves separadas para desenvolvimento, homologação, produção e serviços individuais para que o uso possa ser auditado e isolado por ambiente ou aplicação.
| Prática | Descrição |
|---|---|
| Ambientes separados | Use chaves API diferentes para tráfego de desenvolvimento, homologação e produção. |
| Use rótulos descritivos | Rotule as chaves por aplicação, serviço, ambiente ou integração. |
| Rotacione regularmente | Rotacione as chaves quando o acesso mudar ou as credenciais podem ter sido expostas. |
| Evite exposição no lado do cliente | Mantenha as chaves API apenas em sistemas do lado do servidor. Não exponha as chaves no código do navegador ou do cliente móvel. |
| Monitore o uso da chave | Revise o volume de solicitações, consumo de créditos e padrões de erro por chave. |
Lista de modelos
Use a página de Modelos para revisar os modelos disponíveis para a conta. Cada entrada de modelo pode incluir fornecedor, provedor de serviço, modalidade, famílias de API suportadas, comprimento de contexto, sinalizadores de capacidade, status de disponibilidade e informações de preço.
| Filtro | Objetivo |
|---|---|
| Fornecedor | Filtre por fornecedor do modelo como OpenAI, Anthropic, Google, Qwen, DeepSeek ou outros provedores. |
| Provedor | Filtre por provedor de serviço ou provedor de nuvem. |
| Modalidade | Filtre por suporte a texto, imagem, vídeo, embedding, áudio ou multimodal. |
| Capacidade | Filtre por suporte a streaming, chamada de ferramentas, saídas estruturadas, visão, cache de prompt ou raciocínio. |
| Disponibilidade | Identifique modelos que estão disponíveis para a conta no momento. |
Para aplicações em produção, verifique as capacidades do modelo antes de ativar o tráfego. Alguns parâmetros e recursos dependem do modelo e podem não ser suportados em todas as famílias de API.
Uso e logs
A visualização de Uso e Logs fornece visibilidade operacional do tráfego da API. As equipes podem inspecionar o volume de solicitações, modelos selecionados, destinos de roteamento resolvidos, consumo de créditos, latência, códigos de erro e IDs de solicitação.
- Solucione falhas em solicitações.
- Identifique cargas de trabalho de alto custo.
- Compare o uso de modelos entre aplicações e ambientes.
- Valide o comportamento de roteamento e fallback.
- Investigue problemas de latência ou disponibilidade do provedor.
- Forneça IDs de solicitação ao contatar o suporte.
Cada resposta da API inclui ou expõe um ID de solicitação do BasicRouter. Armazene este ID nos logs da sua aplicação para tornar a depuração de produção e a escalonamento de suporte mais eficientes.
Fallback
O Fallback é o mecanismo de resiliência do BasicRouter. Quando o modelo principal ou a política de roteamento falha, o sistema alterna automaticamente para um modelo de backup para continuar processando a solicitação. Isso mantém sua aplicação responsiva e minimiza o risco de interrupção do serviço.
O Fallback atua como uma rede de segurança, mantendo sua aplicação funcionando sem problemas, mesmo quando ocorre uma falha de modelo, limite de cota ou flutuação de rede.
Por que o fallback é importante
Em produção, os serviços de modelo podem enfrentar vários problemas imprevisíveis:
- Falha no serviço do modelo: a API upstream fica temporariamente indisponível ou atinge o tempo limite.
- Flutuação de desempenho: alta carga do modelo leva a respostas lentas ou com falha.
- Falha de roteamento: todos os modelos candidatos selecionados pelo roteamento inteligente ficam indisponíveis.
O Fallback mantém sua aplicação disponível fornecendo um caminho de backup confiável.
Principais vantagens
| Vantagem | Descrição |
|---|---|
| Alta disponibilidade | O failover automático mantém o serviço em execução e reduz o impacto das interrupções. |
| Troca transparente | O sistema alterna os modelos automaticamente — não são necessárias alterações no código da aplicação. |
| Configuração flexível | Suporta configuração tanto por solicitação quanto no nível da conta para diferentes casos de uso. |
| Otimização de custos | Escolha um modelo mais econômico como fallback para controlar custos de emergência. |
| Gerenciamento centralizado | Configure uma vez no nível da conta e será aplicado automaticamente a toda solicitação. |
Configuração de modelo de fallback global
O BasicRouter suporta a definição de um modelo de fallback global no backend do console. Todas as solicitações usam automaticamente este modelo como backup quando falham.
Como configurar:
- Acesse a página de configurações de estratégia do BasicRouter.
- Encontre a configuração de Modelo de Fallback Padrão.
- Selecione seu modelo de fallback global na lista suspensa.
- Salve a configuração para aplicá-la imediatamente.
Vantagens da configuração global:
- Sem alterações de código: configure uma vez e aplica-se globalmente, sem necessidade de repetir a configuração em cada solicitação.
- Gerenciamento centralizado: gerencie a política de fallback em um único local para ajuste e monitoramento mais fáceis.
- Manutenção simplificada: reduz a complexidade do código e a chance de erros de configuração.
- Substituição flexível: a configuração de fallback no nível da solicitação tem prioridade e pode substituir a configuração global para cenários específicos.
Configuração de fallback no nível da solicitação
Para cenários de negócio específicos, você pode especificar um modelo de fallback em uma solicitação individual para substituir a configuração global.
Especifique o modelo de fallback com o parâmetro router.fallBackModels:
{
"model": "claude-sonnet-4",
"messages": [
{
"role": "user",
"content": "Explain what quantum computing is"
}
],
"router": {
"fallBackModels": ["glm-5.2"]
}
}Regras de prioridade
Quando várias configurações de fallback estão presentes, a prioridade vai da mais alta para a mais baixa:
router.fallBackModelsno nível da solicitação: o modelo de fallback especificado em uma solicitação individual.- Modelo de Fallback Padrão Global: o modelo de fallback global configurado no console.
- Sem fallback: se nenhum dos dois estiver configurado, a solicitação retorna um erro em caso de falha.
- Se todos os modelos de fallback falharem, o sistema retorna o motivo da falha do último modelo tentado.
- Quando ocorre um fallback, a resposta indica o modelo realmente usado, facilitando o monitoramento e a análise.
Administração da conta
Dependendo do tipo de conta, o console pode incluir ativação de modelos no nível da conta, controles de revendedor ou distribuidor, configuração de cobrança e configurações de acesso. Os administradores podem usar esses controles para alinhar o acesso a modelos, a visibilidade de uso e a responsabilidade de cobrança com aplicações, contas de cliente ou unidades de negócio.
Lista de verificação de operações de produção
| Item | Recomendação |
|---|---|
| Chaves API | Use chaves de produção dedicadas com rótulos claros. |
| Modelos | Confirme a disponibilidade do modelo, preço, comprimento de contexto e capacidades necessárias. |
| Roteamento | Configure aliases de roteamento ou políticas de fallback para cargas de trabalho críticas. |
| Logs | Garanta que os IDs de solicitação sejam capturados nos logs da aplicação. |
| Cobrança | Confirme o saldo da carteira, o status do plano e as regras de dedução de créditos. |
| Limites de taxa | Revise RPM, TPM, concorrência e limites de tarefas de mídia no nível da conta. |
| Alertas | Monitore o crescimento de uso, saldo de créditos, erros e disponibilidade do provedor. |
Cobrança e créditos
O BasicRouter usa um modelo de cobrança baseado em créditos para cargas de trabalho de texto, imagem, vídeo e outros modelos suportados. Os créditos fornecem uma unidade unificada para uso de múltiplos modelos e múltiplos provedores, permitindo que as equipes gerenciem o consumo de forma consistente entre modalidades e famílias de API.
Os preços detalhados dos modelos estão disponíveis na página de Modelos ou através das APIs de metadados de modelo. O preço pode variar por modelo, provedor, modalidade, resolução, tipo de token, compramento de saída, duração da tarefa, tipo de conta e acordo comercial.
Recarga e carteira
As contas podem adicionar créditos de carteira pré-pagos para uso flexível. Os créditos da carteira são usados após os créditos do plano mensal e dos pacotes de recursos serem consumidos, a menos que uma regra billing rule applies to the account.
Os créditos da carteira não expiram, salvo especificação em contrário nos termos comerciais aplicáveis. Uma taxa de serviço é cobrada ao recarregar a carteira pré-paga.
Planos mensais e pacotes de recursos
Cada usuário ou conta pode selecionar um plano mensal ativo. Os planos mensais fornecem uma quantidade definida de capacidade de uso, termos comerciais e configuração de acesso no nível da conta para o período de cobrança.
Os usuários também podem comprar vários pacotes de recursos para capacidade de uso adicional. Os pacotes de recursos podem separar o uso comprometido do saldo da carteira pré-paga e são úteis para uso de alto volume de texto, imagem, vídeo ou cargas de trabalho dedicadas.
Ordem de dedução
A menos que regras de cobrança personalizadas estejam configuradas, os créditos são deduzidos na seguinte ordem:
| Prioridade | Origem do crédito | Descrição |
|---|---|---|
| 1 | Plano mensal | A capacidade de uso mensal incluída é consumida primeiro. |
| 2 | Pacotes de recursos | Pacotes adicionais comprados são consumidos após os créditos do plano mensal. |
| 3 | Carteira pré-paga (pay-as-you-go) | O saldo da carteira é consumido após os créditos do plano e dos pacotes de recursos. |
Para contas com termos comerciais personalizados, a ordem de dedução, regras de expiração, uso incluído e preços podem ser diferentes. As regras específicas da conta são mostradas no console ou fornecidas através do acordo comercial.
Preços personalizados
Os preços podem ser personalizados para cada usuário ou conta. Clientes corporativos, contas de revendedor, contas de distribuidor e clientes de alto volume podem ser elegíveis para preços personalizados. Entre em contato com as vendas para uma cotação.
Os preços personalizados podem ser configurados por conta, modelo, provedor, modalidade, região, volume de uso ou acordo comercial. Quando os preços personalizados são ativados, o console e as APIs de cobrança refletem os preços e regras de dedução específicos da conta quando disponíveis.
Unidades de preço
Diferentes modalidades de modelo usam diferentes unidades de medida. O BasicRouter converte essas unidades em créditos de acordo com as regras de preço do modelo.
| Modalidade | Base comum de preço |
|---|---|
| Texto | Tokens de entrada, tokens de saída, tokens de leitura em cache, tokens de escrita em cache, tokens de raciocínio ou categorias de token específicas do modelo. |
| Imagem | Modelo, resolução, número de imagens geradas, uso de imagem de entrada, modo de edição ou configuração de qualidade. |
| Vídeo | Modelo, resolução de saída, segundos gerados, proporção da tela, uso de imagem ou vídeo de entrada e tipo de tarefa. |
| Embeddings | Tokens de entrada ou número de registros de embedding. |
| Áudio | Duração de entrada, duração de saída, comprimento de transcrição ou unidades de áudio específicas do modelo. |
As unidades de preço podem variar por modelo. Sempre consulte a página de detalhes do modelo ou os metadados de preço antes de ativar um modelo em produção.
Atribuição de uso
O uso do BasicRouter pode ser revisado por conta, chave API, modelo, modalidade ou intervalo de tempo. Isso permite que as equipes atribuam custos a aplicações, ambientes, clientes ou unidades de negócio internas.
| Dimensão | Descrição |
|---|---|
| Chave API | Agrupe o uso por aplicação, serviço ou ambiente. |
| Modelo | Compare custo e volume por modelo selecionado. |
| Modelo resolvido | Revise o modelo real usado após roteamento ou fallback. |
| Modalidade | Separe o uso de texto, imagem, vídeo, embedding e áudio. |
| Período | Revise períodos de relatório diários, mensais ou personalizados. |
| Metadados | Agrupe o uso por metadados de solicitação personalizados, como ID do cliente, ID do tenant, ID do usuário ou ambiente. |
Saldo de créditos
Verifique quantos créditos estão disponíveis em sua conta. O saldo é dividido em três carteiras que são deduzidas em ordem: a allowances do plano mensal, pacotes de recursos comprados e a carteira pré-paga. Um total combinado de recursos (plano mensal + pacotes de recursos, excluindo o pré-pago) também está disponível para rastrear o uso incluído separadamente dos gastos de recarga.
Para recuperar isso programaticamente, consulte GET /v1/billing/balance na Referência da API.
Detalhes de uso
Revise uma lista paginada e cronológica de registros de uso individuais para relatórios, monitoramento e alocação interna de custos. Cada registro mostra o modelo, tipo de modelo (texto, imagem ou vídeo), os créditos deduzidos e um detalhamento de qual carteira cada dedução foi retirada. Os resultados podem ser filtrados por um intervalo de tempo específico.
Para recuperar isso programaticamente, consulte GET /v1/usage na Referência da API.
Histórico de transações
Use o histórico de transações para revisar movimentações de créditos, incluindo recargas, alocações de plano, concessões de pacotes de recursos, deduções de uso, ajustes e correções administrativas.
Para recuperar isso programaticamente, consulte GET /v1/billing/transactions na Referência da API.
Solicitações com falha e reembolsos
Erros de validação, erros de autenticação e erros de permissão geralmente não são cobrados porque nenhuma execução de modelo ocorre. Solicitações que alcançam um modelo upstream ou geram saída parcial podem consumir créditos dependendo do modelo, provedor e estado da resposta.
Para tarefas assíncronas de imagem e vídeo, o comportamento de cobrança depende se a tarefa foi aceita, iniciada, concluída, falhou ou foi cancelada. A resposta de detalhes da tarefa inclui informações de uso quando os créditos foram consumidos.
Recargas, planos mensais, pacotes de recursos e créditos consumidos não são reembolsáveis, a menos que especificado de outra forma no acordo comercial aplicável ou exigido por lei.
Operacional
Erros
O BasicRouter retorna códigos de erro estáveis para que as aplicações possam lidar com repetições, fallbacks, problemas de cobrança e depuração de forma consistente.
Endpoints compatíveis com provedores tentam preservar o formato de erro da família de API original quando possível. Endpoints nativos do BasicRouter usam o objeto de erro do BasicRouter.
Mapeamento de status HTTP e códigos de erro
| Status HTTP | Tipo de erro | Códigos de exemplo | Repetir |
|---|---|---|---|
| 400 | invalid_request_error | invalid_request, unsupported_parameter, invalid_messages, invalid_image_url | Não |
| 401 | authentication_error | missing_api_key, invalid_api_key | Não |
| 402 | billing_error | insufficient_credits, payment_required, quota_exceeded | Não |
| 403 | permission_error | model_access_denied, endpoint_access_denied, key_scope_denied | Não |
| 404 | not_found_error | model_not_found, response_not_found, task_not_found | Não |
| 408 | timeout_error | gateway_timeout, provider_timeout | Sim |
| 409 | conflict_error | idempotency_conflict, task_already_cancelled | Depende |
| 422 | validation_error | schema_validation_failed, unsupported_modality | Não |
| 429 | rate_limit_error | account_rpm_exceeded, account_tpm_exceeded, provider_rate_limited | Sim |
| 500 | internal_error | internal_error | Sim |
| 502 | provider_error | provider_bad_gateway, provider_invalid_response | Sim |
| 503 | service_unavailable | model_unavailable, provider_unavailable, insufficient_capacity | Sim |
| 504 | timeout_error | provider_timeout, gateway_timeout | Sim |
Códigos de erro comuns
| Código | Significado | Ação recomendada |
|---|---|---|
missing_api_key | Nenhuma chave API foi fornecida. | Adicione o cabeçalho Authorization. |
invalid_api_key | A chave API é inválida ou revogada. | Crie ou rotacione a chave API. |
model_not_found | O ID do modelo não existe ou não está ativado para a conta. | Consulte a página de Modelos ou chame GET /v1/models. |
model_access_denied | A chave API ou a conta não tem acesso ao modelo. | Ative o modelo ou contate o administrador. |
unsupported_parameter | A solicitação inclui um parâmetro não suportado pelo endpoint ou modelo selecionado. | Remova o parâmetro ou escolha um modelo compatível. |
unsupported_modality | A modalidade de entrada ou saída não é suportada pelo modelo selecionado. | Escolha um modelo que suporte a modalidade. |
account_rpm_exceeded | Limite de solicitações por minuto da conta excedido. | Repita com backoff ou solicite limites maiores. |
account_tpm_exceeded | Limite de tokens por minuto da conta excedido. | Repita com backoff, reduza tokens ou solicite limites maiores. |
provider_rate_limited | O provedor upstream limitou a taxa da solicitação. | Repita ou ative o fallback. |
insufficient_credits | A conta tem créditos insuficientes. | Recarregue a carteira, compre um pacote ou faça upgrade do plano. |
provider_timeout | O provedor upstream não respondeu a tempo. | Repita ou ative o fallback. |
model_unavailable | O modelo está temporariamente indisponível. | Repita ou use um alias de roteamento. |
content_policy_error | A solicitação ou saída foi bloqueada por uma política de segurança. | Modifique a entrada ou escolha um fluxo de trabalho adequado. |
