Erros e limites

Formato de erro, status HTTP e limites de requisição.

Formato de erro

Toda falha responde com um status HTTP e um JSON com a mensagem em português. Não há códigos numéricos de erro — use o status HTTP para decidir o que fazer.

Exemplo
{ "error": "Você não tem permissão para fazer isso nesse canal" }

Algumas respostas trazem uma marcação extra:

CampoQuando
automod: trueA auto-moderação do servidor bloqueou a mensagem (422).
requiresRulesAcceptance: trueO servidor exige aceitar as regras (rota humana de mensagens).
verificationLevelBlocked: trueO nível de verificação do servidor bloqueou o envio (rota humana).
requires2FA: trueAção de moderação num servidor que exige 2FA — bots não passam.

Status HTTP

StatusSignificado
400Corpo ou parâmetro inválido. A mensagem aponta o campo (ex.: "embeds[0].title: máximo 256 caracteres.").
401Token ausente, inválido, revogado ou de aplicação suspensa.
403Sem permissão, rota não permitida para bots/humanos ou intent desligado.
404Recurso não encontrado (ou não pertence à sua aplicação).
409Conflito: interação já respondida/expirada, bot já existe, componente não existe mais.
413Corpo maior que o limite (ícone acima de 2 MB, JSON acima de 20 MB).
422Mensagem bloqueada pela auto-moderação.
429Limite de requisições excedido.
500Erro interno. Tente de novo com espera.

Limites de requisição

Os limites contam por conta (o bot) e por tipo de ação, numa janela deslizante.

Atenção
A resposta 429 não traz Retry-After nem cabeçalhos X-RateLimit-*. Espere a janela da tabela e tente de novo, de preferência com backoff.
AçãoLimite
POST /api/bot/…/messages10 a cada 10 s
PATCH /api/bot/…/messages/:id10 a cada 10 s
POST /api/servers/…/messages10 a cada 10 s
PUT /api/bot/commands20 por minuto
PUT /api/bot/presence30 por minuto
Criar aplicação / gerar bot10 por hora cada
Rotacionar token / segredos20 por hora cada
Concluir instalação30 por hora
Testar URL de interações10 por minuto
POST /api/bot/interactions/:id/respond, GET /api/bot/*sem limite específico

Outras regras gerais

  • Base: https://nexapp.online/api. Corpo sempre JSON, até 20 MB.
  • IDs são UUIDs (strings).
  • Datas vêm como texto UTC ("2026-10-05 14:30:00") ou ISO 8601.
  • Respostas da API não são cacheadas (Cache-Control: no-store).