Aplicações

Rotas de gerenciamento da aplicação: bot, segredos, intents, interações e instalações.

Gerenciar a aplicação (criar, gerar o bot, segredos, intents, instalações) é feito com a sessão do dono humano, nunca com o token do bot. O Developer Portal usa exatamente estas rotas — use-as se quiser automatizar.

Nota
Se a aplicação não for sua, todas as rotas respondem 404 (não 403), para não revelar que ela existe.

Objeto Application

Application
{
  "id": "uuid",
  "name": "Meu Bot",
  "description": "",
  "iconUrl": null,
  "botUserId": "uuid | null",
  "clientId": "32 caracteres hex",
  "hasBot": true,
  "isPublic": true,
  "intents": ["messages.read", "interactions.receive"],
  "interactionsEndpointUrl": null,
  "hasInteractionSigningSecret": false,
  "redirectUris": ["https://seusite.com/callback"],
  "hasClientSecret": false,
  "suspended": false,
  "suspendedReason": null,
  "createdAt": "…", "updatedAt": "…"
}

Aplicações

GET/api/applications
Auth: Sessão do donoLista as suas aplicações: { applications: [...] }.
POST/api/applications
Auth: Sessão do donoCria uma aplicação (ainda sem bot). Responde 201. Limite: 10 por hora.

Corpo da requisição

CampoTipoDescrição
name*string1 a 32 caracteres.
descriptionstringTexto livre.
iconUrlstringImagem em data URL (data:image/…), até 2 MB — maior responde 413.
GET/api/applications/:id
Auth: Sessão do dono
PUT/api/applications/:id
Auth: Sessão do donoMesmos campos do POST, todos opcionais. iconUrl: null remove o ícone.
DELETE/api/applications/:id
Auth: Sessão do donoExclui tudo em cascata (bot, tokens, instalações). Corpo { "confirmName": "Meu Bot" } precisa ser igual ao nome atual.

Bot

POST/api/applications/:id/bot
Auth: Sessão do donoCria a conta do bot. 409 se já existir. Limite: 10 por hora.
201
{
  "application": { … },
  "botUsername": "meubot_3f9a1c2b",
  "token": "nexbot_…"   // única vez em que aparece
}
POST/api/applications/:id/bot/token/rotate
Auth: Sessão do donoRevoga todos os tokens e devolve { "token": "nexbot_…" }. 20 por hora. Veja Autenticação.

Intents

PUT/api/applications/:id/intents
Auth: Sessão do dono
Corpo
{ "intents": ["messages.read", "members.read", "interactions.receive", "voice.connect"] }

Valores válidos: messages.read, messages.write, members.read, interactions.receive e voice.connect. O efeito de cada um está em Gateway.

Interações

PUT/api/applications/:id/interactions-config
Auth: Sessão do dono{ "interactionsEndpointUrl": null } = modo Gateway (padrão). Uma URL HTTPS = modo webhook. Veja Interações.
POST/api/applications/:id/interactions/signing-secret/rotate
Auth: Sessão do donoGera o segredo de assinatura do webhook: { "signingSecret": "…" }. O anterior continua válido por 1 hora. 20 por hora.
POST/api/applications/:id/interactions-config/test
Auth: Sessão do donoEnvia um { "type": "PING" } assinado para a sua URL e devolve { ok, status?, error? }. 10 por minuto.
GET/api/applications/:id/commands
Auth: Sessão do donoLista (somente leitura) os comandos registrados pelo bot.

Instalação e visibilidade

PUT/api/applications/:id/oauth/redirect-uris
Auth: Sessão do dono{ "redirectUris": [...] } — de 1 a 10 URLs, sem repetição. https sempre; http só para localhost fora de produção.
PUT/api/applications/:id/visibility
Auth: Sessão do dono{ "isPublic": false } faz o link de instalação funcionar só para você.
GET/api/applications/:id/installs
Auth: Sessão do dono{ installs: [{ serverId, serverName, serverIconUrl, grantedPermissions, installedAt }] }
DELETE/api/applications/:id/installs/:serverId
Auth: Sessão do donoRemove o bot de um servidor.
POST/api/applications/:id/oauth/client-secret/rotate
Auth: Sessão do donoGera um clientSecret. Reservado: nenhum fluxo do NEX usa esse segredo hoje.