The Security API provides endpoints for security management, access control, and threat monitoring.
This API is on the development roadmap. The endpoints documented below represent the planned interface design.
http://localhost:9000/api/v1/security
Uses the standard botserver authentication mechanism with elevated security permissions required.
Method Endpoint Description
POST /api/v1/security/auth/loginAuthenticate user
POST /api/v1/security/auth/logoutEnd session
POST /api/v1/security/auth/refreshRefresh access token
POST /api/v1/security/auth/mfa/setupSetup MFA
POST /api/v1/security/auth/mfa/verifyVerify MFA code
Method Endpoint Description
POST /api/v1/security/keys/generateGenerate new API key
GET /api/v1/security/keysList API keys
GET /api/v1/security/keys/{key_id}Get key details
PUT /api/v1/security/keys/{key_id}Update key permissions
DELETE /api/v1/security/keys/{key_id}Revoke API key
Method Endpoint Description
GET /api/v1/security/rolesList all roles
POST /api/v1/security/rolesCreate a role
GET /api/v1/security/roles/{role_id}Get role details
PUT /api/v1/security/roles/{role_id}Update role
DELETE /api/v1/security/roles/{role_id}Delete role
GET /api/v1/security/permissionsList all permissions
PUT /api/v1/security/permissionsUpdate permissions
Method Endpoint Description
GET /api/v1/security/auditList audit log entries
GET /api/v1/security/audit/{id}Get specific audit entry
POST /api/v1/security/audit/exportExport audit logs
GET /api/v1/security/audit/summaryGet audit summary
Method Endpoint Description
GET /api/v1/security/sessionsList active sessions
GET /api/v1/security/sessions/{session_id}Get session details
DELETE /api/v1/security/sessions/{session_id}Terminate session
DELETE /api/v1/security/sessions/user/{user_id}Terminate all user sessions
Method Endpoint Description
GET /api/v1/security/threatsList detected threats
GET /api/v1/security/vulnerabilitiesList vulnerabilities
POST /api/v1/security/scanInitiate security scan
GET /api/v1/security/scan/{scan_id}Get scan results
credentials = NEW OBJECT
credentials.email = "admin@example.com"
credentials.password = "secure_password"
result = POST "/api/v1/security/auth/login", credentials
token = result.access_token
TALK "Logged in successfully"
key_config = NEW OBJECT
key_config.name = "Integration Key"
key_config.scopes = ["read:bots", "write:messages"]
key_config.expires_in_days = 90
result = POST "/api/v1/security/keys/generate", key_config
TALK "API Key: " + result.key
TALK "Expires: " + result.expires_at
role = NEW OBJECT
role.name = "bot_manager"
role.description = "Can manage bots and configurations"
role.permissions = ["bot:read", "bot:write", "bot:delete", "config:read", "config:write"]
result = POST "/api/v1/security/roles", role
TALK "Role created: " + result.id
sessions = GET "/api/v1/security/sessions"
FOR EACH session IN sessions
TALK session.user_email + " - " + session.ip_address + " (" + session.last_activity + ")"
NEXT
audit = GET "/api/v1/security/audit?action=login&days=7"
FOR EACH entry IN audit
TALK entry.timestamp + " | " + entry.user + " | " + entry.action + " | " + entry.result
NEXT
DELETE "/api/v1/security/sessions/session-123"
TALK "Session terminated"
Code Description
200 Success
201 Created
204 No Content (successful deletion)
400 Bad Request
401 Unauthorized (invalid credentials)
403 Forbidden (insufficient permissions)
404 Not Found
429 Too Many Requests (rate limited)
500 Internal Server Error
Event Type Description
login_successSuccessful authentication
login_failedFailed authentication attempt
logoutUser logged out
password_changedPassword was changed
mfa_enabledMFA was enabled
api_key_createdNew API key generated
api_key_revokedAPI key was revoked
role_changedUser role was modified
permission_deniedAccess denied to resource
suspicious_activityPotential security threat detected
Endpoint Limit
/auth/login5 requests per minute
/auth/mfa/verify3 requests per minute
/keys/generate10 requests per hour
Other endpoints 100 requests per minute
Endpoint Category Required Role
Authentication Public (login) / Authenticated (others)
API Keys admin or key_manager
Access Control admin
Audit Logs admin or auditor
Session Management admin or session_manager
Security Monitoring admin or security_analyst
Use strong passwords - Minimum 12 characters with mixed case, numbers, and symbols
Enable MFA - Two-factor authentication for all admin accounts
Rotate API keys - Set expiration dates and rotate keys regularly
Monitor audit logs - Review security events daily
Principle of least privilege - Grant minimum necessary permissions
Terminate inactive sessions - Auto-expire sessions after inactivity