Kruiger Labs
Client Portal Get Started
DocumentationIAA BOT
Sign inGet support
IAA BOT

IAA BOT API Contract

Implement health, authorization, server intelligence, staff, permission, blacklist, case, audit, and workflow routes.

View IAA BOT Product

Core routes#

RoutePurpose
GET /healthBackend health and compatibility check.
POST /authorize/sessionsCreate an authorization session and return the user URL.
GET /users/{discord_user_id}/authorizationRead authorization status.
GET /users/{discord_user_id}/serversReturn approved server information permitted by the authorization.
GET /users/{discord_user_id}/matchesReturn compatible intelligence matches.
POST /users/{discord_user_id}/refreshRefresh authorized information.
GET /staff/{discord_user_id}/accessReturn staff access decision.
GET /staff/{discord_user_id}/profileReturn authorized staff profile.
GET /staffList staff available to the caller.
GET /staffrolesList staff-role configuration.
GET /permissions/catalogList permission definitions.
GET /permissions/rolesList role permission mappings.

Additional resources#

The backend also needs compatible permission role/user modification routes, blacklist create/read/update/delete routes, case routes, and audit routes. Implement authorization checks for every write operation and return only fields permitted to the caller. The bot does not define or require an undocumented database schema.

Workflow routes#

RouteWorkflow
POST /workflows/blacklist-serverServer blacklist request
POST /workflows/blacklist-userUser blacklist request
POST /workflows/investigationStaff or other investigation
POST /workflows/recruitmentRecruitment review
POST /workflows/server-mergeServer merge review
POST /workflows/alt-requestAlternate-account review
POST /workflows/punishmentPunishment request
POST /workflows/poachPoach or no-poach workflow
POST /workflows/{type}/{website_id}/decisionApprove, deny, or otherwise decide a website record
Creation response
{ "success": true, "id": "database-id", "reference": "IAA-REQ-000001", "status": "pending" }
Decision response
{ "success": true }

Back to top