Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.7331.org/llms.txt

Use this file to discover all available pages before exploring further.

Base URLs

REST API:
https://portal-api.7331.org
WebSocket (Socket.IO):
https://portal-ws.7331.org

Endpoint Groups

Portal — chats, chat, match

The core product surface. Session cookie required.
GroupDescription
ChatsCreate, start, stop, destroy chats; config, invites, clipboard, screen
ChatSend, delete, clear messages; history; register encryption keys
ModerationKick, mute, ban, timeout, warn — scoped per-chat
MatchEnqueue, dequeue, leave — 1-on-1 matchmaking into direct chats
NotificationsList, mark read, unread count (user); broadcast/targeted create (admin)

Public

GroupDescriptionAuth
MonitoringHealth checks and deployment statusNone
StatisticsUser, bot, chat, and app statisticsOptional API Key
AuthenticationOTP request, lookup, verify, logoutNone
UsersProfiles, preferences, sessions, searchSession cookie

Bot integrations

For community operators running bots against Portal.
GroupDescriptionAuth
Bots — PublicBrowse and search registered botsSession cookie / API Key
Bots — ManagementBot self-management, user lookups, login-code deliveryBot API Key

Admin

GroupDescriptionAuth
Note: All admin operations (moderation, permissions, bots, subscriptions, notifications, announcements) are handled via the admin_tools.py CLI. There are no admin REST endpoints.

Rate Limiting

All endpoints are rate limited per client IP (or per API key hash for key-authenticated requests). Limits are applied per minute:
TierLimitApplies to
LOGIN20/minAuthentication endpoints (login, verify, logout)
AUTH120/minAuthenticated portal, user, and notification endpoints
ADMIN60/minAdmin endpoints (notifications, announcements)
PUBLIC120/minPublic endpoints (statistics, user profiles, bot browsing)
BOT600/minBot API-key-authenticated endpoints (self-management, user lookups, batch reporting)
HEALTH1200/minHealth check endpoints
Every response includes rate limit headers:
HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp when the window resets
When the limit is exceeded, the API returns 429 Too Many Requests with a Retry-After header indicating how many seconds to wait.

Response Headers

All API responses include the following headers:

Identification

HeaderDescription
X-Source-HashGit commit hash of the running deployment

Security

HeaderValue
X-Content-Type-Optionsnosniff
X-Frame-OptionsDENY
X-XSS-Protection0 (disabled in favor of CSP)
Content-Security-Policydefault-src 'none'; frame-ancestors 'none'
Strict-Transport-Securitymax-age=31536000; includeSubDomains
Referrer-Policystrict-origin-when-cross-origin
Permissions-PolicyDisables geolocation, microphone, camera, payment, USB, magnetometer, accelerometer
X-Permitted-Cross-Domain-Policiesnone