IAA BOT
IAA BOT API Contract
Implement health, authorization, server intelligence, staff, permission, blacklist, case, audit, and workflow routes.
Core routes#
| Route | Purpose |
|---|---|
| GET /health | Backend health and compatibility check. |
| POST /authorize/sessions | Create an authorization session and return the user URL. |
| GET /users/{discord_user_id}/authorization | Read authorization status. |
| GET /users/{discord_user_id}/servers | Return approved server information permitted by the authorization. |
| GET /users/{discord_user_id}/matches | Return compatible intelligence matches. |
| POST /users/{discord_user_id}/refresh | Refresh authorized information. |
| GET /staff/{discord_user_id}/access | Return staff access decision. |
| GET /staff/{discord_user_id}/profile | Return authorized staff profile. |
| GET /staff | List staff available to the caller. |
| GET /staffroles | List staff-role configuration. |
| GET /permissions/catalog | List permission definitions. |
| GET /permissions/roles | List 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#
| Route | Workflow |
|---|---|
| POST /workflows/blacklist-server | Server blacklist request |
| POST /workflows/blacklist-user | User blacklist request |
| POST /workflows/investigation | Staff or other investigation |
| POST /workflows/recruitment | Recruitment review |
| POST /workflows/server-merge | Server merge review |
| POST /workflows/alt-request | Alternate-account review |
| POST /workflows/punishment | Punishment request |
| POST /workflows/poach | Poach or no-poach workflow |
| POST /workflows/{type}/{website_id}/decision | Approve, deny, or otherwise decide a website record |
Creation response
{ "success": true, "id": "database-id", "reference": "IAA-REQ-000001", "status": "pending" }Decision response
{ "success": true }