{ "openapi": "3.0.3", "info": { "title": "Fluxer API", "version": "1.0.0", "description": "API for Fluxer, a free and open source instant messaging and VoIP chat app built for friends, groups, and communities.", "contact": {"name": "Fluxer Platform AB", "email": "support@fluxer.app"}, "license": {"name": "AGPL-3.0", "url": "https://www.gnu.org/licenses/agpl-3.0.html"} }, "servers": [{"url": "https://api.fluxer.app/v1", "description": "Production API"}], "paths": { "/admin/api-keys": { "post": { "operationId": "create_admin_api_key", "summary": "Create admin API key", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateAdminApiKeyResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Generates a new API key for administrative operations. The key is returned only once at creation time. Includes expiration settings and access control lists (ACLs) to limit the key's permissions.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateAdminApiKeyRequest"}}} } }, "get": { "operationId": "list_admin_api_keys", "summary": "List admin API keys", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": {"type": "array", "items": {"$ref": "#/components/schemas/ListAdminApiKeyResponse"}} } } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve all API keys created by the authenticated admin. Returns metadata including creation time, last used time, and assigned permissions. The actual key material is not returned.", "security": [{"adminApiKey": []}] } }, "/admin/api-keys/{keyId}": { "delete": { "operationId": "delete_admin_api_key", "summary": "Delete admin API key", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteApiKeyResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Revokes an API key, immediately invalidating it for all future operations. This action cannot be undone.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "keyId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The keyId"} ] } }, "/admin/applications/list-by-guild": { "post": { "operationId": "admin_list_guild_applications", "summary": "List applications installed in a guild", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildApplicationsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists OAuth2 applications whose bot users are members of a guild. Requires APPLICATION_LOOKUP or APPLICATION_LIST_BY_OWNER permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildApplicationsRequest"}}} } } }, "/admin/applications/list-by-owner": { "post": { "operationId": "admin_list_user_applications", "summary": "List applications owned by a user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserApplicationsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists all applications (OAuth2 clients and bots) owned by a specific user. Requires APPLICATION_LIST_BY_OWNER permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserApplicationsRequest"}}} } } }, "/admin/applications/lookup": { "post": { "operationId": "lookup_application", "summary": "Look up application", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupApplicationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieves complete application details including ownership, bot user, OAuth2 redirect URIs, and credential status. Requires APPLICATION_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupApplicationRequest"}}} } } }, "/admin/applications/transfer-ownership": { "post": { "operationId": "transfer_application_ownership", "summary": "Transfer application ownership", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApplicationUpdateResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Transfers application ownership to another user. Used when owner is inactive or for administrative recovery. Logged to audit log. Requires APPLICATION_TRANSFER_OWNERSHIP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": { "application/json": {"schema": {"$ref": "#/components/schemas/TransferApplicationOwnershipRequest"}} } } } }, "/admin/archives/guild": { "post": { "operationId": "trigger_guild_archive", "summary": "Trigger guild archive", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminArchiveResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Initiates a data export for a guild (server). Creates an archive containing all guild data including channels, messages, members, roles, and settings.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TriggerGuildArchiveRequest"}}} } } }, "/admin/archives/list": { "post": { "operationId": "list_archives", "summary": "List archives", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListArchivesResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query and filter created archives by type (user or guild), subject ID, requestor, and expiration status. Admins with limited ACLs see only archives matching their permissions.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListArchivesRequest"}}} } } }, "/admin/archives/user": { "post": { "operationId": "trigger_user_archive", "summary": "Trigger user archive", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminArchiveResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Initiates a data export for a user. Creates an archive containing all the user's data (messages, server memberships, preferences, etc.) for export or compliance purposes.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TriggerUserArchiveRequest"}}} } } }, "/admin/archives/{subjectType}/{subjectId}/{archiveId}": { "get": { "operationId": "get_archive_details", "summary": "Get archive details", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetArchiveResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve metadata for a specific archive including its status, creation time, expiration, and file location. Does not return the archive contents themselves.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "subjectType", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The subjectType" }, { "name": "subjectId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The subjectId" }, { "name": "archiveId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The archiveId" } ] } }, "/admin/archives/{subjectType}/{subjectId}/{archiveId}/download": { "get": { "operationId": "get_archive_download_url", "summary": "Get archive download URL", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DownloadUrlResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Generate a time-limited download link to the archive file. The URL provides direct access to download the compressed archive contents.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "subjectType", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The subjectType" }, { "name": "subjectId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The subjectId" }, { "name": "archiveId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The archiveId" } ] } }, "/admin/assets/purge": { "post": { "operationId": "purge_guild_assets", "summary": "Purge guild assets", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PurgeGuildAssetsResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Delete and clean up all assets belonging to a guild, including icons, banners, and other media. This is a destructive operation used for cleanup during guild management or compliance actions.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PurgeGuildAssetsRequest"}}} } } }, "/admin/audit-logs": { "post": { "operationId": "list_audit_logs", "summary": "List audit logs", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AuditLogsListResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve a paginated list of audit logs with optional filtering by date range, action type, or actor. Used for tracking administrative operations and compliance auditing.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListAuditLogsRequest"}}} } } }, "/admin/audit-logs/search": { "post": { "operationId": "search_audit_logs", "summary": "Search audit logs", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AuditLogsListResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Perform a full-text search across audit logs for specific events or changes. Allows targeted queries for compliance investigations or incident response.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchAuditLogsRequest"}}} } } }, "/admin/bans/avatar-hash/add": { "post": { "operationId": "add_avatar_hash_ban", "summary": "Add avatar hash ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban one or more 8-char MD5-prefix avatar hashes. Avatars matching the banned hash will be rejected on upload.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanAvatarHashRequest"}}} } } }, "/admin/bans/avatar-hash/check": { "post": { "operationId": "check_avatar_hash_ban_status", "summary": "Check avatar hash ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether any of the provided avatar hashes are banned.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CheckAvatarHashRequest"}}} } } }, "/admin/bans/avatar-hash/remove": { "post": { "operationId": "remove_avatar_hash_ban", "summary": "Remove avatar hash ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied avatar-hash ban.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CheckAvatarHashRequest"}}} } } }, "/admin/bans/email/add": { "post": { "operationId": "add_email_ban", "summary": "Add email ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban one or more email addresses from registering or creating accounts. Users attempting to use banned emails will be blocked.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanEmailRequest"}}} } } }, "/admin/bans/email/check": { "post": { "operationId": "check_email_ban_status", "summary": "Check email ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether one or more email addresses are currently banned from registration. Returns the ban status and metadata.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanEmailRequest"}}} } } }, "/admin/bans/email/remove": { "post": { "operationId": "remove_email_ban", "summary": "Remove email ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied email ban, allowing the address to be used for new registrations. Used for appeals or error correction.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanEmailRequest"}}} } } }, "/admin/bans/file-sha/add": { "post": { "operationId": "add_file_sha_ban", "summary": "Add file SHA ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban one or more files by SHA hash. Uploads matching the banned hash will be rejected.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanFileShaRequest"}}} } } }, "/admin/bans/file-sha/bulk-add": { "post": { "operationId": "bulk_ban_file_shas", "summary": "Bulk-ban file SHAs as a background job", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkJobResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Enqueue a background job that bans many file SHAs at once. Returns a job_id immediately; observe progress at /admin/jobs/:job_id.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkBanFileShasRequest"}}} } } }, "/admin/bans/file-sha/check": { "post": { "operationId": "check_file_sha_ban_status", "summary": "Check file SHA ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether one or more file SHA hashes are currently banned.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CheckFileShaRequest"}}} } } }, "/admin/bans/file-sha/remove": { "post": { "operationId": "remove_file_sha_ban", "summary": "Remove file SHA ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied file SHA ban, allowing uploads of that file again.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnbanFileShaRequest"}}} } } }, "/admin/bans/ip/add": { "post": { "operationId": "add_ip_ban", "summary": "Add IP ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban one or more IP addresses from accessing the platform. Users connecting from banned IPs will be denied service. Can be applied retroactively.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanIpRequest"}}} } } }, "/admin/bans/ip/check": { "post": { "operationId": "check_ip_ban_status", "summary": "Check IP ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether one or more IP addresses are currently banned. Returns the ban status and any associated metadata like reason or expiration.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanIpRequest"}}} } } }, "/admin/bans/ip/remove": { "post": { "operationId": "remove_ip_ban", "summary": "Remove IP ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied IP ban, allowing traffic from those addresses again. Used for appeals or when bans were applied in error.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanIpRequest"}}} } } }, "/admin/bans/phrase/add": { "post": { "operationId": "add_phrase_ban", "summary": "Add phrase ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban a phrase. Matching is case-insensitive and also normalizes common bypass tricks such as inserted whitespace, punctuation, invisible characters, and compatibility glyphs.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanPhraseRequest"}}} } } }, "/admin/bans/phrase/check": { "post": { "operationId": "check_phrase_ban_status", "summary": "Check phrase ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether a phrase is currently banned.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanPhraseRequest"}}} } } }, "/admin/bans/phrase/remove": { "post": { "operationId": "remove_phrase_ban", "summary": "Remove phrase ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied phrase ban, allowing messages containing that phrase again.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanPhraseRequest"}}} } } }, "/admin/bans/profile-substring/add": { "post": { "operationId": "add_profile_substring_ban", "summary": "Add profile-substring ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban a substring within a specific profile field (username, global_name, nickname, bio, or pronouns). Matching reuses the phrase blocklist normalization (whitespace, punctuation, zero-width, lookalikes).", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanProfileSubstringRequest"}}} } } }, "/admin/bans/profile-substring/check": { "post": { "operationId": "check_profile_substring_ban_status", "summary": "Check profile-substring ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether any of the provided substrings are banned for the given scope.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanProfileSubstringRequest"}}} } } }, "/admin/bans/profile-substring/remove": { "post": { "operationId": "remove_profile_substring_ban", "summary": "Remove profile-substring ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied profile-substring ban.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanProfileSubstringRequest"}}} } } }, "/admin/bans/url-domain/add": { "post": { "operationId": "add_url_domain_ban", "summary": "Add URL domain ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban an entire URL domain from being linked on the platform. All URLs under the banned domain will be blocked.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanUrlDomainRequest"}}} } } }, "/admin/bans/url-domain/check": { "post": { "operationId": "check_url_domain_ban_status", "summary": "Check URL domain ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether a URL domain is currently banned from being linked.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanUrlDomainRequest"}}} } } }, "/admin/bans/url-domain/remove": { "post": { "operationId": "remove_url_domain_ban", "summary": "Remove URL domain ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied URL domain ban, allowing links to that domain again.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnbanUrlDomainRequest"}}} } } }, "/admin/bans/url/add": { "post": { "operationId": "add_url_ban", "summary": "Add URL ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban one or more URLs from being posted on the platform. Messages containing banned URLs will be blocked.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanUrlRequest"}}} } } }, "/admin/bans/url/check": { "post": { "operationId": "check_url_ban_status", "summary": "Check URL ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether one or more URLs are currently banned from being posted.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CheckUrlBlocklistRequest"}}} } } }, "/admin/bans/url/remove": { "post": { "operationId": "remove_url_ban", "summary": "Remove URL ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied URL ban, allowing the URL to be posted again.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnbanUrlRequest"}}} } } }, "/admin/billing/guilds/{guildId}/overview": { "get": { "operationId": "admin_billing_guild_overview", "summary": "Get billing overview for a guild", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminBillingOverviewResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve guild billing state. The current billing mirror is user-scoped, so guilds without persisted billing records return an empty overview.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "guildId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The guildId" } ] } }, "/admin/billing/users/{userId}/cancel-subscription": { "post": { "operationId": "admin_billing_cancel_subscription", "summary": "Cancel a user subscription", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Set a user Stripe subscription to cancel at period end.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/billing/users/{userId}/cancel-subscription-now": { "post": { "operationId": "admin_billing_cancel_subscription_now", "summary": "Cancel a user subscription immediately", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Cancel a user Stripe subscription immediately without issuing a refund.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ], "requestBody": { "required": true, "content": { "application/json": {"schema": {"$ref": "#/components/schemas/AdminBillingCancelImmediatelyRequest"}} } } } }, "/admin/billing/users/{userId}/end-premium-grace-period": { "post": { "operationId": "admin_billing_end_premium_grace_period", "summary": "End a user's premium grace period", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "End the post-cancel premium grace period for a user immediately, downgrading them and clearing premium_since. Idempotent: safe to call when not in grace. Use when investigating fraud or honoring a user request to opt out of the recovery window.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/billing/users/{userId}/invoices": { "get": { "operationId": "admin_billing_list_invoices", "summary": "List invoices for a user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminInvoiceListResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve recent Stripe invoices for a user.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/billing/users/{userId}/overview": { "get": { "operationId": "admin_billing_overview", "summary": "Get billing overview for a user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminBillingOverviewResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve subscription status, payment history, and Stripe payment methods for a user.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/billing/users/{userId}/payment-methods": { "get": { "operationId": "admin_billing_list_payment_methods", "summary": "List payment methods for a user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminPaymentMethodListResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve the Stripe payment methods associated with a user.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/billing/users/{userId}/payments": { "get": { "operationId": "admin_billing_list_payments", "summary": "List payments for a user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminPaymentListResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve the payment history stored for a user.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/billing/users/{userId}/reactivate-subscription": { "post": { "operationId": "admin_billing_reactivate_subscription", "summary": "Reactivate a user subscription", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Remove a period-end cancellation from a user Stripe subscription.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/billing/users/{userId}/refund": { "post": { "operationId": "admin_billing_refund", "summary": "Issue a refund for a user payment", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Issue a full or partial refund for a user payment through Stripe.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminBillingRefundRequest"}}} } } }, "/admin/billing/users/{userId}/refund-policy-cancel-now": { "post": { "operationId": "admin_billing_refund_policy_cancel_now", "summary": "Apply refund policy and cancel subscription immediately", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/AdminBillingRefundLatestInvoiceCancelResponse"} } } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Cancels a user subscription immediately and applies the support refund policy against the latest paid Stripe invoice.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ], "requestBody": { "required": true, "content": { "application/json": { "schema": {"$ref": "#/components/schemas/AdminBillingRefundLatestInvoiceCancelRequest"} } } } } }, "/admin/billing/users/{userId}/subscription": { "get": { "operationId": "admin_billing_get_subscription", "summary": "Get subscription for a user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminSubscriptionResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve the current Stripe subscription details for a user.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/bulk/add-guild-members": { "post": { "operationId": "bulk_add_guild_members", "summary": "Bulk add guild members", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkJobResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Enqueue a background job that adds multiple users to a guild. Returns a job_id immediately; observe progress at /admin/jobs/:job_id.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkAddGuildMembersRequest"}}} } } }, "/admin/bulk/schedule-user-deletion": { "post": { "operationId": "schedule_bulk_user_deletion", "summary": "Schedule bulk user deletion", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkJobResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Enqueue a background job that schedules account deletions for multiple users. Returns a job_id immediately; observe progress at /admin/jobs/:job_id. Note: the worker version skips Stripe refunds, session termination, and identifier banning — apply those separately for high-risk accounts.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkScheduleUserDeletionRequest"}}} } } }, "/admin/bulk/update-guild-features": { "post": { "operationId": "bulk_update_guild_features", "summary": "Bulk update guild features", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkJobResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Enqueue a background job that modifies guild features across multiple servers. Returns a job_id immediately; observe progress at /admin/jobs/:job_id.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkUpdateGuildFeaturesRequest"}}} } } }, "/admin/bulk/update-suspicious-activity-flags": { "post": { "operationId": "bulk_update_suspicious_activity_flags", "summary": "Bulk update suspicious activity flags", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkJobResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Enqueue a background job that modifies suspicious activity flags for multiple users. Returns a job_id immediately; observe progress at /admin/jobs/:job_id.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": { "application/json": {"schema": {"$ref": "#/components/schemas/BulkUpdateSuspiciousActivityFlagsRequest"}} } } } }, "/admin/bulk/update-user-flags": { "post": { "operationId": "bulk_update_user_flags", "summary": "Bulk update user flags", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkJobResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Enqueue a background job that modifies user flags (e.g., verified, bot, system) for multiple users. Returns a job_id immediately; observe progress at /admin/jobs/:job_id.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkUpdateUserFlagsRequest"}}} } } }, "/admin/codes/gift": { "post": { "operationId": "generate_gift_codes", "summary": "Generate gift codes", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CodesResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Create one-use Plutonium gift codes with an explicit positive duration. Lifetime gifts are not supported.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GenerateGiftCodesRequest"}}} } } }, "/admin/discovery/applications": { "get": { "operationId": "list_pending_discovery_applications", "summary": "List all pending discovery applications", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "array", "items": {"$ref": "#/components/schemas/DiscoveryAdminPendingApplicationResponse"} } } } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Returns every pending discovery application, enriched with guild metadata. No pagination. Requires DISCOVERY_REVIEW permission.", "security": [{"adminApiKey": []}] } }, "/admin/discovery/applications/{guild_id}/approve": { "post": { "operationId": "approve_discovery_application", "summary": "Approve discovery application", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DiscoveryApplicationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Approve a pending discovery application. Requires DISCOVERY_REVIEW permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "guild_id", "in": "path", "required": true, "schema": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "The ID of the guild" } ], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DiscoveryAdminReviewRequest"}}} } } }, "/admin/discovery/applications/{guild_id}/reject": { "post": { "operationId": "reject_discovery_application", "summary": "Reject discovery application", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DiscoveryApplicationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Reject a pending discovery application. Requires DISCOVERY_REVIEW permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "guild_id", "in": "path", "required": true, "schema": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "The ID of the guild" } ], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DiscoveryAdminRejectRequest"}}} } } }, "/admin/discovery/guilds/{guild_id}/remove": { "post": { "operationId": "remove_from_discovery", "summary": "Remove guild from discovery", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DiscoveryApplicationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Remove an approved guild from discovery. Requires DISCOVERY_REMOVE permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "guild_id", "in": "path", "required": true, "schema": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "The ID of the guild" } ], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DiscoveryAdminRemoveRequest"}}} } } }, "/admin/discovery/listed": { "get": { "operationId": "list_discovery_listed_guilds", "summary": "List all guilds currently listed in discovery", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": {"type": "array", "items": {"$ref": "#/components/schemas/DiscoveryAdminListedGuildResponse"}} } } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Returns every approved/listed discovery guild, enriched with guild metadata. No pagination. Requires DISCOVERY_REVIEW permission.", "security": [{"adminApiKey": []}] } }, "/admin/gateway/memory-stats": { "post": { "operationId": "get_guild_memory_statistics", "summary": "Get guild memory statistics", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GuildMemoryStatsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Returns heap and resident memory usage per guild. Requires GATEWAY_MEMORY_STATS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetProcessMemoryStatsRequest"}}} } } }, "/admin/gateway/reload-all": { "post": { "operationId": "reload_all_specified_guilds", "summary": "Reload specified guilds", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReloadAllGuildsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Reconnects to the database and re-syncs guild state. Used for recovery after data inconsistencies. Requires GATEWAY_RELOAD_ALL permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReloadGuildsRequest"}}} } } }, "/admin/gateway/stats": { "get": { "operationId": "get_gateway_node_statistics", "summary": "Get gateway node statistics", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NodeStatsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Returns uptime, process memory, and guild count. Used to monitor gateway health and performance. Requires GATEWAY_MEMORY_STATS permission.", "security": [{"adminApiKey": []}] } }, "/admin/gateway/voice-state-counts": { "get": { "operationId": "get_gateway_voice_state_counts", "summary": "Get gateway voice state counts", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": {"schema": {"$ref": "#/components/schemas/GatewayVoiceStateCountsResponse"}} } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Returns active voice state counts grouped by voice region and voice server. Requires GATEWAY_MEMORY_STATS permission.", "security": [{"adminApiKey": []}] } }, "/admin/guilds/audit-logs": { "post": { "operationId": "list_guild_audit_logs_admin", "summary": "List guild audit logs", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildAuditLogsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Returns in-app guild audit log entries for a guild without requiring VIEW_AUDIT_LOG membership permission. Supports pagination via before/after log IDs and filtering by user_id or action_type. Requires GUILD_AUDIT_LOG_VIEW permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildAuditLogsRequest"}}} } } }, "/admin/guilds/ban-member": { "post": { "operationId": "admin_ban_guild_member", "summary": "Ban guild member", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Permanently bans a user from a guild. Prevents user from joining. Logged to audit log. Requires GUILD_BAN_MEMBER permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanGuildMemberRequest"}}} } } }, "/admin/guilds/clear-fields": { "post": { "operationId": "clear_guild_fields", "summary": "Clear guild fields", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Clears specified optional guild fields such as icon, banner, or description. Logged to audit log. Requires GUILD_UPDATE_SETTINGS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ClearGuildFieldsRequest"}}} } } }, "/admin/guilds/delete": { "post": { "operationId": "admin_delete_guild", "summary": "Delete guild", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SuccessResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Permanently deletes a guild. Deletes all channels, messages, and settings. Irreversible operation. Logged to audit log. Requires GUILD_DELETE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteGuildRequest"}}} } } }, "/admin/guilds/force-add-user": { "post": { "operationId": "force_add_user_to_guild", "summary": "Force add user to guild", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SuccessResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Forcefully adds a user to a guild. Bypasses normal invite flow for administrative account recovery. Logged to audit log. Requires GUILD_FORCE_ADD_MEMBER permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ForceAddUserToGuildRequest"}}} } } }, "/admin/guilds/kick-member": { "post": { "operationId": "kick_guild_member", "summary": "Kick guild member", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Temporarily removes a user from a guild. User can rejoin. Logged to audit log. Requires GUILD_KICK_MEMBER permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/KickGuildMemberRequest"}}} } } }, "/admin/guilds/list-members": { "post": { "operationId": "admin_list_guild_members", "summary": "List guild members", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildMembersResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists all guild members with pagination. Returns member IDs, join dates, and roles. Requires GUILD_LIST_MEMBERS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildMembersRequest"}}} } } }, "/admin/guilds/lookup": { "post": { "operationId": "lookup_guild", "summary": "Look up guild", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupGuildResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieves complete guild details including metadata, settings, and statistics. Look up by guild ID or vanity slug. Requires GUILD_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupGuildRequest"}}} } } }, "/admin/guilds/reload": { "post": { "operationId": "reload_guild", "summary": "Reload guild", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SuccessResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Reloads a single guild state from database. Used to recover from corruption or sync issues. Logged to audit log. Requires GUILD_RELOAD permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReloadGuildRequest"}}} } } }, "/admin/guilds/search": { "post": { "operationId": "search_guilds", "summary": "Search guilds", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchGuildsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Searches guilds by name, ID, and other criteria. Supports full-text search and filtering. Requires GUILD_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchGuildsRequest"}}} } } }, "/admin/guilds/shutdown": { "post": { "operationId": "shutdown_guild", "summary": "Shutdown guild", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SuccessResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Shuts down and unloads a guild from the gateway. Guild data remains in database. Used for emergency resource cleanup. Logged to audit log. Requires GUILD_SHUTDOWN permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShutdownGuildRequest"}}} } } }, "/admin/guilds/transfer-ownership": { "post": { "operationId": "admin_transfer_guild_ownership", "summary": "Transfer guild ownership", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GuildUpdateResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Transfers guild ownership to another user. Used when owner is inactive or for administrative recovery. Logged to audit log. Requires GUILD_TRANSFER_OWNERSHIP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TransferGuildOwnershipRequest"}}} } } }, "/admin/guilds/update-features": { "post": { "operationId": "update_guild_features", "summary": "Update guild features", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GuildUpdateResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Enables or disables guild feature flags. Modifies verification levels and community settings. Changes are logged to audit log. Requires GUILD_UPDATE_FEATURES permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateGuildFeaturesRequest"}}} } } }, "/admin/guilds/update-name": { "post": { "operationId": "update_guild_name", "summary": "Update guild name", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GuildUpdateResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Changes a guild name. Used for removing inappropriate names or correcting display issues. Logged to audit log. Requires GUILD_UPDATE_NAME permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateGuildNameRequest"}}} } } }, "/admin/guilds/update-settings": { "post": { "operationId": "update_guild_settings", "summary": "Update guild settings", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GuildUpdateResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Modifies guild configuration including description, region, language and other settings. Logged to audit log. Requires GUILD_UPDATE_SETTINGS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateGuildSettingsRequest"}}} } } }, "/admin/guilds/update-vanity": { "post": { "operationId": "update_guild_vanity", "summary": "Update guild vanity", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GuildUpdateResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Updates a guild vanity URL slug. Sets custom short URL and prevents duplicate slugs. Logged to audit log. Requires GUILD_UPDATE_VANITY permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateGuildVanityRequest"}}} } } }, "/admin/guilds/{guild_id}/emojis": { "get": { "operationId": "admin_list_guild_emojis", "summary": "List guild emojis", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildEmojisResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists all custom emojis in a guild. Returns ID, name, and creation date. Used for asset inventory and purge operations. Requires ASSET_PURGE permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "guild_id", "in": "path", "required": true, "schema": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "The ID of the guild" } ] } }, "/admin/guilds/{guild_id}/stickers": { "get": { "operationId": "admin_list_guild_stickers", "summary": "List guild stickers", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildStickersResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists all stickers in a guild. Returns ID, name, and asset information. Used for asset inventory and purge operations. Requires ASSET_PURGE permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "guild_id", "in": "path", "required": true, "schema": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "The ID of the guild" } ] } }, "/admin/instance-config/branding-asset": { "post": { "operationId": "upload_instance_branding_asset", "summary": "Upload or clear an instance branding asset", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceConfigResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Uploads a branding image served by the media proxy and stores its URL, or clears it when no image is provided. Requires INSTANCE_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BrandingAssetUploadRequest"}}} } } }, "/admin/instance-config/get": { "post": { "operationId": "get_instance_config", "summary": "Get instance configuration", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceConfigResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieves instance-wide configuration including webhooks and SSO configuration. Requires INSTANCE_CONFIG_VIEW permission.", "security": [{"adminApiKey": []}] } }, "/admin/instance-config/integrations/smtp/test": { "post": { "operationId": "test_instance_smtp_config", "summary": "Validate SMTP configuration", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceEmailSmtpTestResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Validates that an SMTP configuration can authenticate and accept a connection. Requires INSTANCE_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceEmailSmtpTestRequest"}}} } } }, "/admin/instance-config/pending-registrations/approve": { "post": { "operationId": "approve_pending_registration", "summary": "Approve a pending registration", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceConfigResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Approves a registration waiting for manual review by removing its pending registration trait. Requires INSTANCE_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PendingRegistrationActionRequest"}}} } } }, "/admin/instance-config/pending-registrations/reject": { "post": { "operationId": "reject_pending_registration", "summary": "Reject a pending registration", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceConfigResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Rejects a registration waiting for manual review and prevents the account from logging in. Requires INSTANCE_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PendingRegistrationActionRequest"}}} } } }, "/admin/instance-config/registration-urls/create": { "post": { "operationId": "create_registration_url", "summary": "Create an admin-issued registration URL", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateRegistrationUrlResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Creates a one-time-display registration URL that can be sent manually by an administrator. Requires INSTANCE_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateRegistrationUrlRequest"}}} } } }, "/admin/instance-config/registration-urls/revoke": { "post": { "operationId": "revoke_registration_url", "summary": "Revoke an admin-issued registration URL", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceConfigResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Revokes an admin-issued registration URL so it can no longer be used. Requires INSTANCE_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RegistrationUrlActionRequest"}}} } } }, "/admin/instance-config/update": { "post": { "operationId": "update_instance_config", "summary": "Update instance configuration", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceConfigResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Updates instance configuration settings including webhook URLs and SSO parameters. Changes apply immediately. Requires INSTANCE_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceConfigUpdateRequest"}}} } } }, "/admin/jobs/active": { "post": { "operationId": "list_active_jobs", "summary": "List active (queued + running) jobs", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ActiveJobsResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Polling endpoint for the Jobs page. Returns only currently-active jobs (queued or running) so the UI can refresh progress without scanning historical data.", "security": [{"adminApiKey": []}] } }, "/admin/jobs/cancel": { "post": { "operationId": "cancel_job", "summary": "Request cancellation of a running job", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CancelJobResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Mark a job as cancel-requested. The handler must be cooperatively cancellable — it will see the flag at its next `helpers.shouldCancel()` check. Returns `{cancelled: false}` for already-terminal jobs.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CancelJobRequest"}}} } } }, "/admin/jobs/get": { "post": { "operationId": "get_job", "summary": "Get job detail", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetJobResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Fetch a single job ledger entry with full payload, result, and progress.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetJobRequest"}}} } } }, "/admin/jobs/list": { "post": { "operationId": "list_jobs", "summary": "List jobs", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListJobsResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Paginated, filterable list of background jobs from the human-facing ledger. Walks back through day-buckets and applies status / task-type / requester filters in-process.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListJobsRequest"}}} } } }, "/admin/limit-config/get": { "post": { "operationId": "get_limit_config", "summary": "Get limit configuration", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LimitConfigGetResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieves rate limit configuration including message limits, upload limits, and request throttles. Shows defaults, metadata, and any modifications from defaults. Requires INSTANCE_LIMIT_CONFIG_VIEW permission.", "security": [{"adminApiKey": []}] } }, "/admin/limit-config/update": { "post": { "operationId": "update_limit_config", "summary": "Update limit configuration", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LimitConfigGetResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Updates rate limit configuration including message throughput, upload sizes, and request throttles. Changes apply immediately to all new operations. Requires INSTANCE_LIMIT_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LimitConfigUpdateRequest"}}} } } }, "/admin/messages/browse": { "post": { "operationId": "browse_channel_messages", "summary": "Browse channel messages", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BrowseChannelResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Browses messages in a channel with cursor-based pagination. Returns messages in reverse chronological order. Requires MESSAGE_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BrowseChannelRequest"}}} } } }, "/admin/messages/delete": { "post": { "operationId": "admin_delete_message", "summary": "Delete single message", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteMessageResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Deletes a single message permanently. Used for removing inappropriate or harmful content. Logged to audit log. Requires MESSAGE_DELETE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteMessageRequest"}}} } } }, "/admin/messages/delete-all": { "post": { "operationId": "delete_all_user_messages", "summary": "Delete all user messages", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteAllUserMessagesResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Deletes all messages from a specific user across all channels. Permanent operation used for account suspension or policy violation. Requires MESSAGE_DELETE_ALL permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteAllUserMessagesRequest"}}} } } }, "/admin/messages/lookup": { "post": { "operationId": "lookup_message", "summary": "Look up message details", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupMessageResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieves complete message details including content, attachments, edits, and metadata. Look up by message ID and channel. Requires MESSAGE_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupMessageRequest"}}} } } }, "/admin/messages/lookup-by-attachment": { "post": { "operationId": "lookup_message_by_attachment", "summary": "Look up message by attachment", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupMessageResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Finds and retrieves message containing a specific attachment by ID. Used to locate messages with sensitive or illegal content. Requires MESSAGE_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupMessageByAttachmentRequest"}}} } } }, "/admin/messages/report-to-ncmec": { "post": { "operationId": "report_message_attachment_to_ncmec", "summary": "Report an image attachment to NCMEC", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": {"schema": {"$ref": "#/components/schemas/NcmecAttachmentSubmitResultResponse"}} } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Submits a specific image attachment to NCMEC, creates an audit log entry, silently disables the user, triggers one archive for the user, and schedules content deletion after the archive completes.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReportAttachmentToNcmecRequest"}}} } } }, "/admin/messages/search": { "post": { "operationId": "search_channel_messages", "summary": "Search channel messages", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchChannelMessagesResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Searches messages within a channel by content. Requires MESSAGE_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchChannelMessagesRequest"}}} } } }, "/admin/messages/shred": { "post": { "operationId": "queue_message_shred", "summary": "Queue message shred operation", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageShredResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Queues bulk message shredding with attachment deletion. Returns job ID to track progress asynchronously. Used for large-scale content removal. Requires MESSAGE_SHRED permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageShredRequest"}}} } } }, "/admin/messages/shred-status": { "post": { "operationId": "get_message_shred_status", "summary": "Get message shred status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageShredStatusResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Polls status of a queued message shred operation. Returns progress percentage and whether the job is complete. Requires MESSAGE_SHRED permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageShredStatusRequest"}}} } } }, "/admin/reports/list": { "post": { "operationId": "list_reports", "summary": "List reports", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListReportsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists user and content reports with optional status filtering and pagination. Requires REPORT_VIEW permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListReportsRequest"}}} } } }, "/admin/reports/resolve": { "post": { "operationId": "resolve_report", "summary": "Resolve report", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResolveReportResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Closes and resolves a report with optional public comment. Marks report as handled and creates audit log entry. Requires REPORT_RESOLVE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResolveReportRequest"}}} } } }, "/admin/reports/search": { "post": { "operationId": "search_reports", "summary": "Search reports", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchReportsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Searches and filters reports by user, content, reason, and status criteria. Supports full-text search and advanced filtering. Requires REPORT_VIEW permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchReportsRequest"}}} } } }, "/admin/reports/{report_id}": { "get": { "operationId": "get_report", "summary": "Get report details", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReportAdminResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieves detailed information about a specific report including content, reporter, and reason. Requires REPORT_VIEW permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "report_id", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The report id" } ] } }, "/admin/search/refresh-index": { "post": { "operationId": "refresh_search_index", "summary": "Refresh search index", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RefreshSearchIndexResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Trigger full or partial search index rebuild. Creates background job to reindex guilds and users. Returns job ID for status tracking. Requires GUILD_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RefreshSearchIndexRequest"}}} } } }, "/admin/search/refresh-status": { "post": { "operationId": "get_search_index_refresh_status", "summary": "Get search index refresh status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IndexRefreshStatusResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Polls status of a search index refresh job. Returns completion percentage and current phase. Requires GUILD_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetIndexRefreshStatusRequest"}}} } } }, "/admin/suspicious-email-domains/add": { "post": { "operationId": "add_suspicious_email_domain", "summary": "Add suspicious email domain", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Flag an email domain as suspicious. Registration is not blocked, but new accounts using this domain are required to verify a phone number before they can act on the platform. The list itself is not exposed to users — they only see the verified-phone gate.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SuspiciousEmailDomainRequest"}}} } } }, "/admin/suspicious-email-domains/check": { "post": { "operationId": "check_suspicious_email_domain", "summary": "Check suspicious email domain status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether an email domain is currently flagged as suspicious.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SuspiciousEmailDomainRequest"}}} } } }, "/admin/suspicious-email-domains/remove": { "post": { "operationId": "remove_suspicious_email_domain", "summary": "Remove suspicious email domain flag", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Remove a domain from the suspicious list. New registrations from this domain will no longer be auto-required to verify a phone number on signup.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SuspiciousEmailDomainRequest"}}} } } }, "/admin/system-dm/send": { "post": { "operationId": "send_system_dm", "summary": "Send system DM", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SendSystemDmResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Queue a worker job that sends the same system DM content to each provided user ID. Progress is observable via the Jobs admin page (task_type=sendSystemDm). Requires SYSTEM_DM_SEND permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SendSystemDmRequest"}}} } } }, "/admin/system/heap-snapshot": { "post": { "operationId": "take_heap_snapshot", "summary": "Take a V8 heap snapshot", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HeapSnapshotResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Triggers a V8 heap snapshot of the current process and returns the snapshot file. Used for diagnosing memory leaks. Requires SYSTEM_HEAP_SNAPSHOT permission.", "security": [{"adminApiKey": []}] } }, "/admin/users/cancel-bulk-message-deletion": { "post": { "operationId": "admin_cancel_bulk_message_deletion", "summary": "Cancel bulk message deletion", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Cancel a scheduled bulk message deletion job for a user. Prevents deletion of user messages across guilds. Creates audit log entry. Requires USER_CANCEL_BULK_MESSAGE_DELETION permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CancelBulkMessageDeletionRequest"}}} } } }, "/admin/users/cancel-deletion": { "post": { "operationId": "cancel_account_deletion", "summary": "Cancel account deletion", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Cancel a scheduled account deletion. User account restoration prevents data loss. Creates audit log entry. Requires USER_DELETE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DisableMfaRequest"}}} } } }, "/admin/users/change-dob": { "post": { "operationId": "change_user_dob", "summary": "Change user DOB", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Update user date of birth. May affect age-restricted content access. Creates audit log entry. Requires USER_UPDATE_DOB permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ChangeDobRequest"}}} } } }, "/admin/users/change-email": { "post": { "operationId": "change_user_email", "summary": "Change user email", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Change user email address. New email must be valid and unique. Marks email as verified. Creates audit log entry. Requires USER_UPDATE_EMAIL permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ChangeEmailRequest"}}} } } }, "/admin/users/change-log": { "post": { "operationId": "get_user_change_log", "summary": "Get user change log", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": {"schema": {"$ref": "#/components/schemas/ListUserChangeLogResponseSchema"}} } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve complete change log history for a user. Shows all profile modifications, admin actions, and account changes with timestamps. Requires USER_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserChangeLogRequest"}}} } } }, "/admin/users/change-username": { "post": { "operationId": "change_user_username", "summary": "Change user username", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Change user username. New username must meet requirements and be unique. Creates audit log entry. Requires USER_UPDATE_USERNAME permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ChangeUsernameRequest"}}} } } }, "/admin/users/clear-fields": { "post": { "operationId": "clear_user_fields", "summary": "Clear user fields", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Clear or reset user profile fields such as bio, avatar, or status. Creates audit log entry. Requires USER_UPDATE_PROFILE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ClearUserFieldsRequest"}}} } } }, "/admin/users/delete-webauthn-credential": { "post": { "operationId": "delete_user_webauthn_credential", "summary": "Delete user WebAuthn credential", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Delete a specific WebAuthn credential (passkey/security key) from a user account. Creates audit log entry. Requires USER_UPDATE_MFA permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteWebAuthnCredentialRequest"}}} } } }, "/admin/users/disable-mfa": { "post": { "operationId": "disable_user_mfa", "summary": "Disable user MFA", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Disable two-factor authentication for user account. Removes all authenticators. Creates audit log entry. Requires USER_UPDATE_MFA permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DisableMfaRequest"}}} } } }, "/admin/users/disable-suspicious": { "post": { "operationId": "disable_user_suspicious", "summary": "Disable user for suspicious activity", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Disable user account due to suspicious activity or abuse. Account is locked pending review. User cannot access services. Creates audit log entry. Requires USER_DISABLE_SUSPICIOUS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": { "application/json": {"schema": {"$ref": "#/components/schemas/DisableForSuspiciousActivityRequest"}} } } } }, "/admin/users/list-dm-channels": { "post": { "operationId": "list_user_dm_channels", "summary": "List user DM channels", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserDmChannelsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "List historical one-to-one DM channels for a user with cursor pagination. Requires USER_LIST_DM_CHANNELS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserDmChannelsRequest"}}} } } }, "/admin/users/list-group-dm-channels": { "post": { "operationId": "list_user_group_dm_channels", "summary": "List user group DM channels", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": {"schema": {"$ref": "#/components/schemas/ListUserGroupDmChannelsResponse"}} } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "List group DM channels for a user. Requires USER_LIST_DM_CHANNELS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserGroupDmChannelsRequest"}}} } } }, "/admin/users/list-guilds": { "post": { "operationId": "list_user_guilds", "summary": "List user guilds", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserGuildsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "List all guilds a user is a member of. Shows roles and join dates. Requires USER_LIST_GUILDS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserGuildsRequest"}}} } } }, "/admin/users/list-relationships": { "post": { "operationId": "admin_list_user_relationships", "summary": "List user relationships", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserRelationshipsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "List a user's friends, incoming and outgoing friend requests, and blocked users. Requires USER_LIST_RELATIONSHIPS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserRelationshipsRequest"}}} } } }, "/admin/users/list-sessions": { "post": { "operationId": "list_user_sessions", "summary": "List user sessions", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserSessionsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "List all active user sessions across devices. Shows device info, IP, last activity, and creation time. Requires USER_LIST_SESSIONS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserSessionsRequest"}}} } } }, "/admin/users/list-webauthn-credentials": { "post": { "operationId": "list_user_webauthn_credentials", "summary": "List user WebAuthn credentials", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/WebAuthnCredentialListResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "List all WebAuthn credentials (passkeys/security keys) registered for a user. Returns credential names, creation dates, and last usage. Creates audit log entry. Requires USER_UPDATE_MFA permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListWebAuthnCredentialsRequest"}}} } } }, "/admin/users/lookup": { "post": { "operationId": "lookup_user", "summary": "Lookup user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupUserResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Look up detailed user profile by ID, username, email, or phone. Returns account status, permissions, and metadata. Requires USER_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupUserRequest"}}} } } }, "/admin/users/me": { "get": { "operationId": "get_authenticated_admin_user", "summary": "Get authenticated admin user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminUsersMeResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Get profile of currently authenticated admin user. Returns admin permissions, roles, and metadata. Requires AUTHENTICATE permission.", "security": [{"adminApiKey": []}] } }, "/admin/users/remove-relationship": { "post": { "operationId": "remove_user_relationship", "summary": "Remove user relationship", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Remove a single relationship row for a user. For friend and outgoing_request, the mirror entry on the other user is also removed. Dispatches RELATIONSHIP_REMOVE gateway events. Requires USER_REMOVE_RELATIONSHIP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RemoveUserRelationshipRequest"}}} } } }, "/admin/users/remove-relationships-by-category": { "post": { "operationId": "remove_user_relationships_by_category", "summary": "Remove all of a user's relationships in a category", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": {"schema": {"$ref": "#/components/schemas/RemoveUserRelationshipsResponse"}} } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Bulk-remove every relationship of the chosen category (friend, incoming_request, outgoing_request, blocked) for a user. Mirror entries on the other party are removed for friend, incoming_request, and outgoing_request. Requires USER_REMOVE_RELATIONSHIP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": { "application/json": {"schema": {"$ref": "#/components/schemas/RemoveUserRelationshipsByCategoryRequest"}} } } } }, "/admin/users/resend-verification-email": { "post": { "operationId": "admin_resend_verification_email", "summary": "Resend verification email", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Resend the account verification email for a user. Creates audit log entry and honours email verification resend limits. Requires USER_UPDATE_EMAIL permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResendVerificationEmailRequest"}}} } } }, "/admin/users/schedule-deletion": { "post": { "operationId": "schedule_account_deletion", "summary": "Schedule account deletion", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Schedule user account for deletion after grace period. Account will be fully deleted with all content unless cancellation is executed. Creates audit log entry. Requires USER_DELETE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ScheduleAccountDeletionRequest"}}} } } }, "/admin/users/search": { "post": { "operationId": "search_users", "summary": "Search users", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchUsersResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Searches users by username, email, ID, last active IP, and other criteria. Supports full-text search and filtering by account status. Requires USER_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchUsersRequest"}}} } } }, "/admin/users/send-password-reset": { "post": { "operationId": "send_password_reset", "summary": "Send password reset", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Send password reset email to user with reset link. User must use link within expiry window. Creates audit log entry. Requires USER_UPDATE_EMAIL permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SendPasswordResetRequest"}}} } } }, "/admin/users/set-acls": { "post": { "operationId": "set_user_acls", "summary": "Set user ACLs", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Grant or revoke admin ACL permissions to user. Controls admin capabilities and panel access. Creates audit log entry. Requires ACL_SET_USER permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SetUserAclsRequest"}}} } } }, "/admin/users/set-bot-status": { "post": { "operationId": "set_user_bot_status", "summary": "Set user bot status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Mark or unmark a user account as a bot. Controls bot badge visibility and API permissions. Creates audit log entry. Requires USER_UPDATE_BOT_STATUS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SetUserBotStatusRequest"}}} } } }, "/admin/users/set-system-status": { "post": { "operationId": "set_user_system_status", "summary": "Set user system status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Mark or unmark a user as a system account. System accounts have special permissions for automated operations. Creates audit log entry. Requires USER_UPDATE_BOT_STATUS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SetUserSystemStatusRequest"}}} } } }, "/admin/users/set-traits": { "post": { "operationId": "set_user_traits", "summary": "Set user traits", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Set or update user trait attributes and profile metadata. Traits customize user display and features. Creates audit log entry. Requires USER_UPDATE_TRAITS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SetUserTraitsRequest"}}} } } }, "/admin/users/temp-ban": { "post": { "operationId": "temp_ban_user", "summary": "Temp ban user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Apply temporary ban to user account for specified duration. Prevents login and guild operations. Automatically lifts after expiry. Creates audit log entry. Requires USER_TEMP_BAN permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TempBanUserRequest"}}} } } }, "/admin/users/terminate-sessions": { "post": { "operationId": "terminate_user_sessions", "summary": "Terminate user sessions", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TerminateSessionsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Terminate all active user sessions across devices. Forces user to re-authenticate on next connection. Creates audit log entry. Requires USER_UPDATE_FLAGS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TerminateSessionsRequest"}}} } } }, "/admin/users/unban": { "post": { "operationId": "unban_user", "summary": "Unban user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Immediately remove temporary ban from user account. User can log in and access guilds again. Creates audit log entry. Requires USER_TEMP_BAN permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DisableMfaRequest"}}} } } }, "/admin/users/update-flags": { "post": { "operationId": "update_user_flags", "summary": "Update user flags", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Add or remove user flags to control account features and restrictions. Flags determine verification status and special properties. Creates audit log entry. Requires USER_UPDATE_FLAGS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateUserFlagsRequest"}}} } } }, "/admin/users/update-has-verified-phone": { "post": { "operationId": "update_user_has_verified_phone", "summary": "Update user phone verification flag", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Set whether a user is treated as having completed phone verification. This is the only supported path for clearing the irreversible user-facing phone verification flag.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateHasVerifiedPhoneRequest"}}} } } }, "/admin/users/update-premium-flags": { "post": { "operationId": "update_user_premium_flags", "summary": "Update user premium flags", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Add or remove premium-related flags on a user account (badge visibility, override, purchase block, etc). Creates audit log entry. Requires USER_UPDATE_FLAGS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdatePremiumFlagsRequest"}}} } } }, "/admin/users/update-suspicious-activity-flags": { "post": { "operationId": "update_suspicious_activity_flags", "summary": "Update suspicious activity flags", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Flag user as suspicious for account abuse, fraud, or policy violations. Enables enforcement actions and rate limiting. Creates audit log entry. Requires USER_UPDATE_SUSPICIOUS_ACTIVITY permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": { "application/json": {"schema": {"$ref": "#/components/schemas/UpdateSuspiciousActivityFlagsRequest"}} } } } }, "/admin/users/verify-email": { "post": { "operationId": "verify_user_email", "summary": "Verify user email", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Manually verify user email address without requiring confirmation link. Bypasses email verification requirement. Creates audit log entry. Requires USER_UPDATE_EMAIL permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/VerifyUserEmailRequest"}}} } } }, "/admin/users/{user_id}/ban-avatar": { "post": { "operationId": "ban_user_avatar", "summary": "Ban this user's current avatar", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanUserAvatarResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Reads the user's current avatar_hash, strips any animation prefix, and adds the 8-char hash to the avatar blocklist. Returns the banned hash.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "user_id", "in": "path", "required": true, "schema": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "The ID of the user" } ], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanUserAvatarRequest"}}} } } }, "/admin/voice/diagnostics/objects": { "get": { "operationId": "list_voice_diagnostics_objects", "summary": "List voice diagnostics objects", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": {"schema": {"$ref": "#/components/schemas/VoiceDiagnosticsObjectListResponse"}} } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists raw voice diagnostics NDJSON S3 objects for a channel and time range. Requires VOICE_DIAGNOSTICS_VIEW permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "channel_id", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Channel id to query diagnostics for" } }, { "name": "start_ms", "in": "query", "required": true, "schema": { "type": "integer", "minimum": 0, "maximum": 8640000000000000, "format": "int64", "description": "Inclusive start timestamp in milliseconds" } }, { "name": "end_ms", "in": "query", "required": true, "schema": { "type": "integer", "minimum": 0, "maximum": 8640000000000000, "format": "int64", "description": "Inclusive end timestamp in milliseconds" } }, { "name": "session_id", "in": "query", "required": false, "schema": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^[A-Za-z0-9_.:-]+$", "description": "Optional voice diagnostics session id filter" } }, { "name": "limit_objects", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "maximum": 5000, "format": "int32", "description": "Maximum matching S3 objects to include" } } ] } }, "/admin/voice/diagnostics/raw": { "get": { "operationId": "stream_voice_diagnostics_raw", "summary": "Stream raw voice diagnostics", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Streams matching voice diagnostics NDJSON objects for local processing. Requires VOICE_DIAGNOSTICS_VIEW permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "channel_id", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Channel id to query diagnostics for" } }, { "name": "start_ms", "in": "query", "required": true, "schema": { "type": "integer", "minimum": 0, "maximum": 8640000000000000, "format": "int64", "description": "Inclusive start timestamp in milliseconds" } }, { "name": "end_ms", "in": "query", "required": true, "schema": { "type": "integer", "minimum": 0, "maximum": 8640000000000000, "format": "int64", "description": "Inclusive end timestamp in milliseconds" } }, { "name": "session_id", "in": "query", "required": false, "schema": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^[A-Za-z0-9_.:-]+$", "description": "Optional voice diagnostics session id filter" } }, { "name": "limit_objects", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "maximum": 5000, "format": "int32", "description": "Maximum matching S3 objects to include" } } ] } }, "/admin/voice/regions/create": { "post": { "operationId": "create_voice_region", "summary": "Create voice region", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateVoiceRegionResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Creates a new voice server region. Defines geographic location and performance characteristics for voice routing. Creates audit log entry. Requires VOICE_REGION_CREATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateVoiceRegionRequest"}}} } } }, "/admin/voice/regions/delete": { "post": { "operationId": "delete_voice_region", "summary": "Delete voice region", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteVoiceResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Deletes a voice region. Removes region from routing and reassigns active connections. Creates audit log entry. Requires VOICE_REGION_DELETE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteVoiceRegionRequest"}}} } } }, "/admin/voice/regions/get": { "post": { "operationId": "get_voice_region", "summary": "Get voice region", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetVoiceRegionResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Gets detailed information about a voice region including assigned servers, capacity, and server details. Requires VOICE_REGION_LIST permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetVoiceRegionRequest"}}} } } }, "/admin/voice/regions/list": { "post": { "operationId": "list_voice_regions", "summary": "List voice regions", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListVoiceRegionsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists all configured voice server regions with status and server count. Shows region names, latency info, and availability. Requires VOICE_REGION_LIST permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListVoiceRegionsRequest"}}} } } }, "/admin/voice/regions/update": { "post": { "operationId": "update_voice_region", "summary": "Update voice region", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateVoiceRegionResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Updates voice region settings such as latency thresholds or priority. Changes affect voice routing for new sessions. Creates audit log entry. Requires VOICE_REGION_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateVoiceRegionRequest"}}} } } }, "/admin/voice/servers/create": { "post": { "operationId": "create_voice_server", "summary": "Create voice server", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateVoiceServerResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Creates and provisions a new voice server instance in a region. Configures capacity, codecs, and encryption. Creates audit log entry. Requires VOICE_SERVER_CREATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateVoiceServerRequest"}}} } } }, "/admin/voice/servers/delete": { "post": { "operationId": "delete_voice_server", "summary": "Delete voice server", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteVoiceResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Decommissions and removes a voice server instance. Disconnects active sessions and migrates to other servers. Creates audit log entry. Requires VOICE_SERVER_DELETE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteVoiceServerRequest"}}} } } }, "/admin/voice/servers/get": { "post": { "operationId": "get_voice_server", "summary": "Get voice server", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetVoiceServerResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Gets detailed voice server information including active connections and configuration. Requires VOICE_SERVER_LIST permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetVoiceServerRequest"}}} } } }, "/admin/voice/servers/list": { "post": { "operationId": "list_voice_servers", "summary": "List voice servers", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListVoiceServersResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists all voice servers with connection counts and capacity. Shows server status, region assignment, and load information. Supports filtering and pagination. Requires VOICE_SERVER_LIST permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListVoiceServersRequest"}}} } } }, "/admin/voice/servers/update": { "post": { "operationId": "update_voice_server", "summary": "Update voice server", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateVoiceServerResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Updates voice server configuration including capacity, region assignment, and quality settings. Changes apply to new connections. Creates audit log entry. Requires VOICE_SERVER_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateVoiceServerRequest"}}} } } } }, "components": { "schemas": { "CreateAdminApiKeyResponse": { "type": "object", "properties": { "key_id": {"type": "string", "description": "Unique identifier for the API key"}, "key": {"type": "string", "description": "The generated API key secret (only shown once)"}, "name": {"type": "string", "description": "Display name for the API key"}, "created_at": {"type": "string", "description": "ISO 8601 timestamp when the key was created"}, "expires_at": { "description": "ISO 8601 timestamp when the key expires, or null if no expiration", "nullable": true, "type": "string" }, "acls": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "List of access control permissions for the key" } }, "required": ["key_id", "key", "name", "created_at", "expires_at", "acls"] }, "Error": { "type": "object", "properties": { "code": {"$ref": "#/components/schemas/APIErrorCode"}, "message": {"type": "string", "description": "Human-readable error message"}, "errors": { "type": "array", "description": "Field-specific validation errors", "items": {"$ref": "#/components/schemas/ValidationErrorItem"} } }, "required": ["code", "message"] }, "APIErrorCode": { "type": "string", "enum": [ "ACCESS_DENIED", "ACCOUNT_DISABLED", "BAD_GATEWAY", "BAD_REQUEST", "BLUESKY_OAUTH_AUTHORIZATION_FAILED", "BLUESKY_OAUTH_CALLBACK_FAILED", "BLUESKY_OAUTH_NOT_ENABLED", "BLUESKY_OAUTH_SESSION_EXPIRED", "BLUESKY_OAUTH_STATE_INVALID", "ACCOUNT_SCHEDULED_FOR_DELETION", "ACCOUNT_SUSPENDED_PERMANENTLY", "ACCOUNT_SUSPENDED_TEMPORARILY", "ACCOUNT_SUSPICIOUS_ACTIVITY", "ACCOUNT_TOO_NEW_FOR_GUILD", "ACLS_MUST_BE_NON_EMPTY", "ADMIN_API_KEY_NOT_FOUND", "APPLICATION_NOT_FOUND", "APPLICATION_NOT_OWNED", "ALREADY_FRIENDS", "AUDIT_LOG_INDEXING", "BOTS_CANNOT_CREATE_GUILDS", "BOTS_CANNOT_SEND_FRIEND_REQUESTS", "BOT_ALREADY_IN_GUILD", "BOT_APPLICATION_NOT_FOUND", "BOT_IS_PRIVATE", "BOT_USER_AUTH_ENDPOINT_ACCESS_DENIED", "BOT_USER_AUTH_SESSION_CREATION_DENIED", "BOT_USER_GENERATION_FAILED", "BOT_USER_NOT_FOUND", "CALL_ALREADY_EXISTS", "CANNOT_EDIT_OTHER_USER_MESSAGE", "CANNOT_EXECUTE_ON_DM", "CANNOT_BLOCK_SYSTEM_USER", "CANNOT_MODIFY_SYSTEM_WEBHOOK", "CANNOT_MODIFY_VOICE_STATE", "CANNOT_REDEEM_PLUTONIUM_WITH_VISIONARY", "CANNOT_REPORT_GUILD", "CANNOT_REPORT_OWN_GUILD", "CANNOT_REPORT_OWN_MESSAGE", "CANNOT_REPORT_YOURSELF", "CANNOT_SEND_EMPTY_MESSAGE", "CANNOT_SEND_FRIEND_REQUEST_TO_BLOCKED_USER", "CANNOT_SEND_FRIEND_REQUEST_TO_SELF", "CANNOT_SEND_MESSAGES_IN_NON_TEXT_CHANNEL", "CANNOT_SEND_MESSAGES_TO_USER", "CANNOT_TRANSFER_OWNERSHIP_TO_BOT", "CANNOT_SHRINK_RESERVED_SLOTS", "CAPTCHA_REQUIRED", "CHANNEL_INDEXING", "COMMUNICATION_DISABLED", "CONNECTION_ALREADY_EXISTS", "CONNECTION_INITIATION_TOKEN_INVALID", "CONNECTION_INVALID_IDENTIFIER", "CONNECTION_INVALID_TYPE", "CONNECTION_LIMIT_REACHED", "CONNECTION_NOT_FOUND", "CONNECTION_VERIFICATION_FAILED", "CONFLICT", "CONTENT_BLOCKED", "CREATION_FAILED", "DECRYPTION_FAILED", "DELETION_FAILED", "DISCOVERY_ALREADY_APPLIED", "DISCOVERY_APPLICATION_ALREADY_REVIEWED", "DISCOVERY_APPLICATION_NOT_FOUND", "DISCOVERY_DESCRIPTION_REQUIRED", "DISCOVERY_DISABLED", "DISCOVERY_INSUFFICIENT_MEMBERS", "DISCOVERY_INVALID_CATEGORY", "DISCOVERY_NOT_DISCOVERABLE", "DISCRIMINATOR_REQUIRED", "EMAIL_SERVICE_NOT_TESTABLE", "EMAIL_VERIFICATION_REQUIRED", "CANARY_TESTER_EMAIL_VERIFICATION_REQUIRED", "DIRECT_MESSAGE_EMAIL_VERIFICATION_REQUIRED", "FRIEND_REQUEST_EMAIL_VERIFICATION_REQUIRED", "GUILD_CREATION_EMAIL_VERIFICATION_REQUIRED", "GUILD_EMAIL_VERIFICATION_REQUIRED", "MFA_EMAIL_VERIFICATION_REQUIRED", "PROFILE_EMAIL_VERIFICATION_REQUIRED", "PURCHASE_EMAIL_VERIFICATION_REQUIRED", "REACTION_EMAIL_VERIFICATION_REQUIRED", "REPORT_EMAIL_VERIFICATION_REQUIRED", "REGISTRATION_CLOSED", "REGISTRATION_PENDING_APPROVAL", "REGISTRATION_REJECTED", "REGISTRATION_URL_INVALID", "EMPTY_ENCRYPTED_BODY", "ENCRYPTION_FAILED", "EU_WITHDRAWAL_WAIVER_REQUIRED", "EXPLICIT_CONTENT_CANNOT_BE_SENT", "FEATURE_NOT_AVAILABLE_SELF_HOSTED", "FEATURE_TEMPORARILY_DISABLED", "FILE_SIZE_TOO_LARGE", "FORBIDDEN", "FRIEND_REQUEST_BLOCKED", "GATEWAY_TIMEOUT", "GENERAL_ERROR", "GONE", "GIFT_CODE_ALREADY_REDEEMED", "GUILD_PHONE_VERIFICATION_REQUIRED", "GUILD_TEMPLATE_FETCH_FAILED", "GUILD_TEMPLATE_INVALID", "GUILD_VERIFICATION_REQUIRED", "HANDOFF_CODE_EXPIRED", "HARVEST_EXPIRED", "HARVEST_FAILED", "HARVEST_NOT_READY", "HTTP_GET_AUTHORIZE_NOT_SUPPORTED", "INSTANCE_VERSION_MISMATCH", "INTERNAL_SERVER_ERROR", "INVALID_ACLS_FORMAT", "INVALID_API_ORIGIN", "INVALID_AUTH_TOKEN", "INVALID_BOT_FLAG", "INVALID_CAPTCHA", "INVALID_CHANNEL_TYPE_FOR_CALL", "INVALID_CHANNEL_TYPE", "INVALID_CLIENT", "INVALID_CLIENT_SECRET", "INVALID_DSA_REPORT_TARGET", "INVALID_DSA_TICKET", "INVALID_DSA_VERIFICATION_CODE", "INVALID_DECRYPTED_JSON", "INVALID_EPHEMERAL_KEY", "INVALID_FLAGS_FORMAT", "INVALID_IV", "INVALID_FORM_BODY", "INVALID_GRANT", "INVALID_HANDOFF_CODE", "INVALID_PACK_TYPE", "INVALID_PERMISSIONS_INTEGER", "INVALID_PERMISSIONS_NEGATIVE", "INVALID_PHONE_NUMBER", "INVALID_PHONE_VERIFICATION_CODE", "INVALID_REDIRECT_URI", "INVALID_REQUEST", "INVALID_RESPONSE_TYPE_FOR_NON_BOT", "INVALID_SCOPE", "INVALID_STREAM_KEY_FORMAT", "INVALID_STREAM_THUMBNAIL_PAYLOAD", "INVALID_SUDO_TOKEN", "INVALID_SUSPICIOUS_FLAGS_FORMAT", "INVALID_SYSTEM_FLAG", "INVALID_TIMESTAMP", "INVALID_TOKEN", "INVALID_WEBAUTHN_AUTHENTICATION_COUNTER", "INVALID_WEBAUTHN_CREDENTIAL_COUNTER", "INVALID_WEBAUTHN_CREDENTIAL", "INVALID_WEBAUTHN_PUBLIC_KEY_FORMAT", "INVITES_DISABLED", "IP_AUTHORIZATION_REQUIRED", "IP_AUTHORIZATION_RESEND_COOLDOWN", "IP_AUTHORIZATION_RESEND_LIMIT_EXCEEDED", "GLOBAL_IP_BANNED", "GLOBAL_IP_TEMPORARILY_BANNED", "IP_BANNED", "RESIDENTIAL_PROXY_BLOCKED", "TOR_BLOCKED", "MAX_ANIMATED_EMOJIS", "MAX_APPLICATIONS", "MAX_BOOKMARKS", "MAX_CATEGORY_CHANNELS", "MAX_EMOJIS", "MAX_FAVORITE_MEMES", "MAX_FRIENDS", "MAX_GROUP_DM_RECIPIENTS", "MAX_GROUP_DMS", "GROUP_DM_RECIPIENTS_NOT_ADDABLE", "MAX_GUILD_CHANNELS", "MAX_GUILD_MEMBERS", "MAX_GUILD_ROLES", "MAX_GUILDS", "NEW_ACCOUNT_GUILD_JOIN_RATE_LIMITED", "MAX_INVITES", "MAX_PACK_EXPRESSIONS", "MAX_PACKS", "MAX_PINS_PER_CHANNEL", "MESSAGE_TOTAL_ATTACHMENT_SIZE_TOO_LARGE", "MAX_REACTIONS", "MAX_STICKERS", "MAX_WEBHOOKS_PER_CHANNEL", "MAX_WEBHOOKS_PER_GUILD", "MAX_WEBHOOKS", "NCMEC_ALREADY_SUBMITTED", "NCMEC_SUBMISSION_FAILED", "MEDIA_METADATA_ERROR", "METHOD_NOT_ALLOWED", "MISSING_ACCESS", "MISSING_ACL", "MISSING_AUTHORIZATION", "MISSING_CLIENT_SECRET", "MISSING_EPHEMERAL_KEY", "MISSING_IV", "MISSING_OAUTH_FIELDS", "MISSING_OAUTH_SCOPE", "MISSING_PERMISSIONS", "MISSING_REDIRECT_URI", "NO_ACTIVE_CALL", "NO_ACTIVE_SUBSCRIPTION", "NOT_FOUND", "NOT_IMPLEMENTED", "NO_PASSKEYS_REGISTERED", "NO_PENDING_DELETION", "NO_USERS_WITH_FLUXERTAG_EXIST", "NO_VISIONARY_SLOTS_AVAILABLE", "NOT_A_BOT_APPLICATION", "NOT_FRIENDS_WITH_USER", "NOT_OWNER_OF_ADMIN_API_KEY", "NSFW_CONTENT_AGE_RESTRICTED", "NSFW_EMOJI_STICKER_BLOCKED", "PACK_ACCESS_DENIED", "PASSKEY_AUTHENTICATION_FAILED", "PASSKEYS_DISABLED", "PHONE_ADD_NOT_ELIGIBLE", "PHONE_ALREADY_USED", "PHONE_RATE_LIMIT_EXCEEDED", "PHONE_VERIFICATION_REQUIRED", "PREMIUM_PURCHASE_BLOCKED", "PREVIEW_MUST_BE_JPEG", "PROCESSING_FAILED", "RATE_LIMITED", "REDIRECT_URI_REQUIRED_FOR_NON_BOT", "REPORT_ALREADY_RESOLVED", "REPORT_BANNED", "RESPONSE_VALIDATION_ERROR", "RESOURCE_LOCKED", "SERVICE_UNAVAILABLE", "SESSION_TOKEN_MISMATCH", "SINGLE_COMMUNITY_CANNOT_CREATE_GUILDS", "SINGLE_COMMUNITY_CANNOT_DELETE", "SINGLE_COMMUNITY_CANNOT_LEAVE", "INSTANCE_POLICY_TRANSITION_NOT_ALLOWED", "SLOWMODE_RATE_LIMITED", "SMS_VERIFICATION_UNAVAILABLE", "SSO_REQUIRED", "STREAM_KEY_CHANNEL_MISMATCH", "STREAM_KEY_SCOPE_MISMATCH", "STREAM_THUMBNAIL_PAYLOAD_EMPTY", "STRIPE_ERROR", "STRIPE_GIFT_REDEMPTION_IN_PROGRESS", "STRIPE_INVALID_PRODUCT", "STRIPE_INVALID_PRODUCT_CONFIGURATION", "STRIPE_NO_ACTIVE_SUBSCRIPTION", "STRIPE_NO_PURCHASE_HISTORY", "STRIPE_REFUND_OUTSIDE_WINDOW", "STRIPE_REFUND_COOLDOWN_ACTIVE", "STRIPE_NO_SUBSCRIPTION", "STRIPE_PAYMENT_NOT_AVAILABLE", "STRIPE_SUBSCRIPTION_ALREADY_CANCELING", "STRIPE_SUBSCRIPTION_NOT_CANCELING", "STRIPE_SUBSCRIPTION_PERIOD_END_MISSING", "STRIPE_WEBHOOK_NOT_AVAILABLE", "STRIPE_WEBHOOK_SIGNATURE_INVALID", "STRIPE_WEBHOOK_SIGNATURE_MISSING", "DIRECT_MESSAGES_DISABLED", "DONATION_AMOUNT_INVALID", "DONATION_MAGIC_LINK_EXPIRED", "DONATION_MAGIC_LINK_INVALID", "DONATION_MAGIC_LINK_USED", "DONOR_NOT_FOUND", "SUDO_MODE_REQUIRED", "TAG_ALREADY_TAKEN", "TEMPORARY_INVITE_REQUIRES_PRESENCE", "TEST_HARNESS_DISABLED", "TEST_HARNESS_FORBIDDEN", "TWO_FA_NOT_ENABLED", "TWO_FACTOR_REQUIRED", "UNAUTHORIZED", "UNCLAIMED_ACCOUNT_CANNOT_ACCEPT_FRIEND_REQUESTS", "UNCLAIMED_ACCOUNT_CANNOT_ADD_REACTIONS", "UNCLAIMED_ACCOUNT_CANNOT_CREATE_APPLICATIONS", "UNCLAIMED_ACCOUNT_CANNOT_CREATE_GUILDS", "UNCLAIMED_ACCOUNT_CANNOT_JOIN_GROUP_DMS", "UNCLAIMED_ACCOUNT_CANNOT_JOIN_ONE_ON_ONE_VOICE_CALLS", "UNCLAIMED_ACCOUNT_CANNOT_JOIN_VOICE_CHANNELS", "UNCLAIMED_ACCOUNT_CANNOT_MAKE_PURCHASES", "UNCLAIMED_ACCOUNT_CANNOT_SEND_DIRECT_MESSAGES", "UNCLAIMED_ACCOUNT_CANNOT_SEND_FRIEND_REQUESTS", "UNCLAIMED_ACCOUNT_CANNOT_SEND_MESSAGES", "UNCLAIMED_ACCOUNT_CANNOT_SUBMIT_REPORTS", "UNKNOWN_CHANNEL", "UNKNOWN_EMOJI", "UNKNOWN_FAVORITE_MEME", "UNKNOWN_GIFT_CODE", "UNKNOWN_GUILD", "UNKNOWN_HARVEST", "UNKNOWN_INVITE", "UNKNOWN_MEMBER", "UNKNOWN_MESSAGE", "UNKNOWN_PACK", "UNKNOWN_REPORT", "UNKNOWN_ROLE", "UNKNOWN_STICKER", "UNKNOWN_SUSPICIOUS_FLAG", "UNKNOWN_USER_FLAG", "UNKNOWN_USER", "UNKNOWN_VOICE_REGION", "UNKNOWN_VOICE_SERVER", "UNKNOWN_WEBAUTHN_CREDENTIAL", "UNKNOWN_APPLICATION", "UNKNOWN_WEBHOOK", "UNFURL_STREAM_TOO_LARGE", "UNSUPPORTED_RESPONSE_TYPE", "USERNAME_NOT_AVAILABLE", "UPDATE_FAILED", "USER_BANNED_FROM_GUILD", "USER_IP_BANNED_FROM_GUILD", "USER_NOT_IN_VOICE", "USER_OWNS_GUILDS", "VALIDATION_ERROR", "VOICE_CHANNEL_FULL", "WEBAUTHN_CREDENTIAL_LIMIT_REACHED", "AGE_VERIFICATION_ALREADY_VERIFIED", "AGE_VERIFICATION_INVALID_CARD_TYPE" ], "description": "Error codes returned by API operations" }, "ValidationErrorItem": { "type": "object", "properties": { "field": {"type": "string", "description": "Field path that failed validation"}, "code": {"type": "string", "description": "Machine-readable validation error code"}, "message": {"type": "string", "description": "Human-readable validation error message"} }, "required": ["field", "code", "message"] }, "CreateAdminApiKeyRequest": { "type": "object", "properties": { "name": {"type": "string", "minLength": 1, "maxLength": 100, "description": "Display name for the API key"}, "expires_in_days": { "type": "integer", "minimum": 1, "maximum": 365, "format": "int32", "description": "Number of days until the key expires" }, "acls": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "List of access control permissions for the key" } }, "required": ["name", "acls"] }, "ListAdminApiKeyResponse": { "type": "object", "properties": { "key_id": {"type": "string", "description": "Unique identifier for the API key"}, "name": {"type": "string", "description": "Display name for the API key"}, "created_at": {"type": "string", "description": "ISO 8601 timestamp when the key was created"}, "last_used_at": { "description": "ISO 8601 timestamp when the key was last used, or null if never used", "nullable": true, "type": "string" }, "expires_at": { "description": "ISO 8601 timestamp when the key expires, or null if no expiration", "nullable": true, "type": "string" }, "created_by_user_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "User ID of the admin who created this key" }, "acls": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "List of access control permissions for the key" } }, "required": ["key_id", "name", "created_at", "last_used_at", "expires_at", "created_by_user_id", "acls"] }, "DeleteApiKeyResponse": { "type": "object", "properties": {"success": {"type": "boolean", "enum": [true]}}, "required": ["success"] }, "ListGuildApplicationsResponse": { "type": "object", "properties": { "applications": {"type": "array", "items": {"$ref": "#/components/schemas/ApplicationAdminResponse"}} }, "required": ["applications"] }, "ApplicationAdminResponse": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier for this application" }, "name": {"type": "string", "description": "The display name of the application"}, "owner_user_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The user ID that owns this application" }, "owner_username": { "description": "The username of the owner, if resolvable", "nullable": true, "type": "string" }, "owner_global_name": { "description": "The display name of the owner, if set", "nullable": true, "type": "string" }, "owner_discriminator": { "description": "The discriminator of the owner, if resolvable", "nullable": true, "type": "string" }, "bot_user_id": { "description": "The user ID of the associated bot user, if any", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "bot_username": {"description": "The username of the bot user, if any", "nullable": true, "type": "string"}, "bot_global_name": { "description": "The display name of the bot user, if set", "nullable": true, "type": "string" }, "bot_discriminator": { "description": "The discriminator of the bot user, if any", "nullable": true, "type": "string" }, "bot_is_public": {"type": "boolean", "description": "Whether the bot is publicly joinable"}, "bot_require_code_grant": { "type": "boolean", "description": "Whether an OAuth2 code grant is required for this bot" }, "oauth2_redirect_uris": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Registered OAuth2 redirect URIs" }, "has_client_secret": { "type": "boolean", "description": "Whether a hashed client secret is stored for this application" }, "has_bot_token": { "type": "boolean", "description": "Whether a hashed bot token is stored for this application" }, "bot_token_preview": { "description": "The preview (last few characters) of the bot token, if any", "nullable": true, "type": "string" }, "bot_token_created_at": { "description": "ISO 8601 timestamp when the bot token was created", "nullable": true, "type": "string", "format": "date-time" }, "client_secret_created_at": { "description": "ISO 8601 timestamp when the client secret was created", "nullable": true, "type": "string", "format": "date-time" }, "version": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "The optimistic locking version of the application record" } }, "required": [ "id", "name", "owner_user_id", "owner_username", "owner_global_name", "owner_discriminator", "bot_user_id", "bot_username", "bot_global_name", "bot_discriminator", "bot_is_public", "bot_require_code_grant", "oauth2_redirect_uris", "has_client_secret", "has_bot_token", "bot_token_preview", "bot_token_created_at", "client_secret_created_at", "version" ] }, "SnowflakeType": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "format": "snowflake"}, "ListGuildApplicationsRequest": { "type": "object", "properties": {"guild_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["guild_id"] }, "ListUserApplicationsResponse": { "type": "object", "properties": { "applications": {"type": "array", "items": {"$ref": "#/components/schemas/ApplicationAdminResponse"}} }, "required": ["applications"] }, "ListUserApplicationsRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "LookupApplicationResponse": { "type": "object", "properties": { "application": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/ApplicationAdminResponse"}]} }, "required": ["application"] }, "LookupApplicationRequest": { "type": "object", "properties": {"application_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["application_id"] }, "ApplicationUpdateResponse": { "type": "object", "properties": {"application": {"$ref": "#/components/schemas/ApplicationAdminResponse"}}, "required": ["application"] }, "TransferApplicationOwnershipRequest": { "type": "object", "properties": { "application_id": {"$ref": "#/components/schemas/SnowflakeType"}, "new_owner_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["application_id", "new_owner_id"] }, "AdminArchiveResponseSchema": { "type": "object", "properties": { "archive_id": {"$ref": "#/components/schemas/SnowflakeType"}, "subject_type": { "type": "string", "enum": ["user", "guild"], "description": "Type of subject being archived" }, "subject_id": {"$ref": "#/components/schemas/SnowflakeType"}, "requested_by": {"$ref": "#/components/schemas/SnowflakeType"}, "requested_at": {"type": "string"}, "started_at": {"nullable": true, "type": "string"}, "completed_at": {"nullable": true, "type": "string"}, "failed_at": {"nullable": true, "type": "string"}, "file_size": {"nullable": true, "type": "string"}, "progress_percent": {"type": "number"}, "progress_step": {"nullable": true, "type": "string"}, "error_message": {"nullable": true, "type": "string"}, "download_url_expires_at": {"nullable": true, "type": "string"}, "expires_at": {"nullable": true, "type": "string"} }, "required": [ "archive_id", "subject_type", "subject_id", "requested_by", "requested_at", "started_at", "completed_at", "failed_at", "file_size", "progress_percent", "progress_step", "error_message", "download_url_expires_at", "expires_at" ] }, "TriggerGuildArchiveRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "include_attachments": { "type": "boolean", "description": "Whether to include attachment binaries in the archive" } }, "required": ["guild_id"] }, "ListArchivesResponseSchema": { "type": "object", "properties": { "archives": {"type": "array", "items": {"$ref": "#/components/schemas/AdminArchiveResponseSchema"}} }, "required": ["archives"] }, "ListArchivesRequest": { "type": "object", "properties": { "subject_type": { "type": "string", "enum": ["user", "guild", "all"], "description": "Type of archives to list" }, "subject_id": {"$ref": "#/components/schemas/SnowflakeType"}, "requested_by": {"$ref": "#/components/schemas/SnowflakeType"}, "limit": { "type": "number", "minimum": 1, "maximum": 200, "description": "Maximum number of archives to return" }, "include_expired": {"type": "boolean", "description": "Whether to include expired archives"} } }, "TriggerUserArchiveRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "include_attachments": { "type": "boolean", "description": "Whether to include attachment binaries in the archive" } }, "required": ["user_id"] }, "GetArchiveResponseSchema": { "type": "object", "properties": { "archive": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/AdminArchiveResponseSchema"}]} }, "required": ["archive"] }, "DownloadUrlResponseSchema": { "type": "object", "properties": {"downloadUrl": {"type": "string"}, "expiresAt": {"type": "string"}}, "required": ["downloadUrl", "expiresAt"] }, "PurgeGuildAssetsResponseSchema": { "type": "object", "properties": { "processed": {"type": "array", "items": {"$ref": "#/components/schemas/PurgeGuildAssetResultSchema"}}, "errors": {"type": "array", "items": {"$ref": "#/components/schemas/PurgeGuildAssetErrorSchema"}} }, "required": ["processed", "errors"] }, "PurgeGuildAssetResultSchema": { "type": "object", "properties": { "id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Unique identifier of the asset"}, "asset_type": { "type": "string", "enum": ["emoji", "sticker", "unknown"], "description": "Type of guild asset" }, "found_in_db": {"type": "boolean", "description": "Whether the asset was found in the database"}, "guild_id": { "description": "ID of the guild the asset belongs to", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "guild_nsfw_level": { "description": "NSFW level of the guild the asset belongs to", "nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}] } }, "required": ["id", "asset_type", "found_in_db", "guild_id", "guild_nsfw_level"] }, "NSFWLevel": {"type": "integer", "format": "int32", "enum": [0, 3], "description": "The NSFW level of the guild"}, "PurgeGuildAssetErrorSchema": { "type": "object", "properties": {"id": {"$ref": "#/components/schemas/SnowflakeType"}, "error": {"type": "string"}}, "required": ["id", "error"] }, "PurgeGuildAssetsRequest": { "type": "object", "properties": { "ids": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "List of asset IDs to purge" } }, "required": ["ids"] }, "AuditLogsListResponseSchema": { "type": "object", "properties": { "logs": { "type": "array", "items": { "type": "object", "properties": { "log_id": {"$ref": "#/components/schemas/SnowflakeType"}, "admin_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "admin_user": { "nullable": true, "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "string"}, "global_name": {"nullable": true, "type": "string"} }, "required": ["id", "username", "discriminator", "global_name"] }, "target_type": {"type": "string"}, "target_id": { "type": "string", "description": "The ID of the affected entity (user, channel, role, invite code, etc.)" }, "target_user": { "nullable": true, "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "string"}, "global_name": {"nullable": true, "type": "string"} }, "required": ["id", "username", "discriminator", "global_name"] }, "target_guild": { "nullable": true, "type": "object", "properties": {"id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}}, "required": ["id", "name"] }, "target_channel": { "nullable": true, "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"nullable": true, "type": "string"}, "type": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4, 998, 999], "description": "The type of the channel" }, "guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]} }, "required": ["id", "name", "type", "guild_id"] }, "related_users": { "type": "object", "additionalProperties": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "string"}, "global_name": {"nullable": true, "type": "string"} }, "required": ["id", "username", "discriminator", "global_name"] }, "patternProperties": { "^(0|[1-9][0-9]*)$": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "string"}, "global_name": {"nullable": true, "type": "string"} }, "required": ["id", "username", "discriminator", "global_name"] } } }, "related_guilds": { "type": "object", "additionalProperties": { "type": "object", "properties": {"id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}}, "required": ["id", "name"] }, "patternProperties": { "^(0|[1-9][0-9]*)$": { "type": "object", "properties": {"id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}}, "required": ["id", "name"] } } }, "related_channels": { "type": "object", "additionalProperties": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"nullable": true, "type": "string"}, "type": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4, 998, 999], "description": "The type of the channel" }, "guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]} }, "required": ["id", "name", "type", "guild_id"] }, "patternProperties": { "^(0|[1-9][0-9]*)$": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"nullable": true, "type": "string"}, "type": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4, 998, 999], "description": "The type of the channel" }, "guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]} }, "required": ["id", "name", "type", "guild_id"] } } }, "action": {"type": "string"}, "audit_log_reason": {"nullable": true, "type": "string"}, "metadata": {"type": "object", "additionalProperties": {"type": "string"}}, "created_at": {"type": "string"} }, "required": [ "log_id", "admin_user_id", "admin_user", "target_type", "target_id", "target_user", "target_guild", "target_channel", "related_users", "related_guilds", "related_channels", "action", "audit_log_reason", "metadata", "created_at" ] } }, "total": {"type": "number"} }, "required": ["logs", "total"] }, "ListAuditLogsRequest": { "type": "object", "properties": { "admin_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "target_type": {"type": "string", "description": "Filter by target entity type"}, "target_id": { "type": "string", "description": "Filter by target entity ID (user, channel, role, invite code, etc.)" }, "limit": { "type": "integer", "minimum": 1, "maximum": 200, "format": "int32", "description": "Maximum number of entries to return" }, "offset": { "type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64", "description": "Number of entries to skip" } } }, "SearchAuditLogsRequest": { "type": "object", "properties": { "query": {"type": "string", "description": "Search query string"}, "admin_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "target_type": {"type": "string", "description": "Filter by target entity type"}, "target_id": { "type": "string", "description": "Filter by target entity ID (user, channel, role, invite code, etc.)" }, "sort_by": { "type": "string", "enum": ["createdAt", "relevance"], "description": "Field to sort audit logs by" }, "sort_order": {"type": "string", "enum": ["asc", "desc"], "description": "Sort order direction"}, "limit": { "type": "integer", "minimum": 1, "maximum": 200, "format": "int32", "description": "Maximum number of entries to return" }, "offset": { "type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64", "description": "Number of entries to skip" } } }, "BanAvatarHashRequest": { "type": "object", "properties": { "hashes": {"type": "array", "items": {"type": "string"}, "minItems": 1, "maxItems": 1000}, "category": {"type": "string"}, "severity": {"type": "integer", "minimum": 0, "maximum": 3, "format": "int32"}, "source_url": {"type": "string"}, "reason": {"type": "string"}, "notes": {"type": "string"} }, "required": ["hashes"] }, "BanCheckResponseSchema": { "type": "object", "properties": {"banned": {"type": "boolean"}}, "required": ["banned"] }, "CheckAvatarHashRequest": { "type": "object", "properties": {"hashes": {"type": "array", "items": {"type": "string"}, "minItems": 1, "maxItems": 1000}}, "required": ["hashes"] }, "BanEmailRequest": { "type": "object", "properties": {"email": {"$ref": "#/components/schemas/EmailType"}}, "required": ["email"] }, "EmailType": {"type": "string", "format": "email"}, "BanFileShaRequest": { "type": "object", "properties": { "sha256_hex": {"type": "string", "description": "SHA-256 in hex"}, "category": {"type": "string"}, "severity": {"type": "integer", "minimum": 0, "maximum": 3, "format": "int32"}, "content_type": {"type": "string", "description": "Optional MIME type hint for observability"}, "source_url": {"type": "string"}, "notes": {"type": "string"} }, "required": ["sha256_hex"] }, "BulkJobResponse": { "type": "object", "properties": {"job_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["job_id"] }, "BulkBanFileShasRequest": { "type": "object", "properties": { "sha256_list": { "type": "array", "items": {"type": "string"}, "minItems": 1, "maxItems": 10000, "description": "Array of SHA-256 hex strings to ban" } }, "required": ["sha256_list"] }, "CheckFileShaRequest": { "type": "object", "properties": {"sha256_hex": {"type": "string"}}, "required": ["sha256_hex"] }, "UnbanFileShaRequest": { "type": "object", "properties": {"sha256_hex": {"type": "string"}}, "required": ["sha256_hex"] }, "BanIpRequest": { "type": "object", "properties": {"ip": {"type": "string", "description": "IPv4/IPv6 address or CIDR range to ban"}}, "required": ["ip"] }, "BanPhraseRequest": { "type": "object", "properties": { "phrase": { "type": "string", "description": "Phrase to ban. Matching is case-insensitive and also normalizes common bypass tricks such as inserted whitespace, punctuation, invisible characters, and compatibility glyphs." } }, "required": ["phrase"] }, "BanProfileSubstringRequest": { "type": "object", "properties": { "scope": {"enum": ["username", "global_name", "nickname", "bio", "pronouns"], "type": "string"}, "substrings": {"type": "array", "items": {"type": "string"}, "minItems": 1, "maxItems": 1000}, "reason": {"type": "string"}, "notes": {"type": "string"} }, "required": ["scope", "substrings"] }, "BanUrlDomainRequest": { "type": "object", "properties": { "domain": {"type": "string", "description": "Domain to ban (e.g. example.com)"}, "match_subdomains": { "type": "boolean", "description": "If true, any subdomain rooted at this domain is also banned" }, "category": {"type": "string", "description": "Category / source slug (defaults to \"manual\")"}, "severity": { "type": "integer", "minimum": 0, "maximum": 3, "format": "int32", "description": "Severity: 0 allow, 1 warn, 2 block, 3 block+report (default 2)" }, "source_url": {"type": "string", "description": "Upstream source URL if imported from a feed"}, "notes": {"type": "string", "description": "Internal notes for audit trail"} }, "required": ["domain"] }, "UnbanUrlDomainRequest": { "type": "object", "properties": {"domain": {"type": "string", "description": "Domain to unban"}}, "required": ["domain"] }, "BanUrlRequest": { "type": "object", "properties": { "url": {"type": "string", "description": "Absolute URL to ban. Canonicalized before storage."}, "category": {"type": "string", "description": "Category / source slug (defaults to \"manual\")"}, "severity": { "type": "integer", "minimum": 0, "maximum": 3, "format": "int32", "description": "Severity: 0 allow, 1 warn, 2 block, 3 block+report (default 2)" }, "source_url": {"type": "string", "description": "Upstream source URL if imported from a feed"}, "notes": {"type": "string", "description": "Internal notes for audit trail"} }, "required": ["url"] }, "CheckUrlBlocklistRequest": { "type": "object", "properties": {"url": {"type": "string", "description": "URL to check against the blocklist"}}, "required": ["url"] }, "UnbanUrlRequest": { "type": "object", "properties": { "url": {"type": "string", "description": "URL to unban (must match the canonicalized form in storage)"} }, "required": ["url"] }, "AdminBillingOverviewResponse": { "type": "object", "properties": { "subscription": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/AdminSubscriptionResponse"}]}, "payments": { "type": "array", "items": { "type": "object", "properties": { "checkout_session_id": {"nullable": true, "type": "string"}, "user_id": {"type": "string"}, "stripe_customer_id": {"nullable": true, "type": "string"}, "payment_intent_id": {"nullable": true, "type": "string"}, "resolved_payment_intent_id": {"nullable": true, "type": "string"}, "charge_id": {"nullable": true, "type": "string"}, "subscription_id": {"nullable": true, "type": "string"}, "invoice_id": {"nullable": true, "type": "string"}, "price_id": {"nullable": true, "type": "string"}, "product_type": {"nullable": true, "type": "string"}, "amount_cents": {"type": "number"}, "currency": {"type": "string"}, "status": {"type": "string"}, "stripe_source": {"enum": ["invoice"], "type": "string"}, "refundable_via_payment_intent": {"type": "boolean"}, "refunded_amount_cents": {"type": "number"}, "net_amount_cents": {"type": "number"}, "refunds": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "amount_cents": {"type": "number"}, "currency": {"type": "string"}, "status": {"nullable": true, "type": "string"}, "reason": {"nullable": true, "type": "string"}, "created": {"type": "number"}, "payment_intent_id": {"nullable": true, "type": "string"}, "charge_id": {"nullable": true, "type": "string"} }, "required": [ "id", "amount_cents", "currency", "status", "reason", "created", "payment_intent_id", "charge_id" ] } }, "payment_method_type": {"nullable": true, "type": "string"}, "payment_method_brand": {"nullable": true, "type": "string"}, "payment_method_last4": {"nullable": true, "type": "string"}, "stripe_payment_method_country_code": {"nullable": true, "type": "string"}, "stripe_billing_country_code": {"nullable": true, "type": "string"}, "stripe_customer_country_code": {"nullable": true, "type": "string"}, "stripe_terms_of_service_accepted": {"nullable": true, "type": "boolean"}, "is_gift": {"type": "boolean"}, "gift_code": {"nullable": true, "type": "string"}, "purchase_geoip_country_code": {"nullable": true, "type": "string"}, "purchase_client_country_code": {"nullable": true, "type": "string"}, "eu_withdrawal_waiver_required": {"type": "boolean"}, "eu_withdrawal_waiver_accepted": {"type": "boolean"}, "eu_withdrawal_waiver_accepted_at": {"nullable": true, "type": "string"}, "eu_withdrawal_waiver_text_version": {"nullable": true, "type": "string"}, "created_at": {"type": "string"}, "completed_at": {"nullable": true, "type": "string"} }, "required": [ "checkout_session_id", "user_id", "stripe_customer_id", "payment_intent_id", "resolved_payment_intent_id", "charge_id", "subscription_id", "invoice_id", "price_id", "product_type", "amount_cents", "currency", "status", "stripe_source", "refundable_via_payment_intent", "refunded_amount_cents", "net_amount_cents", "refunds", "payment_method_type", "payment_method_brand", "payment_method_last4", "stripe_payment_method_country_code", "stripe_billing_country_code", "stripe_customer_country_code", "stripe_terms_of_service_accepted", "is_gift", "gift_code", "purchase_geoip_country_code", "purchase_client_country_code", "eu_withdrawal_waiver_required", "eu_withdrawal_waiver_accepted", "eu_withdrawal_waiver_accepted_at", "eu_withdrawal_waiver_text_version", "created_at", "completed_at" ] } }, "payment_methods": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "type": {"type": "string"}, "card_brand": {"nullable": true, "type": "string"}, "card_last4": {"nullable": true, "type": "string"}, "card_exp_month": {"nullable": true, "type": "number"}, "card_exp_year": {"nullable": true, "type": "number"}, "created": {"type": "number"} }, "required": ["id", "type", "card_brand", "card_last4", "card_exp_month", "card_exp_year", "created"] } }, "stripe_customer_id": {"nullable": true, "type": "string"} }, "required": ["subscription", "payments", "payment_methods", "stripe_customer_id"] }, "AdminSubscriptionResponse": { "type": "object", "properties": { "id": {"type": "string"}, "status": {"type": "string"}, "current_period_start": {"nullable": true, "type": "string"}, "current_period_end": {"nullable": true, "type": "string"}, "cancel_at_period_end": {"type": "boolean"}, "cancel_at": {"nullable": true, "type": "string"}, "canceled_at": {"nullable": true, "type": "string"}, "plan_interval": {"nullable": true, "type": "string"}, "plan_amount_cents": {"nullable": true, "type": "number"}, "plan_currency": {"nullable": true, "type": "string"}, "default_payment_method_id": {"nullable": true, "type": "string"} }, "required": [ "id", "status", "current_period_start", "current_period_end", "cancel_at_period_end", "cancel_at", "canceled_at", "plan_interval", "plan_amount_cents", "plan_currency", "default_payment_method_id" ] }, "AdminBillingCancelImmediatelyRequest": { "type": "object", "properties": {"reason": {"type": "string", "minLength": 1, "maxLength": 512}} }, "AdminInvoiceListResponse": { "type": "object", "properties": { "invoices": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "amount_due": {"type": "number"}, "amount_paid": {"type": "number"}, "currency": {"type": "string"}, "status": {"nullable": true, "type": "string"}, "created": {"type": "number"}, "billing_reason": {"nullable": true, "type": "string"}, "subscription_id": {"nullable": true, "type": "string"}, "payment_type": {"nullable": true, "type": "string"}, "payment_status": {"nullable": true, "type": "string"}, "payment_intent_id": {"nullable": true, "type": "string"}, "charge_id": {"nullable": true, "type": "string"}, "paid_at": {"nullable": true, "type": "string"}, "hosted_invoice_url": {"nullable": true, "type": "string"}, "invoice_pdf": {"nullable": true, "type": "string"} }, "required": [ "id", "amount_due", "amount_paid", "currency", "status", "created", "billing_reason", "subscription_id", "payment_type", "payment_status", "payment_intent_id", "charge_id", "paid_at", "hosted_invoice_url", "invoice_pdf" ] } }, "has_more": {"type": "boolean"} }, "required": ["invoices", "has_more"] }, "AdminPaymentMethodListResponse": { "type": "object", "properties": { "payment_methods": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "type": {"type": "string"}, "card_brand": {"nullable": true, "type": "string"}, "card_last4": {"nullable": true, "type": "string"}, "card_exp_month": {"nullable": true, "type": "number"}, "card_exp_year": {"nullable": true, "type": "number"}, "created": {"type": "number"} }, "required": ["id", "type", "card_brand", "card_last4", "card_exp_month", "card_exp_year", "created"] } } }, "required": ["payment_methods"] }, "AdminPaymentListResponse": { "type": "object", "properties": { "payments": { "type": "array", "items": { "type": "object", "properties": { "checkout_session_id": {"nullable": true, "type": "string"}, "user_id": {"type": "string"}, "stripe_customer_id": {"nullable": true, "type": "string"}, "payment_intent_id": {"nullable": true, "type": "string"}, "resolved_payment_intent_id": {"nullable": true, "type": "string"}, "charge_id": {"nullable": true, "type": "string"}, "subscription_id": {"nullable": true, "type": "string"}, "invoice_id": {"nullable": true, "type": "string"}, "price_id": {"nullable": true, "type": "string"}, "product_type": {"nullable": true, "type": "string"}, "amount_cents": {"type": "number"}, "currency": {"type": "string"}, "status": {"type": "string"}, "stripe_source": {"enum": ["invoice"], "type": "string"}, "refundable_via_payment_intent": {"type": "boolean"}, "refunded_amount_cents": {"type": "number"}, "net_amount_cents": {"type": "number"}, "refunds": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "amount_cents": {"type": "number"}, "currency": {"type": "string"}, "status": {"nullable": true, "type": "string"}, "reason": {"nullable": true, "type": "string"}, "created": {"type": "number"}, "payment_intent_id": {"nullable": true, "type": "string"}, "charge_id": {"nullable": true, "type": "string"} }, "required": [ "id", "amount_cents", "currency", "status", "reason", "created", "payment_intent_id", "charge_id" ] } }, "payment_method_type": {"nullable": true, "type": "string"}, "payment_method_brand": {"nullable": true, "type": "string"}, "payment_method_last4": {"nullable": true, "type": "string"}, "stripe_payment_method_country_code": {"nullable": true, "type": "string"}, "stripe_billing_country_code": {"nullable": true, "type": "string"}, "stripe_customer_country_code": {"nullable": true, "type": "string"}, "stripe_terms_of_service_accepted": {"nullable": true, "type": "boolean"}, "is_gift": {"type": "boolean"}, "gift_code": {"nullable": true, "type": "string"}, "purchase_geoip_country_code": {"nullable": true, "type": "string"}, "purchase_client_country_code": {"nullable": true, "type": "string"}, "eu_withdrawal_waiver_required": {"type": "boolean"}, "eu_withdrawal_waiver_accepted": {"type": "boolean"}, "eu_withdrawal_waiver_accepted_at": {"nullable": true, "type": "string"}, "eu_withdrawal_waiver_text_version": {"nullable": true, "type": "string"}, "created_at": {"type": "string"}, "completed_at": {"nullable": true, "type": "string"} }, "required": [ "checkout_session_id", "user_id", "stripe_customer_id", "payment_intent_id", "resolved_payment_intent_id", "charge_id", "subscription_id", "invoice_id", "price_id", "product_type", "amount_cents", "currency", "status", "stripe_source", "refundable_via_payment_intent", "refunded_amount_cents", "net_amount_cents", "refunds", "payment_method_type", "payment_method_brand", "payment_method_last4", "stripe_payment_method_country_code", "stripe_billing_country_code", "stripe_customer_country_code", "stripe_terms_of_service_accepted", "is_gift", "gift_code", "purchase_geoip_country_code", "purchase_client_country_code", "eu_withdrawal_waiver_required", "eu_withdrawal_waiver_accepted", "eu_withdrawal_waiver_accepted_at", "eu_withdrawal_waiver_text_version", "created_at", "completed_at" ] } } }, "required": ["payments"] }, "AdminBillingRefundRequest": { "type": "object", "properties": { "payment_intent_id": {"type": "string"}, "amount_cents": { "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "reason": {"type": "string", "minLength": 1, "maxLength": 512} }, "required": ["payment_intent_id"] }, "AdminBillingRefundLatestInvoiceCancelResponse": { "type": "object", "properties": { "subscription_id": {"type": "string"}, "invoice_id": {"type": "string"}, "payment_intent_id": {"nullable": true, "type": "string"}, "charge_id": {"nullable": true, "type": "string"}, "refund_policy": {"enum": ["full_refund", "prorated_refund", "cancel_only"], "type": "string"}, "refund_policy_basis": {"enum": ["support_policy", "eu_eea_withdrawal_no_waiver"], "type": "string"}, "refund_id": {"nullable": true, "type": "string"}, "refunded_amount_cents": {"type": "number"}, "invoice_amount_paid_cents": {"type": "number"}, "currency": {"type": "string"}, "cycle_elapsed_days": {"type": "number"}, "purchase_geoip_country_code": {"nullable": true, "type": "string"}, "purchase_client_country_code": {"nullable": true, "type": "string"}, "stripe_payment_method_country_code": {"nullable": true, "type": "string"}, "stripe_billing_country_code": {"nullable": true, "type": "string"}, "stripe_customer_country_code": {"nullable": true, "type": "string"}, "stripe_terms_of_service_accepted": {"nullable": true, "type": "boolean"}, "eu_withdrawal_waiver_required": {"type": "boolean"}, "eu_withdrawal_waiver_accepted": {"type": "boolean"}, "eu_withdrawal_waiver_accepted_at": {"nullable": true, "type": "string"}, "eu_withdrawal_waiver_text_version": {"nullable": true, "type": "string"} }, "required": [ "subscription_id", "invoice_id", "payment_intent_id", "charge_id", "refund_policy", "refund_policy_basis", "refund_id", "refunded_amount_cents", "invoice_amount_paid_cents", "currency", "cycle_elapsed_days", "purchase_geoip_country_code", "purchase_client_country_code", "stripe_payment_method_country_code", "stripe_billing_country_code", "stripe_customer_country_code", "stripe_terms_of_service_accepted", "eu_withdrawal_waiver_required", "eu_withdrawal_waiver_accepted", "eu_withdrawal_waiver_accepted_at", "eu_withdrawal_waiver_text_version" ] }, "AdminBillingRefundLatestInvoiceCancelRequest": { "type": "object", "properties": {"reason": {"type": "string", "minLength": 1, "maxLength": 512}} }, "BulkAddGuildMembersRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "List of user IDs to add as members" } }, "required": ["guild_id", "user_ids"] }, "BulkScheduleUserDeletionRequest": { "type": "object", "properties": { "user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "List of user IDs to schedule deletion for" }, "reason_code": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "Code indicating the reason for deletion" }, "public_reason": {"type": "string", "description": "Public-facing reason for the deletion"}, "days_until_deletion": { "type": "integer", "minimum": 1, "maximum": 365, "format": "int32", "description": "Number of days until the accounts are deleted" } }, "required": ["user_ids", "reason_code"] }, "BulkUpdateGuildFeaturesRequest": { "type": "object", "properties": { "guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "List of guild IDs to update" }, "add_features": { "type": "array", "items": {"$ref": "#/components/schemas/GuildFeatureSchema"}, "maxItems": 100, "description": "Guild features to add to all specified guilds" }, "remove_features": { "type": "array", "items": {"$ref": "#/components/schemas/GuildFeatureSchema"}, "maxItems": 100, "description": "Guild features to remove from all specified guilds" } }, "required": ["guild_ids"] }, "GuildFeatureSchema": { "type": "string", "description": "A guild feature flag Known values: ANIMATED_ICON, ANIMATED_BANNER, BANNER, CLONE_EMOJI_DISABLED, CLONE_STICKER_DISABLED, DETACHED_BANNER, INVITE_SPLASH, INVITES_DISABLED, RAID_DETECTED, TEXT_CHANNEL_FLEXIBLE_NAMES, HIDE_OWNER_CROWN, MORE_EMOJI, MORE_STICKERS, UNLIMITED_EMOJI, UNLIMITED_STICKERS, EXPRESSION_PURGE_ALLOWED, VANITY_URL, DISCOVERABLE, PARTNERED, VERIFIED, VIP_VOICE, VOICE_E2EE, UNAVAILABLE_FOR_EVERYONE, UNAVAILABLE_FOR_EVERYONE_BUT_STAFF, UNAVAILABLE_HIDDEN, VISIONARY, LARGE_GUILD_OVERRIDE, VERY_LARGE_GUILD (other values allowed)" }, "BulkUpdateSuspiciousActivityFlagsRequest": { "type": "object", "properties": { "user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "List of user IDs to update" }, "add_flags": { "type": "array", "items": {"type": "string"}, "maxItems": 32, "description": "Suspicious activity flag names to add to all specified users" }, "remove_flags": { "type": "array", "items": {"type": "string"}, "maxItems": 32, "description": "Suspicious activity flag names to remove from all specified users" } }, "required": ["user_ids"] }, "BulkUpdateUserFlagsRequest": { "type": "object", "properties": { "user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "List of user IDs to update" }, "add_flags": { "type": "array", "items": {"$ref": "#/components/schemas/UserFlags"}, "maxItems": 64, "description": "User flags to add to all specified users" }, "remove_flags": { "type": "array", "items": {"$ref": "#/components/schemas/UserFlags"}, "maxItems": 64, "description": "User flags to remove from all specified users" } }, "required": ["user_ids"] }, "UserFlags": { "type": "string", "format": "int64", "pattern": "^[0-9]+$", "description": "A single user flag value to add or remove" }, "CodesResponse": { "type": "object", "properties": {"codes": {"type": "array", "items": {"type": "string"}}}, "required": ["codes"] }, "GenerateGiftCodesRequest": { "type": "object", "properties": { "count": { "type": "integer", "minimum": 1, "maximum": 100, "format": "int32", "description": "Number of gift codes to generate" }, "duration_type": { "type": "string", "enum": ["days", "weeks", "months", "years"], "description": "Duration unit for the generated gift codes" }, "duration_quantity": { "type": "integer", "minimum": 1, "maximum": 3650, "format": "int32", "description": "Duration quantity for the selected unit. Lifetime gifts are not supported." } }, "required": ["count", "duration_type", "duration_quantity"] }, "DiscoveryAdminPendingApplicationResponse": { "type": "object", "properties": { "guild_id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Guild ID"}, "guild_name": {"type": "string", "description": "Guild name"}, "guild_icon": {"description": "Guild icon hash", "nullable": true, "type": "string"}, "guild_owner_id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Guild owner user ID"}, "guild_owner_username": {"description": "Guild owner username", "nullable": true, "type": "string"}, "guild_owner_global_name": {"description": "Guild owner display name", "nullable": true, "type": "string"}, "guild_owner_discriminator": {"description": "Guild owner discriminator", "nullable": true, "type": "string"}, "guild_member_count": {"type": "number", "description": "Approximate member count"}, "guild_nsfw_level": { "description": "NSFW level of the guild", "nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}] }, "guild_features": {"type": "array", "items": {"type": "string"}, "description": "Guild feature flags"}, "description": {"type": "string", "description": "Discovery description"}, "category_type": {"type": "number", "description": "Discovery category type"}, "primary_language": {"description": "Primary community language", "nullable": true, "type": "string"}, "custom_tags": {"type": "array", "items": {"type": "string"}, "description": "Custom discovery tags"}, "applied_at": {"type": "string", "description": "Application timestamp"} }, "required": [ "guild_id", "guild_name", "guild_icon", "guild_owner_id", "guild_owner_username", "guild_owner_global_name", "guild_owner_discriminator", "guild_member_count", "guild_nsfw_level", "guild_features", "description", "category_type", "primary_language", "custom_tags", "applied_at" ] }, "DiscoveryApplicationResponse": { "type": "object", "properties": { "guild_id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Guild ID"}, "guild_nsfw_level": { "description": "NSFW level of the guild", "nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}] }, "status": {"type": "string", "description": "Application status"}, "description": {"type": "string", "description": "Discovery description"}, "category_type": {"type": "number", "description": "Discovery category type"}, "primary_language": {"description": "Primary community language", "nullable": true, "type": "string"}, "custom_tags": {"type": "array", "items": {"type": "string"}, "description": "Custom discovery tags"}, "applied_at": {"type": "string", "description": "Application timestamp"}, "reviewed_at": {"description": "Review timestamp", "nullable": true, "type": "string"}, "review_reason": {"description": "Review reason (approval/rejection)", "nullable": true, "type": "string"}, "removed_at": {"description": "Removal timestamp", "nullable": true, "type": "string"}, "removal_reason": {"description": "Removal reason", "nullable": true, "type": "string"} }, "required": ["guild_id", "status", "description", "category_type", "custom_tags", "applied_at"] }, "DiscoveryAdminReviewRequest": { "type": "object", "properties": {"reason": {"type": "string", "maxLength": 500, "description": "Review reason"}} }, "DiscoveryAdminRejectRequest": { "type": "object", "properties": { "reason": {"type": "string", "minLength": 1, "maxLength": 500, "description": "Rejection reason"} }, "required": ["reason"] }, "DiscoveryAdminRemoveRequest": { "type": "object", "properties": {"reason": {"type": "string", "minLength": 1, "maxLength": 500, "description": "Removal reason"}}, "required": ["reason"] }, "DiscoveryAdminListedGuildResponse": { "type": "object", "properties": { "guild_id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Guild ID"}, "guild_name": {"type": "string", "description": "Guild name"}, "guild_icon": {"description": "Guild icon hash", "nullable": true, "type": "string"}, "guild_owner_id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Guild owner user ID"}, "guild_owner_username": {"description": "Guild owner username", "nullable": true, "type": "string"}, "guild_owner_global_name": {"description": "Guild owner display name", "nullable": true, "type": "string"}, "guild_owner_discriminator": {"description": "Guild owner discriminator", "nullable": true, "type": "string"}, "guild_member_count": {"type": "number", "description": "Approximate member count"}, "guild_nsfw_level": { "description": "NSFW level of the guild", "nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}] }, "guild_features": {"type": "array", "items": {"type": "string"}, "description": "Guild feature flags"}, "description": {"type": "string", "description": "Discovery description"}, "category_type": {"type": "number", "description": "Discovery category type"}, "primary_language": {"description": "Primary community language", "nullable": true, "type": "string"}, "custom_tags": {"type": "array", "items": {"type": "string"}, "description": "Custom discovery tags"}, "applied_at": {"type": "string", "description": "Application timestamp"}, "approved_at": {"description": "Approval timestamp", "nullable": true, "type": "string"} }, "required": [ "guild_id", "guild_name", "guild_icon", "guild_owner_id", "guild_owner_username", "guild_owner_global_name", "guild_owner_discriminator", "guild_member_count", "guild_nsfw_level", "guild_features", "description", "category_type", "primary_language", "custom_tags", "applied_at", "approved_at" ] }, "GuildMemoryStatsResponse": { "type": "object", "properties": { "guilds": { "type": "array", "items": { "type": "object", "properties": { "node_id": {"type": "string"}, "guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "guild_name": {"type": "string"}, "guild_icon": {"nullable": true, "type": "string"}, "nsfw_level": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}]}, "memory": {"$ref": "#/components/schemas/Int64StringType"}, "member_count": {"$ref": "#/components/schemas/Int32Type"}, "session_count": {"$ref": "#/components/schemas/Int32Type"}, "presence_count": {"$ref": "#/components/schemas/Int32Type"} }, "required": [ "node_id", "guild_id", "guild_name", "guild_icon", "nsfw_level", "memory", "member_count", "session_count", "presence_count" ] }, "maxItems": 1000 } }, "required": ["guilds"] }, "Int64StringType": {"type": "string", "format": "int64", "pattern": "^-?[0-9]+$"}, "Int32Type": {"type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32"}, "GetProcessMemoryStatsRequest": { "type": "object", "properties": {"limit": {"type": "integer", "minimum": 100, "maximum": 1000, "format": "int32"}} }, "ReloadAllGuildsResponse": { "type": "object", "properties": {"count": {"$ref": "#/components/schemas/Int32Type"}}, "required": ["count"] }, "ReloadGuildsRequest": { "type": "object", "properties": { "guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "List of guild IDs to reload" } }, "required": ["guild_ids"] }, "NodeStatsResponse": { "type": "object", "properties": { "status": {"type": "string"}, "sessions": {"$ref": "#/components/schemas/Int32Type"}, "guilds": {"$ref": "#/components/schemas/Int32Type"}, "presences": {"$ref": "#/components/schemas/Int32Type"}, "calls": {"$ref": "#/components/schemas/Int32Type"}, "memory": { "type": "object", "properties": { "total": {"$ref": "#/components/schemas/Int64StringType"}, "processes": {"$ref": "#/components/schemas/Int64StringType"}, "system": {"$ref": "#/components/schemas/Int64StringType"} }, "required": ["total", "processes", "system"] }, "process_count": {"$ref": "#/components/schemas/Int32Type"}, "process_limit": {"$ref": "#/components/schemas/Int32Type"}, "uptime_seconds": {"$ref": "#/components/schemas/Int32Type"}, "node_count": {"$ref": "#/components/schemas/Int32Type"}, "nodes": { "type": "array", "items": { "type": "object", "properties": { "node_id": {"type": "string"}, "status": {"type": "string"}, "sessions": {"$ref": "#/components/schemas/Int32Type"}, "guilds": {"$ref": "#/components/schemas/Int32Type"}, "presences": {"$ref": "#/components/schemas/Int32Type"}, "calls": {"$ref": "#/components/schemas/Int32Type"}, "memory": { "type": "object", "properties": { "total": {"$ref": "#/components/schemas/Int64StringType"}, "processes": {"$ref": "#/components/schemas/Int64StringType"}, "system": {"$ref": "#/components/schemas/Int64StringType"} }, "required": ["total", "processes", "system"] }, "process_count": {"$ref": "#/components/schemas/Int32Type"}, "process_limit": {"$ref": "#/components/schemas/Int32Type"}, "uptime_seconds": {"$ref": "#/components/schemas/Int32Type"} }, "required": [ "node_id", "status", "sessions", "guilds", "presences", "calls", "memory", "process_count", "process_limit", "uptime_seconds" ] }, "maxItems": 1000 } }, "required": [ "status", "sessions", "guilds", "presences", "calls", "memory", "process_count", "process_limit", "uptime_seconds", "node_count", "nodes" ] }, "GatewayVoiceStateCountsResponse": { "type": "object", "properties": { "total_voice_states": {"$ref": "#/components/schemas/Int32Type"}, "regions": { "type": "array", "items": { "type": "object", "properties": { "region_id": {"type": "string"}, "voice_state_count": {"$ref": "#/components/schemas/Int32Type"} }, "required": ["region_id", "voice_state_count"] }, "maxItems": 1000 }, "servers": { "type": "array", "items": { "type": "object", "properties": { "server_id": {"type": "string"}, "voice_state_count": {"$ref": "#/components/schemas/Int32Type"} }, "required": ["server_id", "voice_state_count"] }, "maxItems": 5000 } }, "required": ["total_voice_states", "regions", "servers"] }, "ListGuildAuditLogsResponse": { "type": "object", "properties": { "audit_log_entries": { "type": "array", "items": {"$ref": "#/components/schemas/GuildAuditLogEntryResponse"}, "description": "Array of audit log entries" }, "users": { "type": "array", "items": {"$ref": "#/components/schemas/UserPartialResponse"}, "description": "Users referenced in the audit log entries" }, "webhooks": { "type": "array", "items": {"$ref": "#/components/schemas/AuditLogWebhookResponse"}, "description": "Webhooks referenced in the audit log entries" } }, "required": ["audit_log_entries", "users", "webhooks"] }, "GuildAuditLogEntryResponse": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier for this audit log entry" }, "action_type": {"$ref": "#/components/schemas/AuditLogActionType"}, "user_id": { "description": "The user ID of the user who performed the action", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "target_id": { "description": "The ID of the affected entity (user, channel, role, invite code, etc.)", "nullable": true, "type": "string" }, "reason": {"type": "string", "description": "The reason provided for the action"}, "options": { "type": "object", "properties": { "channel_id": {"type": "string", "description": "Channel ID for relevant actions"}, "count": {"type": "number", "description": "Count of items affected"}, "delete_member_days": { "type": "string", "description": "Number of days of messages to delete on member ban" }, "id": {"type": "string", "description": "ID of the affected entity"}, "integration_type": {"type": "number", "description": "Type of integration"}, "message_id": {"type": "string", "description": "Message ID for relevant actions"}, "members_removed": {"type": "number", "description": "Number of members removed"}, "role_name": {"type": "string", "description": "Name of the role"}, "type": {"type": "number", "description": "Type identifier"}, "inviter_id": {"type": "string", "description": "ID of the user who created the invite"}, "max_age": {"type": "number", "description": "Maximum age of the invite in seconds"}, "max_uses": {"type": "number", "description": "Maximum number of uses for the invite"}, "temporary": {"type": "boolean", "description": "Whether the invite grants temporary membership"}, "uses": {"type": "number", "description": "Number of times the invite has been used"} }, "description": "Additional options depending on action type" }, "changes": { "type": "array", "items": {"$ref": "#/components/schemas/AuditLogChangeSchema"}, "description": "Changes made to the target" } }, "required": ["id", "action_type"] }, "AuditLogActionType": { "type": "integer", "format": "int32", "enum": [ 1, 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 40, 41, 42, 50, 51, 52, 60, 61, 62, 90, 91, 92, 72, 73, 74, 75 ], "description": "The type of action that occurred" }, "AuditLogChangeSchema": { "type": "object", "properties": { "key": {"type": "string", "description": "The field that changed"}, "old_value": { "description": "Value before the change", "nullable": true, "oneOf": [ {"type": "string"}, {"type": "number"}, {"type": "boolean"}, {"type": "array", "items": {"type": "string"}}, {"type": "array", "items": {"type": "number"}}, { "type": "object", "properties": { "added": {"type": "array", "items": {"type": "string"}}, "removed": {"type": "array", "items": {"type": "string"}} }, "required": ["added", "removed"] } ] }, "new_value": { "description": "Value after the change", "nullable": true, "oneOf": [ {"type": "string"}, {"type": "number"}, {"type": "boolean"}, {"type": "array", "items": {"type": "string"}}, {"type": "array", "items": {"type": "number"}}, { "type": "object", "properties": { "added": {"type": "array", "items": {"type": "string"}}, "removed": {"type": "array", "items": {"type": "string"}} }, "required": ["added", "removed"] } ] } }, "required": ["key"] }, "UserPartialResponse": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier (snowflake) for this user" }, "username": {"type": "string", "description": "The username of the user, not unique across the platform"}, "discriminator": {"type": "string", "description": "The four-digit discriminator tag of the user"}, "global_name": {"description": "The display name of the user, if set", "nullable": true, "type": "string"}, "avatar": {"description": "The hash of the user avatar image", "nullable": true, "type": "string"}, "avatar_color": { "description": "The dominant avatar color of the user as an integer", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "bot": {"type": "boolean", "description": "Whether the user is a bot account"}, "system": {"type": "boolean", "description": "Whether the user is an official system user"}, "flags": {"$ref": "#/components/schemas/PublicUserFlags"}, "mention_flags": { "$ref": "#/components/schemas/MentionReplyPreferences", "description": "The user's account-wide reply mention preference" } }, "required": ["id", "username", "discriminator", "global_name", "avatar", "avatar_color", "flags"] }, "PublicUserFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "The public flags on the user account" }, "MentionReplyPreferences": { "type": "integer", "format": "int32", "enum": [0, 1, 2], "description": "Reply mention preference" }, "AuditLogWebhookResponse": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier for this webhook" }, "type": {"$ref": "#/components/schemas/WebhookType"}, "guild_id": { "description": "The guild ID this webhook belongs to", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "channel_id": { "description": "The channel ID this webhook posts to", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "name": {"type": "string", "description": "The name of the webhook"}, "avatar_hash": {"description": "The hash of the webhook avatar", "nullable": true, "type": "string"} }, "required": ["id", "type", "name"] }, "WebhookType": {"type": "integer", "format": "int32", "enum": [1, 2], "description": "The type of webhook"}, "ListGuildAuditLogsRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "limit": {"$ref": "#/components/schemas/Int32Type"}, "before": {"$ref": "#/components/schemas/SnowflakeType"}, "after": {"$ref": "#/components/schemas/SnowflakeType"}, "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "action_type": {"$ref": "#/components/schemas/AuditLogActionType"} }, "required": ["guild_id"] }, "BanGuildMemberRequest": { "type": "object", "properties": { "delete_message_days": { "type": "integer", "minimum": 0, "maximum": 7, "format": "int32", "description": "Number of days of messages to delete from the banned user (0-7)" }, "reason": {"description": "The reason for the ban (max 512 characters)", "nullable": true, "type": "string"}, "ban_duration_seconds": { "type": "integer", "format": "int53", "description": "Duration of the ban in seconds (0 for permanent, or between 60 and 63072000 seconds for a temporary ban)" }, "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "user_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["guild_id", "user_id"] }, "ClearGuildFieldsRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "fields": { "type": "array", "items": { "type": "string", "enum": ["icon", "banner", "splash", "embed_splash"], "description": "Guild image field that can be cleared" }, "maxItems": 10, "description": "List of guild image fields to clear" } }, "required": ["guild_id", "fields"] }, "SuccessResponse": { "type": "object", "properties": { "success": {"type": "boolean", "enum": [true], "description": "Whether the operation succeeded"} }, "required": ["success"] }, "DeleteGuildRequest": { "type": "object", "properties": {"guild_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["guild_id"] }, "ForceAddUserToGuildRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "guild_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["user_id", "guild_id"] }, "KickGuildMemberRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "user_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["guild_id", "user_id"] }, "ListGuildMembersResponse": { "type": "object", "properties": { "members": {"type": "array", "items": {"$ref": "#/components/schemas/GuildMemberResponse"}}, "total": {"$ref": "#/components/schemas/Int32Type"}, "limit": {"$ref": "#/components/schemas/Int32Type"}, "offset": {"$ref": "#/components/schemas/Int32Type"} }, "required": ["members", "total", "limit", "offset"] }, "GuildMemberResponse": { "type": "object", "properties": { "user": {"$ref": "#/components/schemas/UserPartialResponse"}, "nick": {"description": "The nickname of the member in this guild", "nullable": true, "type": "string"}, "avatar": {"description": "The hash of the member guild-specific avatar", "nullable": true, "type": "string"}, "banner": {"description": "The hash of the member guild-specific banner", "nullable": true, "type": "string"}, "accent_color": { "description": "The accent colour of the member guild profile as an integer", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "roles": { "type": "array", "items": {"type": "string"}, "maxItems": 250, "description": "Array of role IDs the member has" }, "joined_at": { "type": "string", "format": "date-time", "description": "ISO8601 timestamp of when the user joined the guild" }, "mute": {"type": "boolean", "description": "Whether the member is muted in voice channels"}, "deaf": {"type": "boolean", "description": "Whether the member is deafened in voice channels"}, "communication_disabled_until": { "description": "ISO8601 timestamp until which the member is timed out", "nullable": true, "type": "string", "format": "date-time" }, "profile_flags": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/GuildMemberProfileFlags"}]}, "mention_flags": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/MentionReplyPreferences", "description": "Per-guild reply mention preference override; NO_PREFERENCE means inherit the user-level mention_flags." } ] } }, "required": ["user", "roles", "joined_at", "mute", "deaf"] }, "GuildMemberProfileFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "Member profile flags" }, "ListGuildMembersRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "limit": {"type": "integer", "minimum": 1, "maximum": 200, "format": "int32"}, "offset": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"} }, "required": ["guild_id"] }, "LookupGuildResponse": { "type": "object", "properties": { "guild": { "nullable": true, "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "owner_id": {"$ref": "#/components/schemas/SnowflakeType"}, "owner_username": {"nullable": true, "type": "string"}, "owner_global_name": {"nullable": true, "type": "string"}, "owner_discriminator": {"nullable": true, "type": "string"}, "name": {"type": "string"}, "vanity_url_code": {"nullable": true, "type": "string"}, "icon": {"nullable": true, "type": "string"}, "banner": {"nullable": true, "type": "string"}, "splash": {"nullable": true, "type": "string"}, "embed_splash": {"nullable": true, "type": "string"}, "features": {"type": "array", "items": {"type": "string"}, "maxItems": 100}, "verification_level": {"$ref": "#/components/schemas/GuildVerificationLevel"}, "mfa_level": {"$ref": "#/components/schemas/GuildMFALevel"}, "nsfw_level": {"$ref": "#/components/schemas/NSFWLevel"}, "nsfw": {"type": "boolean"}, "content_warning_level": {"$ref": "#/components/schemas/ContentWarningLevel"}, "content_warning_text": {"nullable": true, "type": "string"}, "explicit_content_filter": {"$ref": "#/components/schemas/GuildExplicitContentFilter"}, "default_message_notifications": {"$ref": "#/components/schemas/DefaultMessageNotifications"}, "afk_channel_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "afk_timeout": {"$ref": "#/components/schemas/Int32Type"}, "system_channel_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "system_channel_flags": {"$ref": "#/components/schemas/SystemChannelFlags"}, "rules_channel_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "disabled_operations": {"$ref": "#/components/schemas/Int32Type"}, "member_count": {"$ref": "#/components/schemas/Int32Type"}, "channels": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"nullable": true, "type": "string"}, "type": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4, 998, 999], "description": "The type of the channel" }, "position": {"$ref": "#/components/schemas/Int32Type"}, "parent_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "nsfw": {"nullable": true, "type": "boolean"}, "nsfw_override": {"nullable": true, "type": "boolean"}, "content_warning_level": {"$ref": "#/components/schemas/ContentWarningLevel"}, "content_warning_text": {"nullable": true, "type": "string"}, "url": {"nullable": true, "type": "string"} }, "required": ["id", "name", "type", "position", "parent_id", "nsfw", "url"] }, "maxItems": 500 }, "roles": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}, "color": {"$ref": "#/components/schemas/Int32Type"}, "position": {"$ref": "#/components/schemas/Int32Type"}, "permissions": { "type": "string", "format": "int64", "pattern": "^[0-9]+$", "description": "The role permissions bitfield" }, "hoist": {"type": "boolean"}, "mentionable": {"type": "boolean"} }, "required": ["id", "name", "color", "position", "permissions", "hoist", "mentionable"] }, "maxItems": 250 } }, "required": [ "id", "owner_id", "owner_username", "owner_global_name", "owner_discriminator", "name", "vanity_url_code", "icon", "banner", "splash", "embed_splash", "features", "verification_level", "mfa_level", "nsfw_level", "explicit_content_filter", "default_message_notifications", "afk_channel_id", "afk_timeout", "system_channel_id", "system_channel_flags", "rules_channel_id", "disabled_operations", "member_count", "channels", "roles" ] } }, "required": ["guild"] }, "GuildVerificationLevel": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4], "description": "Required verification level for members" }, "GuildMFALevel": { "type": "integer", "format": "int32", "enum": [0, 1], "description": "Required MFA level for moderation actions" }, "ContentWarningLevel": { "type": "integer", "format": "int32", "enum": [0, 1], "description": "The content warning level for a guild, category, or channel" }, "GuildExplicitContentFilter": { "type": "integer", "format": "int32", "enum": [0, 1, 2], "description": "Level of content filtering for explicit media" }, "DefaultMessageNotifications": { "type": "integer", "format": "int32", "enum": [0, 1], "description": "Default notification level for new members" }, "SystemChannelFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "System channel message flags" }, "LookupGuildRequest": { "type": "object", "properties": {"guild_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["guild_id"] }, "ReloadGuildRequest": { "type": "object", "properties": {"guild_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["guild_id"] }, "SearchGuildsResponse": { "type": "object", "properties": { "guilds": {"type": "array", "items": {"$ref": "#/components/schemas/GuildAdminResponse"}}, "total": {"type": "number"} }, "required": ["guilds", "total"] }, "GuildAdminResponse": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier for this guild" }, "name": {"type": "string", "description": "The name of the guild"}, "features": { "type": "array", "items": {"$ref": "#/components/schemas/GuildFeatureSchema"}, "maxItems": 100, "description": "Array of guild feature flags" }, "owner_id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the guild owner"}, "owner_username": {"description": "The username of the guild owner", "nullable": true, "type": "string"}, "owner_global_name": { "description": "The display name of the guild owner, if set", "nullable": true, "type": "string" }, "owner_discriminator": { "description": "The discriminator of the guild owner", "nullable": true, "type": "string" }, "icon": {"description": "The hash of the guild icon", "nullable": true, "type": "string"}, "banner": {"description": "The hash of the guild banner", "nullable": true, "type": "string"}, "member_count": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "The number of members in the guild" }, "nsfw_level": {"$ref": "#/components/schemas/NSFWLevel"}, "nsfw": {"type": "boolean", "description": "Whether the guild is flagged as adult content"}, "content_warning_level": {"$ref": "#/components/schemas/ContentWarningLevel"}, "content_warning_text": { "description": "Custom content warning text shown before entry", "nullable": true, "type": "string" } }, "required": [ "id", "name", "features", "owner_id", "owner_username", "owner_global_name", "owner_discriminator", "icon", "banner", "member_count" ] }, "SearchGuildsRequest": { "type": "object", "properties": { "query": {"type": "string"}, "limit": {"type": "integer", "minimum": 1, "maximum": 200, "format": "int32"}, "offset": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"} } }, "ShutdownGuildRequest": { "type": "object", "properties": {"guild_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["guild_id"] }, "GuildUpdateResponse": { "type": "object", "properties": { "guild": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}, "features": {"type": "array", "items": {"type": "string"}, "maxItems": 100}, "owner_id": {"$ref": "#/components/schemas/SnowflakeType"}, "icon": {"nullable": true, "type": "string"}, "banner": {"nullable": true, "type": "string"}, "member_count": {"$ref": "#/components/schemas/Int32Type"}, "nsfw_level": {"$ref": "#/components/schemas/NSFWLevel"}, "nsfw": {"type": "boolean"}, "content_warning_level": {"$ref": "#/components/schemas/ContentWarningLevel"}, "content_warning_text": {"nullable": true, "type": "string"} }, "required": ["id", "name", "features", "owner_id", "icon", "banner", "member_count"] } }, "required": ["guild"] }, "TransferGuildOwnershipRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "new_owner_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["guild_id", "new_owner_id"] }, "UpdateGuildFeaturesRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "add_features": { "type": "array", "items": {"$ref": "#/components/schemas/GuildFeatureSchema"}, "maxItems": 100, "description": "Guild features to add" }, "remove_features": { "type": "array", "items": {"$ref": "#/components/schemas/GuildFeatureSchema"}, "maxItems": 100, "description": "Guild features to remove" } }, "required": ["guild_id"] }, "UpdateGuildNameRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string", "description": "New name for the guild"} }, "required": ["guild_id", "name"] }, "UpdateGuildSettingsRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "verification_level": { "$ref": "#/components/schemas/GuildVerificationLevel", "description": "Required verification level for guild members" }, "mfa_level": { "$ref": "#/components/schemas/GuildMFALevel", "description": "Required MFA level for moderators" }, "nsfw_level": {"$ref": "#/components/schemas/NSFWLevel", "description": "NSFW content level for the guild"}, "nsfw": {"type": "boolean", "description": "Whether the guild is flagged as adult content"}, "content_warning_level": {"$ref": "#/components/schemas/ContentWarningLevel"}, "content_warning_text": { "description": "Custom content warning text shown before entry", "nullable": true, "type": "string" }, "explicit_content_filter": { "$ref": "#/components/schemas/GuildExplicitContentFilter", "description": "Explicit content filter level" }, "default_message_notifications": { "$ref": "#/components/schemas/DefaultMessageNotifications", "description": "Default notification setting for new members" }, "disabled_operations": {"$ref": "#/components/schemas/GuildOperations"} }, "required": ["guild_id"] }, "GuildOperations": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "Bitmask of disabled guild operations" }, "UpdateGuildVanityRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "vanity_url_code": { "description": "New vanity URL code, or null to remove", "nullable": true, "type": "string" } }, "required": ["guild_id", "vanity_url_code"] }, "ListGuildEmojisResponse": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "emojis": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}, "animated": {"type": "boolean"}, "creator_id": {"$ref": "#/components/schemas/SnowflakeType"}, "media_url": {"type": "string"} }, "required": ["id", "name", "animated", "creator_id", "media_url"] }, "maxItems": 500 } }, "required": ["guild_id", "emojis"] }, "ListGuildStickersResponse": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "stickers": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}, "animated": {"type": "boolean"}, "creator_id": {"$ref": "#/components/schemas/SnowflakeType"}, "media_url": {"type": "string"} }, "required": ["id", "name", "animated", "creator_id", "media_url"] }, "maxItems": 500 } }, "required": ["guild_id", "stickers"] }, "InstanceConfigResponse": { "type": "object", "properties": { "sso": { "type": "object", "properties": { "enabled": {"type": "boolean"}, "enforced": {"type": "boolean"}, "display_name": {"nullable": true, "type": "string"}, "issuer": {"nullable": true, "type": "string"}, "authorization_url": {"nullable": true, "type": "string"}, "token_url": {"nullable": true, "type": "string"}, "userinfo_url": {"nullable": true, "type": "string"}, "jwks_url": {"nullable": true, "type": "string"}, "client_id": {"nullable": true, "type": "string"}, "client_secret_set": {"type": "boolean"}, "scope": {"nullable": true, "type": "string"}, "allowed_domains": {"type": "array", "items": {"type": "string"}, "maxItems": 100}, "auto_provision": {"type": "boolean"}, "redirect_uri": {"nullable": true, "type": "string"} }, "required": [ "enabled", "enforced", "display_name", "issuer", "authorization_url", "token_url", "userinfo_url", "jwks_url", "client_id", "client_secret_set", "scope", "allowed_domains", "auto_provision", "redirect_uri" ] }, "gateway_rollout": {"$ref": "#/components/schemas/GatewayRolloutConfigSchema"}, "registration": { "type": "object", "properties": { "mode": {"type": "string", "enum": ["open", "approval", "closed"], "description": "Registration mode"}, "admin_registration_urls_enabled": {"type": "boolean"}, "urls": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "label": {"nullable": true, "type": "string"}, "created_by_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "created_at": {"type": "string", "format": "date-time"}, "expires_at": {"nullable": true, "type": "string", "format": "date-time"}, "max_uses": { "nullable": true, "type": "integer", "minimum": 1, "maximum": 9007199254740991, "format": "int64" }, "use_count": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"}, "revoked_at": {"nullable": true, "type": "string", "format": "date-time"}, "approval_required": {"type": "boolean"}, "last_used_at": {"nullable": true, "type": "string", "format": "date-time"}, "last_used_by_user_id": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] } }, "required": [ "id", "label", "created_by_user_id", "created_at", "expires_at", "max_uses", "use_count", "revoked_at", "approval_required", "last_used_at", "last_used_by_user_id" ] } }, "pending_registrations": { "type": "array", "items": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "integer", "minimum": 0, "maximum": 9999, "format": "int32"}, "global_name": {"nullable": true, "type": "string"}, "email": {"nullable": true, "type": "string"}, "requested_at": {"type": "string", "format": "date-time"}, "registration_url_id": {"nullable": true, "type": "string"}, "client_ip": {"nullable": true, "type": "string"} }, "required": [ "user_id", "username", "discriminator", "global_name", "email", "requested_at", "registration_url_id", "client_ip" ] } } }, "required": ["mode", "admin_registration_urls_enabled", "urls", "pending_registrations"] }, "self_hosted": {"type": "boolean"}, "app_public": { "type": "object", "properties": { "branding": { "type": "object", "properties": { "product_name": {"type": "string"}, "icon_url": {"nullable": true, "type": "string"}, "symbol_url": {"nullable": true, "type": "string"}, "logo_url": {"nullable": true, "type": "string"}, "wordmark_url": {"nullable": true, "type": "string"}, "favicon_url": {"nullable": true, "type": "string"}, "theme_color": {"nullable": true, "type": "string"} }, "required": [ "product_name", "icon_url", "symbol_url", "logo_url", "wordmark_url", "favicon_url", "theme_color" ] }, "setup": { "type": "object", "properties": {"configured": {"type": "boolean"}}, "required": ["configured"] }, "legal": { "type": "object", "properties": { "terms_url": {"nullable": true, "type": "string"}, "privacy_url": {"nullable": true, "type": "string"} }, "required": ["terms_url", "privacy_url"] }, "registration": { "type": "object", "properties": {"collect_date_of_birth": {"type": "boolean"}}, "required": ["collect_date_of_birth"] } }, "required": ["branding", "setup", "legal", "registration"] }, "policy": { "type": "object", "properties": { "single_community_enabled": {"type": "boolean"}, "single_community_locked": {"type": "boolean"}, "single_community_guild_id": {"nullable": true, "type": "string"}, "direct_messages_disabled": {"type": "boolean"}, "direct_messages_locked": {"type": "boolean"}, "premium_mode": {"enum": ["mirror", "everyone"], "type": "string"}, "services": { "type": "object", "properties": { "gif_enabled": {"nullable": true, "type": "boolean"}, "youtube_enabled": {"nullable": true, "type": "boolean"}, "bluesky_enabled": {"nullable": true, "type": "boolean"} }, "required": ["gif_enabled", "youtube_enabled", "bluesky_enabled"] }, "services_resolved": { "type": "object", "properties": { "gif_enabled": {"type": "boolean"}, "youtube_enabled": {"type": "boolean"}, "bluesky_enabled": {"type": "boolean"} }, "required": ["gif_enabled", "youtube_enabled", "bluesky_enabled"] }, "services_available": { "type": "object", "properties": { "gif": {"type": "boolean"}, "youtube": {"type": "boolean"}, "bluesky": {"type": "boolean"} }, "required": ["gif", "youtube", "bluesky"] } }, "required": [ "single_community_enabled", "single_community_locked", "single_community_guild_id", "direct_messages_disabled", "direct_messages_locked", "premium_mode", "services", "services_resolved", "services_available" ] }, "integrations": { "type": "object", "properties": { "gif": { "type": "object", "properties": { "provider": {"nullable": true, "enum": ["tenor", "klipy"], "type": "string"}, "effective_provider": {"enum": ["tenor", "klipy"], "type": "string"}, "tenor_api_key_set": {"type": "boolean"}, "klipy_api_key_set": {"type": "boolean"}, "effective_available": {"type": "boolean"} }, "required": [ "provider", "effective_provider", "tenor_api_key_set", "klipy_api_key_set", "effective_available" ] }, "youtube": { "type": "object", "properties": {"api_key_set": {"type": "boolean"}, "effective_available": {"type": "boolean"}}, "required": ["api_key_set", "effective_available"] }, "captcha": { "type": "object", "properties": { "provider": {"nullable": true, "enum": ["hcaptcha", "turnstile", "none"], "type": "string"}, "effective_provider": {"enum": ["hcaptcha", "turnstile", "none"], "type": "string"}, "hcaptcha_site_key": {"nullable": true, "type": "string"}, "hcaptcha_secret_key_set": {"type": "boolean"}, "turnstile_site_key": {"nullable": true, "type": "string"}, "turnstile_secret_key_set": {"type": "boolean"}, "effective_enabled": {"type": "boolean"} }, "required": [ "provider", "effective_provider", "hcaptcha_site_key", "hcaptcha_secret_key_set", "turnstile_site_key", "turnstile_secret_key_set", "effective_enabled" ] }, "email": { "type": "object", "properties": { "enabled": {"nullable": true, "type": "boolean"}, "effective_enabled": {"type": "boolean"}, "provider": {"nullable": true, "enum": ["smtp", "none"], "type": "string"}, "effective_provider": {"enum": ["smtp", "none"], "type": "string"}, "from_email": {"nullable": true, "type": "string"}, "from_name": {"nullable": true, "type": "string"}, "smtp": { "type": "object", "properties": { "host": {"nullable": true, "type": "string"}, "port": {"nullable": true, "type": "integer", "minimum": 1, "maximum": 65535, "format": "int32"}, "username": {"nullable": true, "type": "string"}, "password_set": {"type": "boolean"}, "secure": {"nullable": true, "type": "boolean"} }, "required": ["host", "port", "username", "password_set", "secure"] } }, "required": [ "enabled", "effective_enabled", "provider", "effective_provider", "from_email", "from_name", "smtp" ] }, "bluesky": { "type": "object", "properties": { "enabled": {"nullable": true, "type": "boolean"}, "effective_enabled": {"type": "boolean"}, "client_name": {"nullable": true, "type": "string"}, "client_uri": {"nullable": true, "type": "string"}, "logo_uri": {"nullable": true, "type": "string"}, "tos_uri": {"nullable": true, "type": "string"}, "policy_uri": {"nullable": true, "type": "string"}, "key_count": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"} }, "required": [ "enabled", "effective_enabled", "client_name", "client_uri", "logo_uri", "tos_uri", "policy_uri", "key_count" ] } }, "required": ["gif", "youtube", "captcha", "email", "bluesky"] }, "media": { "type": "object", "properties": { "attachment_decay": { "type": "object", "properties": { "enabled": {"nullable": true, "type": "boolean"}, "min_size_mb": {"nullable": true, "type": "number", "minimum": 0, "exclusiveMinimum": true}, "max_size_mb": {"nullable": true, "type": "number", "minimum": 0, "exclusiveMinimum": true}, "max_eligible_size_mb": {"nullable": true, "type": "number", "minimum": 0, "exclusiveMinimum": true}, "min_lifetime_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "max_lifetime_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "curve": {"nullable": true, "type": "number", "minimum": 0, "maximum": 1}, "renew_threshold_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "renew_window_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "effective": { "type": "object", "properties": { "enabled": {"type": "boolean"}, "min_size_mb": {"type": "number", "minimum": 0, "exclusiveMinimum": true}, "max_size_mb": {"type": "number", "minimum": 0, "exclusiveMinimum": true}, "max_eligible_size_mb": {"type": "number", "minimum": 0, "exclusiveMinimum": true}, "min_lifetime_days": { "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "max_lifetime_days": { "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "curve": {"type": "number", "minimum": 0, "maximum": 1}, "renew_threshold_days": { "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "renew_window_days": { "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true } }, "required": [ "enabled", "min_size_mb", "max_size_mb", "max_eligible_size_mb", "min_lifetime_days", "max_lifetime_days", "curve", "renew_threshold_days", "renew_window_days" ] } }, "required": [ "enabled", "min_size_mb", "max_size_mb", "max_eligible_size_mb", "min_lifetime_days", "max_lifetime_days", "curve", "renew_threshold_days", "renew_window_days", "effective" ] } }, "required": ["attachment_decay"] } }, "required": [ "sso", "gateway_rollout", "registration", "self_hosted", "app_public", "policy", "integrations", "media" ] }, "GatewayRolloutConfigSchema": { "type": "object", "properties": { "session_rollout_percentage": {"type": "number", "minimum": 0, "maximum": 100}, "session_rollout_mode": {"enum": ["modulo", "random"], "type": "string"}, "guild_rollout_percentage": {"type": "number", "minimum": 0, "maximum": 100}, "rpc_request_timeout_ms": {"type": "integer", "minimum": 1000, "maximum": 60000, "format": "int32"}, "max_concurrent_session_starts": {"type": "integer", "minimum": 1, "maximum": 10000, "format": "int32"}, "max_concurrent_guild_starts": {"type": "integer", "minimum": 1, "maximum": 10000, "format": "int32"}, "gateway_dispatch_relay_shards": {"type": "integer", "minimum": 1, "maximum": 10000, "format": "int32"}, "gateway_dispatch_relay_max_queue": {"type": "integer", "minimum": 0, "maximum": 1000000, "format": "int32"}, "voice_e2ee_scope": {"enum": ["guild_feature_only", "platform_wide"], "type": "string"}, "voice_reconciliation_v3_percentage": {"type": "number", "minimum": 0, "maximum": 100}, "voice_reconciliation_v3_interval_ms": { "type": "integer", "minimum": 500, "maximum": 60000, "format": "int32" } } }, "BrandingAssetUploadRequest": { "type": "object", "properties": { "kind": {"enum": ["icon", "symbol", "logo", "wordmark", "favicon"], "type": "string"}, "image": {"nullable": true, "type": "string", "maxLength": 16000000} }, "required": ["kind"] }, "InstanceEmailSmtpTestResponse": { "type": "object", "properties": {"ok": {"type": "boolean"}, "error": {"nullable": true, "type": "string"}}, "required": ["ok", "error"] }, "InstanceEmailSmtpTestRequest": { "type": "object", "properties": { "host": {"type": "string", "minLength": 1, "maxLength": 255}, "port": {"type": "integer", "minimum": 1, "maximum": 65535, "format": "int32"}, "username": {"type": "string", "minLength": 1, "maxLength": 320}, "password": {"type": "string", "minLength": 1, "maxLength": 4096}, "secure": {"type": "boolean"} }, "required": ["host", "port", "username", "password"] }, "PendingRegistrationActionRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "CreateRegistrationUrlResponse": { "type": "object", "properties": { "registration_url": { "type": "object", "properties": { "id": {"type": "string"}, "label": {"nullable": true, "type": "string"}, "created_by_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "created_at": {"type": "string", "format": "date-time"}, "expires_at": {"nullable": true, "type": "string", "format": "date-time"}, "max_uses": { "nullable": true, "type": "integer", "minimum": 1, "maximum": 9007199254740991, "format": "int64" }, "use_count": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"}, "revoked_at": {"nullable": true, "type": "string", "format": "date-time"}, "approval_required": {"type": "boolean"}, "last_used_at": {"nullable": true, "type": "string", "format": "date-time"}, "last_used_by_user_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]} }, "required": [ "id", "label", "created_by_user_id", "created_at", "expires_at", "max_uses", "use_count", "revoked_at", "approval_required", "last_used_at", "last_used_by_user_id" ] }, "code": {"type": "string"}, "url": {"type": "string"} }, "required": ["registration_url", "code", "url"] }, "CreateRegistrationUrlRequest": { "type": "object", "properties": { "label": {"nullable": true, "type": "string", "minLength": 1, "maxLength": 120}, "expires_at": {"nullable": true, "type": "string", "format": "date-time"}, "max_uses": {"nullable": true, "type": "integer", "minimum": 1, "maximum": 1000000, "format": "int32"}, "approval_required": {"type": "boolean"} } }, "RegistrationUrlActionRequest": {"type": "object", "properties": {"id": {"type": "string"}}, "required": ["id"]}, "InstanceConfigUpdateRequest": { "type": "object", "properties": { "gateway_rollout": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/GatewayRolloutConfigUpdateRequest"}] }, "registration": { "nullable": true, "type": "object", "properties": { "mode": {"type": "string", "enum": ["open", "approval", "closed"], "description": "Registration mode"}, "admin_registration_urls_enabled": {"type": "boolean"} } }, "sso": { "nullable": true, "type": "object", "properties": { "enabled": {"type": "boolean"}, "enforced": {"type": "boolean"}, "display_name": {"nullable": true, "type": "string"}, "issuer": {"nullable": true, "type": "string"}, "authorization_url": {"nullable": true, "type": "string"}, "token_url": {"nullable": true, "type": "string"}, "userinfo_url": {"nullable": true, "type": "string"}, "jwks_url": {"nullable": true, "type": "string"}, "client_id": {"nullable": true, "type": "string"}, "client_secret": {"nullable": true, "type": "string"}, "scope": {"nullable": true, "type": "string"}, "allowed_domains": {"type": "array", "items": {"type": "string"}, "maxItems": 100}, "auto_provision": {"type": "boolean"} } }, "app_public": { "nullable": true, "type": "object", "properties": { "branding": { "nullable": true, "type": "object", "properties": { "product_name": {"type": "string", "minLength": 1, "maxLength": 80}, "icon_url": {"nullable": true, "type": "string", "maxLength": 2048}, "symbol_url": {"nullable": true, "type": "string", "maxLength": 2048}, "logo_url": {"nullable": true, "type": "string", "maxLength": 2048}, "wordmark_url": {"nullable": true, "type": "string", "maxLength": 2048}, "favicon_url": {"nullable": true, "type": "string", "maxLength": 2048}, "theme_color": {"nullable": true, "type": "string", "maxLength": 64} } }, "setup": {"nullable": true, "type": "object", "properties": {"configured": {"type": "boolean"}}}, "legal": { "nullable": true, "type": "object", "properties": { "terms_url": {"nullable": true, "type": "string", "maxLength": 2048}, "privacy_url": {"nullable": true, "type": "string", "maxLength": 2048} } }, "registration": { "nullable": true, "type": "object", "properties": {"collect_date_of_birth": {"type": "boolean"}} } } }, "integrations": { "nullable": true, "type": "object", "properties": { "gif": { "nullable": true, "type": "object", "properties": { "provider": {"nullable": true, "enum": ["tenor", "klipy"], "type": "string"}, "tenor_api_key": {"nullable": true, "type": "string", "maxLength": 4096}, "klipy_api_key": {"nullable": true, "type": "string", "maxLength": 4096} } }, "youtube": { "nullable": true, "type": "object", "properties": {"api_key": {"nullable": true, "type": "string", "maxLength": 4096}} }, "captcha": { "nullable": true, "type": "object", "properties": { "provider": {"nullable": true, "enum": ["hcaptcha", "turnstile", "none"], "type": "string"}, "hcaptcha_site_key": {"nullable": true, "type": "string", "maxLength": 4096}, "hcaptcha_secret_key": {"nullable": true, "type": "string", "maxLength": 4096}, "turnstile_site_key": {"nullable": true, "type": "string", "maxLength": 4096}, "turnstile_secret_key": {"nullable": true, "type": "string", "maxLength": 4096} } }, "email": { "nullable": true, "type": "object", "properties": { "enabled": {"nullable": true, "type": "boolean"}, "provider": {"nullable": true, "enum": ["smtp", "none"], "type": "string"}, "from_email": {"nullable": true, "type": "string", "maxLength": 320}, "from_name": {"nullable": true, "type": "string", "maxLength": 120}, "smtp": { "nullable": true, "type": "object", "properties": { "host": {"nullable": true, "type": "string", "maxLength": 255}, "port": {"nullable": true, "type": "integer", "minimum": 1, "maximum": 65535, "format": "int32"}, "username": {"nullable": true, "type": "string", "maxLength": 320}, "password": {"nullable": true, "type": "string", "maxLength": 4096}, "secure": {"nullable": true, "type": "boolean"} } } } }, "bluesky": { "nullable": true, "type": "object", "properties": { "enabled": {"nullable": true, "type": "boolean"}, "client_name": {"nullable": true, "type": "string", "maxLength": 120}, "client_uri": {"nullable": true, "type": "string", "maxLength": 2048}, "logo_uri": {"nullable": true, "type": "string", "maxLength": 2048}, "tos_uri": {"nullable": true, "type": "string", "maxLength": 2048}, "policy_uri": {"nullable": true, "type": "string", "maxLength": 2048}, "keys": { "type": "array", "items": { "type": "object", "properties": { "kid": {"type": "string", "minLength": 1, "maxLength": 255}, "private_key": {"nullable": true, "type": "string", "maxLength": 10000} }, "required": ["kid"] }, "maxItems": 8 } } } } }, "media": { "nullable": true, "type": "object", "properties": { "attachment_decay": { "nullable": true, "type": "object", "properties": { "enabled": {"nullable": true, "type": "boolean"}, "min_size_mb": {"nullable": true, "type": "number", "minimum": 0, "exclusiveMinimum": true}, "max_size_mb": {"nullable": true, "type": "number", "minimum": 0, "exclusiveMinimum": true}, "max_eligible_size_mb": {"nullable": true, "type": "number", "minimum": 0, "exclusiveMinimum": true}, "min_lifetime_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "max_lifetime_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "curve": {"nullable": true, "type": "number", "minimum": 0, "maximum": 1}, "renew_threshold_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "renew_window_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true } } } } }, "policy": { "nullable": true, "type": "object", "properties": { "single_community_enabled": {"type": "boolean"}, "single_community_name": {"type": "string", "minLength": 1, "maxLength": 100}, "direct_messages_disabled": {"type": "boolean"}, "premium_mode": {"enum": ["mirror", "everyone"], "type": "string"}, "services": { "nullable": true, "type": "object", "properties": { "gif_enabled": {"nullable": true, "type": "boolean"}, "youtube_enabled": {"nullable": true, "type": "boolean"}, "bluesky_enabled": {"nullable": true, "type": "boolean"} } } } } } }, "GatewayRolloutConfigUpdateRequest": { "type": "object", "properties": { "session_rollout_percentage": {"type": "number", "minimum": 0, "maximum": 100}, "session_rollout_mode": {"enum": ["modulo", "random"], "type": "string"}, "guild_rollout_percentage": {"type": "number", "minimum": 0, "maximum": 100}, "rpc_request_timeout_ms": {"type": "integer", "minimum": 1000, "maximum": 60000, "format": "int32"}, "max_concurrent_session_starts": {"type": "integer", "minimum": 1, "maximum": 10000, "format": "int32"}, "max_concurrent_guild_starts": {"type": "integer", "minimum": 1, "maximum": 10000, "format": "int32"}, "gateway_dispatch_relay_shards": {"type": "integer", "minimum": 1, "maximum": 10000, "format": "int32"}, "gateway_dispatch_relay_max_queue": {"type": "integer", "minimum": 0, "maximum": 1000000, "format": "int32"}, "voice_e2ee_scope": {"enum": ["guild_feature_only", "platform_wide"], "type": "string"}, "voice_reconciliation_v3_percentage": {"type": "number", "minimum": 0, "maximum": 100}, "voice_reconciliation_v3_interval_ms": { "type": "integer", "minimum": 500, "maximum": 60000, "format": "int32" } } }, "ActiveJobsResponseSchema": { "type": "object", "properties": {"jobs": {"type": "array", "items": {"$ref": "#/components/schemas/JobLedgerEntrySchema"}}}, "required": ["jobs"] }, "JobLedgerEntrySchema": { "type": "object", "properties": { "job_id": {"$ref": "#/components/schemas/SnowflakeType"}, "task_type": {"type": "string"}, "status": {"enum": ["queued", "running", "succeeded", "failed", "cancelled", "deadletter"], "type": "string"}, "progress_current": {"nullable": true, "type": "number"}, "progress_total": {"nullable": true, "type": "number"}, "progress_message": {"nullable": true, "type": "string"}, "error_message": {"nullable": true, "type": "string"}, "created_at": {"type": "string", "description": "ISO 8601"}, "started_at": {"nullable": true, "type": "string"}, "completed_at": {"nullable": true, "type": "string"}, "requested_by_user_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "audit_log_reason": {"nullable": true, "type": "string"}, "jet_stream_lane": {"nullable": true, "type": "string"}, "jet_stream_seq": {"nullable": true, "type": "string"}, "attempts": {"type": "integer", "format": "int53"}, "max_attempts": {"type": "integer", "format": "int53"}, "run_at": {"nullable": true, "type": "string"}, "cancel_requested": {"type": "boolean"}, "context_link": {"nullable": true, "type": "string"}, "payload": {"description": "JSON-encoded original payload", "nullable": true, "type": "string"}, "result": {"description": "JSON-encoded result, if any", "nullable": true, "type": "string"} }, "required": [ "job_id", "task_type", "status", "progress_current", "progress_total", "progress_message", "error_message", "created_at", "started_at", "completed_at", "requested_by_user_id", "audit_log_reason", "jet_stream_lane", "jet_stream_seq", "attempts", "max_attempts", "run_at", "cancel_requested", "context_link", "payload", "result" ] }, "CancelJobResponseSchema": { "type": "object", "properties": { "cancelled": { "type": "boolean", "description": "True if a cancel request was recorded; false if the job was already terminal." } }, "required": ["cancelled"] }, "CancelJobRequest": { "type": "object", "properties": {"job_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["job_id"] }, "GetJobResponseSchema": { "type": "object", "properties": {"job": {"$ref": "#/components/schemas/JobLedgerEntrySchema"}}, "required": ["job"] }, "GetJobRequest": { "type": "object", "properties": {"job_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["job_id"] }, "ListJobsResponseSchema": { "type": "object", "properties": { "jobs": {"type": "array", "items": {"$ref": "#/components/schemas/JobLedgerEntrySchema"}}, "next_cursor": { "nullable": true, "type": "object", "properties": { "bucket_day": {"type": "string"}, "created_at": {"type": "string"}, "job_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["bucket_day", "created_at", "job_id"] } }, "required": ["jobs", "next_cursor"] }, "ListJobsRequest": { "type": "object", "properties": { "limit": {"type": "integer", "minimum": 1, "maximum": 200, "format": "int32", "description": "Page size"}, "cursor": { "type": "object", "properties": { "bucket_day": {"type": "string"}, "created_at": {"type": "string"}, "job_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["bucket_day", "created_at", "job_id"], "description": "Cursor returned by a previous page" }, "max_lookback_days": { "type": "integer", "minimum": 1, "maximum": 60, "format": "int32", "description": "How many days back to scan" }, "status": { "enum": ["queued", "running", "succeeded", "failed", "cancelled", "deadletter"], "type": "string", "description": "Filter by job status" }, "task_type": {"type": "string", "description": "Filter by task type"}, "requested_by_user_id": {"$ref": "#/components/schemas/SnowflakeType"} } }, "LimitConfigGetResponse": { "type": "object", "properties": { "limit_config": { "type": "object", "properties": { "traitDefinitions": {"type": "array", "items": {"type": "string"}}, "rules": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string", "minLength": 1, "description": "Unique rule identifier"}, "filters": { "type": "object", "properties": { "traits": { "type": "array", "items": {"type": "string"}, "description": "Trait filters that must match for the rule to apply" }, "guildFeatures": { "type": "array", "items": {"type": "string"}, "description": "Guild feature flags required for the rule to apply" } }, "description": "Optional filters that scope the rule" }, "limits": { "type": "object", "additionalProperties": {"type": "number", "minimum": 0}, "description": "Per-limit key values" }, "modifiedFields": {"type": "array", "items": {"type": "string"}} }, "required": ["id", "limits"] } } }, "required": ["traitDefinitions", "rules"] }, "limit_config_json": {"type": "string"}, "self_hosted": {"type": "boolean"}, "defaults": { "type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "number"}} }, "metadata": { "type": "object", "additionalProperties": { "type": "object", "properties": { "key": {"type": "string"}, "label": {"type": "string"}, "description": {"type": "string"}, "category": {"type": "string"}, "scope": {"type": "string"}, "isToggle": {"type": "boolean"}, "unit": {"enum": ["bytes", "count"], "type": "string"}, "min": {"type": "number"}, "max": {"type": "number"} }, "required": ["key", "label", "description", "category", "scope", "isToggle"] } }, "categories": {"type": "object", "additionalProperties": {"type": "string"}}, "limit_keys": {"type": "array", "items": {"type": "string"}}, "bounds": { "type": "object", "additionalProperties": { "type": "object", "properties": {"min": {"type": "number"}, "max": {"type": "number"}}, "required": ["min", "max"] } } }, "required": [ "limit_config", "limit_config_json", "self_hosted", "defaults", "metadata", "categories", "limit_keys" ] }, "LimitConfigUpdateRequest": { "type": "object", "properties": { "limit_config": { "type": "object", "properties": { "traitDefinitions": { "type": "array", "items": {"type": "string"}, "description": "Trait definitions used by rules" }, "rules": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string", "minLength": 1, "description": "Unique rule identifier"}, "filters": { "type": "object", "properties": { "traits": { "type": "array", "items": {"type": "string"}, "description": "Trait filters that must match for the rule to apply" }, "guildFeatures": { "type": "array", "items": {"type": "string"}, "description": "Guild feature flags required for the rule to apply" } }, "description": "Optional filters that scope the rule" }, "limits": { "type": "object", "additionalProperties": {"type": "number", "minimum": 0}, "description": "Per-limit key values" } }, "required": ["id", "limits"] }, "description": "Limit rules" } }, "required": ["rules"], "description": "New limit configuration snapshot" } }, "required": ["limit_config"] }, "BrowseChannelResponse": { "type": "object", "properties": { "messages": {"type": "array", "items": {"$ref": "#/components/schemas/AdminMessageSchema"}, "maxItems": 100}, "message_responses": { "type": "array", "items": {"$ref": "#/components/schemas/MessageResponseSchema"}, "maxItems": 100 }, "has_more": {"type": "boolean"} }, "required": ["messages", "has_more"] }, "AdminMessageSchema": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "channel_name": {"nullable": true, "type": "string"}, "channel_nsfw": {"nullable": true, "type": "boolean"}, "channel_content_warning_level": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ContentWarningLevel"}] }, "channel_content_warning_text": {"nullable": true, "type": "string"}, "guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "guild_name": {"nullable": true, "type": "string"}, "guild_nsfw_level": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}]}, "guild_nsfw": {"nullable": true, "type": "boolean"}, "guild_content_warning_level": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ContentWarningLevel"}] }, "guild_content_warning_text": {"nullable": true, "type": "string"}, "author_id": {"$ref": "#/components/schemas/SnowflakeType"}, "author_username": {"type": "string"}, "author_global_name": {"nullable": true, "type": "string"}, "author_discriminator": {"type": "string"}, "author_avatar": {"nullable": true, "type": "string"}, "content": {"type": "string"}, "timestamp": {"type": "string"}, "attachments": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "filename": {"type": "string"}, "url": {"type": "string"}, "nsfw": {"nullable": true, "type": "boolean"}, "content_type": {"nullable": true, "type": "string"}, "width": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "height": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "size": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "ncmec_status": { "type": "string", "enum": ["not_submitted", "submitted", "failed"], "description": "NCMEC submission status" }, "ncmec_report_id": {"nullable": true, "type": "string"}, "ncmec_failure_reason": {"nullable": true, "type": "string"} }, "required": [ "id", "filename", "url", "nsfw", "content_type", "width", "height", "ncmec_status", "ncmec_report_id", "ncmec_failure_reason" ] }, "maxItems": 10 }, "user_prior_ncmec_report_ids": {"type": "array", "items": {"type": "string"}, "maxItems": 100} }, "required": [ "id", "channel_id", "channel_name", "channel_nsfw", "guild_id", "guild_name", "guild_nsfw_level", "author_id", "author_username", "author_global_name", "author_discriminator", "author_avatar", "content", "timestamp", "attachments" ] }, "MessageResponseSchema": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier (snowflake) for this message" }, "channel_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the channel this message was sent in" }, "author": {"$ref": "#/components/schemas/UserPartialResponse"}, "webhook_id": { "description": "The ID of the webhook that sent this message", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "type": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4, 5, 6, 7, 19], "description": "The type of message" }, "flags": {"$ref": "#/components/schemas/MessageFlags"}, "content": {"type": "string", "description": "The text content of the message"}, "timestamp": { "type": "string", "format": "date-time", "description": "The ISO 8601 timestamp of when the message was created" }, "edited_timestamp": { "description": "The ISO 8601 timestamp of when the message was last edited", "nullable": true, "type": "string", "format": "date-time" }, "pinned": {"type": "boolean", "description": "Whether the message is pinned"}, "mention_everyone": {"type": "boolean", "description": "Whether the message mentions @everyone"}, "tts": {"type": "boolean", "description": "Whether the message was sent as text-to-speech"}, "mentions": { "type": "array", "items": {"$ref": "#/components/schemas/UserPartialResponse"}, "description": "The users mentioned in the message" }, "mention_roles": { "type": "array", "items": {"type": "string"}, "description": "The role IDs mentioned in the message" }, "mention_channels": { "description": "Channels mentioned in the message that are visible to @everyone", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageChannelMentionResponse"} }, "users": { "description": "Users referenced from non-notifying content, embed, and snapshot text, included for client-side resolution", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/UserPartialResponse"} }, "embeds": { "description": "The embeds attached to the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageEmbedResponse"} }, "attachments": { "description": "The files attached to the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageAttachmentResponse"} }, "stickers": { "description": "The stickers sent with the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageStickerResponse"} }, "nsfw_emojis": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "IDs of custom emojis in this message that are classified as NSFW" }, "reactions": { "description": "The reactions on the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageReactionResponse"} }, "message_reference": { "description": "Reference data for replies or forwards", "nullable": true, "type": "object", "properties": { "channel_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the channel containing the referenced message" }, "message_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the referenced message" }, "guild_id": { "description": "The ID of the guild containing the referenced message", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "type": {"$ref": "#/components/schemas/MessageReferenceType"} }, "required": ["channel_id", "message_id", "type"] }, "message_snapshots": { "description": "Snapshots of forwarded messages", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageSnapshotResponse"} }, "nonce": { "description": "A client-provided value for message deduplication", "nullable": true, "type": "string" }, "call": { "description": "Call information if this message represents a call", "nullable": true, "type": "object", "properties": { "participants": { "type": "array", "items": {"type": "string"}, "description": "The user IDs of participants in the call" }, "ended_timestamp": { "description": "The ISO 8601 timestamp of when the call ended", "nullable": true, "type": "string", "format": "date-time" } }, "required": ["participants"] }, "referenced_message": { "description": "The message that this message is replying to or forwarding", "nullable": true, "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier (snowflake) for this message" }, "channel_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the channel this message was sent in" }, "author": {"$ref": "#/components/schemas/UserPartialResponse"}, "webhook_id": { "description": "The ID of the webhook that sent this message", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "type": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4, 5, 6, 7, 19], "description": "The type of message" }, "flags": {"$ref": "#/components/schemas/MessageFlags"}, "content": {"type": "string", "description": "The text content of the message"}, "timestamp": { "type": "string", "format": "date-time", "description": "The ISO 8601 timestamp of when the message was created" }, "edited_timestamp": { "description": "The ISO 8601 timestamp of when the message was last edited", "nullable": true, "type": "string", "format": "date-time" }, "pinned": {"type": "boolean", "description": "Whether the message is pinned"}, "mention_everyone": {"type": "boolean", "description": "Whether the message mentions @everyone"}, "tts": {"type": "boolean", "description": "Whether the message was sent as text-to-speech"}, "mentions": { "type": "array", "items": {"$ref": "#/components/schemas/UserPartialResponse"}, "description": "The users mentioned in the message" }, "mention_roles": { "type": "array", "items": {"type": "string"}, "description": "The role IDs mentioned in the message" }, "mention_channels": { "description": "Channels mentioned in the message that are visible to @everyone", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageChannelMentionResponse"} }, "users": { "description": "Users referenced from non-notifying content, embed, and snapshot text, included for client-side resolution", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/UserPartialResponse"} }, "embeds": { "description": "The embeds attached to the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageEmbedResponse"} }, "attachments": { "description": "The files attached to the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageAttachmentResponse"} }, "stickers": { "description": "The stickers sent with the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageStickerResponse"} }, "nsfw_emojis": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "IDs of custom emojis in this message that are classified as NSFW" }, "reactions": { "description": "The reactions on the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageReactionResponse"} }, "message_reference": { "description": "Reference data for replies or forwards", "nullable": true, "type": "object", "properties": { "channel_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the channel containing the referenced message" }, "message_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the referenced message" }, "guild_id": { "description": "The ID of the guild containing the referenced message", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "type": {"$ref": "#/components/schemas/MessageReferenceType"} }, "required": ["channel_id", "message_id", "type"] }, "message_snapshots": { "description": "Snapshots of forwarded messages", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageSnapshotResponse"} }, "nonce": { "description": "A client-provided value for message deduplication", "nullable": true, "type": "string" }, "call": { "description": "Call information if this message represents a call", "nullable": true, "type": "object", "properties": { "participants": { "type": "array", "items": {"type": "string"}, "description": "The user IDs of participants in the call" }, "ended_timestamp": { "description": "The ISO 8601 timestamp of when the call ended", "nullable": true, "type": "string", "format": "date-time" } }, "required": ["participants"] } }, "required": [ "id", "channel_id", "author", "type", "flags", "content", "timestamp", "pinned", "mention_everyone", "tts", "mentions", "mention_roles" ] } }, "required": [ "id", "channel_id", "author", "type", "flags", "content", "timestamp", "pinned", "mention_everyone", "tts", "mentions", "mention_roles" ] }, "MessageFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "Message flags bitfield" }, "MessageChannelMentionResponse": { "type": "object", "properties": { "id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the mentioned channel"}, "name": {"type": "string", "description": "The name of the mentioned channel"}, "type": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "The type of the mentioned channel" } }, "required": ["id", "name", "type"] }, "MessageEmbedResponse": { "type": "object", "properties": { "type": { "type": "string", "description": "The type of embed (e.g., rich, image, video, gifv, article, link)" }, "url": {"description": "The URL of the embed", "nullable": true, "type": "string", "format": "uri"}, "title": {"description": "The title of the embed", "nullable": true, "type": "string"}, "color": { "description": "The color code of the embed sidebar", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "timestamp": { "description": "The ISO 8601 timestamp of the embed content", "nullable": true, "type": "string", "format": "date-time" }, "description": {"description": "The description of the embed", "nullable": true, "type": "string"}, "author": { "description": "The author information of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedAuthorResponse"}] }, "image": { "description": "The image of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "thumbnail": { "description": "The thumbnail of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "footer": { "description": "The footer of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedFooterResponse"}] }, "fields": { "description": "The fields of the embed", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/EmbedFieldResponse"} }, "provider": { "description": "The provider of the embed (e.g., YouTube, Twitter)", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedAuthorResponse"}] }, "video": { "description": "The video of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "audio": { "description": "The audio of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "html": { "description": "Sanitized oEmbed HTML for trusted specialized embed renderers", "nullable": true, "type": "string" }, "html_width": { "description": "The preferred width of sanitized oEmbed HTML", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "html_height": { "description": "The preferred height of sanitized oEmbed HTML", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "nsfw": {"description": "Whether the embed is flagged as NSFW", "nullable": true, "type": "boolean"}, "children": { "description": "Internal nested embeds generated by unfurlers", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageEmbedChildResponse"}, "maxItems": 1 } }, "required": ["type"] }, "EmbedAuthorResponse": { "type": "object", "properties": { "name": {"type": "string", "description": "The name of the author"}, "url": {"description": "The URL of the author", "nullable": true, "type": "string", "format": "uri"}, "icon_url": { "description": "The URL of the author icon", "nullable": true, "type": "string", "format": "uri" }, "proxy_icon_url": { "description": "The proxied URL of the author icon", "nullable": true, "type": "string", "format": "uri" } }, "required": ["name"] }, "EmbedMediaResponse": { "type": "object", "properties": { "url": {"type": "string", "description": "The URL of the media"}, "proxy_url": { "description": "The proxied URL of the media", "nullable": true, "type": "string", "format": "uri" }, "content_type": {"description": "The MIME type of the media", "nullable": true, "type": "string"}, "content_hash": {"description": "The hash of the media content", "nullable": true, "type": "string"}, "width": { "description": "The width of the media in pixels", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "height": { "description": "The height of the media in pixels", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "description": {"description": "The description of the media", "nullable": true, "type": "string"}, "placeholder": { "description": "The base64 encoded placeholder image for lazy loading", "nullable": true, "type": "string" }, "duration": { "description": "The duration of the media in seconds", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "flags": {"$ref": "#/components/schemas/EmbedMediaFlags"} }, "required": ["url", "flags"] }, "EmbedMediaFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "The bitwise flags for this media" }, "EmbedFooterResponse": { "type": "object", "properties": { "text": {"type": "string", "description": "The footer text"}, "icon_url": { "description": "The URL of the footer icon", "nullable": true, "type": "string", "format": "uri" }, "proxy_icon_url": { "description": "The proxied URL of the footer icon", "nullable": true, "type": "string", "format": "uri" } }, "required": ["text"] }, "EmbedFieldResponse": { "type": "object", "properties": { "name": {"type": "string", "description": "The name of the field"}, "value": {"type": "string", "description": "The value of the field"}, "inline": {"type": "boolean", "description": "Whether the field should be displayed inline"} }, "required": ["name", "value", "inline"] }, "MessageEmbedChildResponse": { "type": "object", "properties": { "type": { "type": "string", "description": "The type of embed (e.g., rich, image, video, gifv, article, link)" }, "url": {"description": "The URL of the embed", "nullable": true, "type": "string", "format": "uri"}, "title": {"description": "The title of the embed", "nullable": true, "type": "string"}, "color": { "description": "The color code of the embed sidebar", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "timestamp": { "description": "The ISO 8601 timestamp of the embed content", "nullable": true, "type": "string", "format": "date-time" }, "description": {"description": "The description of the embed", "nullable": true, "type": "string"}, "author": { "description": "The author information of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedAuthorResponse"}] }, "image": { "description": "The image of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "thumbnail": { "description": "The thumbnail of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "footer": { "description": "The footer of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedFooterResponse"}] }, "fields": { "description": "The fields of the embed", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/EmbedFieldResponse"} }, "provider": { "description": "The provider of the embed (e.g., YouTube, Twitter)", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedAuthorResponse"}] }, "video": { "description": "The video of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "audio": { "description": "The audio of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "html": { "description": "Sanitized oEmbed HTML for trusted specialized embed renderers", "nullable": true, "type": "string" }, "html_width": { "description": "The preferred width of sanitized oEmbed HTML", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "html_height": { "description": "The preferred height of sanitized oEmbed HTML", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "nsfw": {"description": "Whether the embed is flagged as NSFW", "nullable": true, "type": "boolean"} }, "required": ["type"] }, "MessageAttachmentResponse": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier for this attachment" }, "filename": {"type": "string", "description": "The name of the attached file"}, "title": {"description": "The title of the attachment", "nullable": true, "type": "string"}, "description": {"description": "The description of the attachment", "nullable": true, "type": "string"}, "content_type": {"description": "The MIME type of the attachment", "nullable": true, "type": "string"}, "content_hash": {"description": "The hash of the attachment content", "nullable": true, "type": "string"}, "size": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "The size of the attachment in bytes" }, "url": {"description": "The URL of the attachment", "nullable": true, "type": "string"}, "proxy_url": {"description": "The proxied URL of the attachment", "nullable": true, "type": "string"}, "width": { "description": "The width of the attachment in pixels (for images/videos)", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "height": { "description": "The height of the attachment in pixels (for images/videos)", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "placeholder": { "description": "The base64 encoded placeholder image for lazy loading", "nullable": true, "type": "string" }, "flags": {"$ref": "#/components/schemas/MessageAttachmentFlags"}, "nsfw": {"description": "Whether the attachment is flagged as NSFW", "nullable": true, "type": "boolean"}, "duration": { "description": "The duration of the media in seconds", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "waveform": {"description": "The base64 encoded audio waveform data", "nullable": true, "type": "string"}, "expires_at": { "description": "The ISO 8601 timestamp when the attachment URL expires", "nullable": true, "type": "string" }, "expired": {"description": "Whether the attachment URL has expired", "nullable": true, "type": "boolean"} }, "required": ["id", "filename", "size", "flags"] }, "MessageAttachmentFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "Attachment flags" }, "MessageStickerResponse": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier of the sticker" }, "name": {"type": "string", "description": "The name of the sticker"}, "animated": {"type": "boolean", "description": "Whether the sticker is animated"}, "nsfw": {"type": "boolean", "description": "Whether this sticker is classified as NSFW"} }, "required": ["id", "name", "animated"] }, "MessageReactionResponse": { "type": "object", "properties": { "emoji": { "type": "object", "properties": { "id": { "description": "The ID of the custom emoji (null for Unicode emojis)", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "name": { "type": "string", "description": "The name of the emoji (or Unicode character for standard emojis)" }, "animated": {"description": "Whether the emoji is animated", "nullable": true, "type": "boolean"} }, "required": ["name"], "description": "The emoji used for the reaction" }, "count": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "The total number of times this reaction has been used" }, "me": { "description": "Whether the current user has reacted with this emoji", "nullable": true, "type": "boolean", "enum": [true] } }, "required": ["emoji", "count"] }, "MessageReferenceType": { "type": "integer", "format": "int32", "enum": [0, 1], "description": "The type of message reference" }, "MessageSnapshotResponse": { "type": "object", "properties": { "content": {"description": "The text content of the snapshot", "nullable": true, "type": "string"}, "timestamp": { "type": "string", "format": "date-time", "description": "The ISO 8601 timestamp of when the original message was created" }, "edited_timestamp": { "description": "The ISO 8601 timestamp of when the original message was last edited", "nullable": true, "type": "string", "format": "date-time" }, "mentions": { "description": "The user IDs mentioned in the snapshot", "nullable": true, "type": "array", "items": {"type": "string"} }, "mention_roles": { "description": "The role IDs mentioned in the snapshot", "nullable": true, "type": "array", "items": {"type": "string"} }, "mention_channels": { "description": "Channels mentioned in the snapshot that are visible to @everyone", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageChannelMentionResponse"} }, "embeds": { "description": "The embeds included in the snapshot", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageEmbedResponse"} }, "attachments": { "description": "The attachments included in the snapshot", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageAttachmentResponse"} }, "stickers": { "description": "The stickers included in the snapshot", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageStickerResponse"} }, "type": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4, 5, 6, 7, 19], "description": "The type of message" }, "flags": {"$ref": "#/components/schemas/MessageFlags"} }, "required": ["timestamp", "type", "flags"] }, "BrowseChannelRequest": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "before": {"$ref": "#/components/schemas/SnowflakeType"}, "after": {"$ref": "#/components/schemas/SnowflakeType"}, "limit": {"type": "integer", "minimum": 1, "maximum": 100, "format": "int32"} }, "required": ["channel_id"] }, "DeleteMessageResponse": { "type": "object", "properties": {"success": {"type": "boolean", "enum": [true]}}, "required": ["success"] }, "DeleteMessageRequest": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "message_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["channel_id", "message_id"] }, "DeleteAllUserMessagesResponse": { "type": "object", "properties": { "success": {"type": "boolean", "enum": [true]}, "dry_run": {"type": "boolean"}, "channel_count": {"$ref": "#/components/schemas/Int32Type"}, "message_count": {"$ref": "#/components/schemas/Int32Type"}, "job_id": {"type": "string"} }, "required": ["success", "dry_run", "channel_count", "message_count"] }, "DeleteAllUserMessagesRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "dry_run": {"type": "boolean"}}, "required": ["user_id"] }, "LookupMessageResponse": { "type": "object", "properties": { "messages": {"type": "array", "items": {"$ref": "#/components/schemas/AdminMessageSchema"}, "maxItems": 100}, "message_responses": { "type": "array", "items": {"$ref": "#/components/schemas/MessageResponseSchema"}, "maxItems": 100 }, "message_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]} }, "required": ["messages", "message_id"] }, "LookupMessageRequest": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "message_id": {"$ref": "#/components/schemas/SnowflakeType"}, "context_limit": {"type": "integer", "minimum": 1, "maximum": 100, "format": "int32"} }, "required": ["channel_id", "message_id"] }, "LookupMessageByAttachmentRequest": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "attachment_id": {"$ref": "#/components/schemas/SnowflakeType"}, "filename": {"type": "string"}, "context_limit": {"type": "integer", "minimum": 1, "maximum": 100, "format": "int32"} }, "required": ["channel_id", "attachment_id", "filename"] }, "NcmecAttachmentSubmitResultResponse": { "type": "object", "properties": { "success": {"type": "boolean", "enum": [true]}, "ncmec_report_id": {"type": "string"}, "audit_log_reason": {"type": "string"} }, "required": ["success", "ncmec_report_id", "audit_log_reason"] }, "ReportAttachmentToNcmecRequest": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "message_id": {"$ref": "#/components/schemas/SnowflakeType"}, "attachment_id": {"$ref": "#/components/schemas/SnowflakeType"}, "filename": {"type": "string"}, "source_report_id": {"$ref": "#/components/schemas/SnowflakeType"}, "reporter_full_name": {"type": "string", "minLength": 1, "maxLength": 200}, "confirmed_viewed": {"type": "boolean", "enum": [true]} }, "required": ["channel_id", "message_id", "attachment_id", "filename", "reporter_full_name", "confirmed_viewed"] }, "SearchChannelMessagesResponse": { "type": "object", "properties": { "messages": {"type": "array", "items": {"$ref": "#/components/schemas/AdminMessageSchema"}, "maxItems": 100}, "message_responses": { "type": "array", "items": {"$ref": "#/components/schemas/MessageResponseSchema"}, "maxItems": 100 }, "total": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"} }, "required": ["messages", "total"] }, "SearchChannelMessagesRequest": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "query": {"type": "string", "minLength": 1, "maxLength": 200}, "limit": {"type": "integer", "minimum": 1, "maximum": 100, "format": "int32"} }, "required": ["channel_id", "query"] }, "MessageShredResponse": { "type": "object", "properties": { "success": {"type": "boolean", "enum": [true]}, "job_id": {"type": "string"}, "requested": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"} }, "required": ["success", "job_id"] }, "MessageShredRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "entries": { "type": "array", "items": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "message_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["channel_id", "message_id"] }, "minItems": 1, "maxItems": 1000 } }, "required": ["user_id", "entries"] }, "MessageShredStatusResponse": { "oneOf": [ { "type": "object", "properties": {"status": {"type": "string", "enum": ["not_found"]}}, "required": ["status"] }, { "type": "object", "properties": { "status": { "type": "string", "enum": ["in_progress", "completed", "failed"], "description": "Current message shred job status" }, "requested": {"$ref": "#/components/schemas/Int32Type"}, "total": {"$ref": "#/components/schemas/Int32Type"}, "processed": {"$ref": "#/components/schemas/Int32Type"}, "skipped": {"$ref": "#/components/schemas/Int32Type"}, "started_at": {"type": "string"}, "completed_at": {"type": "string"}, "failed_at": {"type": "string"}, "error": {"type": "string"} }, "required": ["status", "requested", "total", "processed", "skipped"] } ] }, "MessageShredStatusRequest": { "type": "object", "properties": {"job_id": {"type": "string"}}, "required": ["job_id"] }, "ListReportsResponse": { "type": "object", "properties": { "reports": {"type": "array", "items": {"$ref": "#/components/schemas/ReportAdminResponseSchema"}} }, "required": ["reports"] }, "ReportAdminResponseSchema": { "type": "object", "properties": { "report_id": {"$ref": "#/components/schemas/SnowflakeType"}, "reporter_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "reporter_tag": {"nullable": true, "type": "string"}, "reporter_username": {"nullable": true, "type": "string"}, "reporter_global_name": {"nullable": true, "type": "string"}, "reporter_discriminator": {"nullable": true, "type": "string"}, "reporter_email": {"nullable": true, "type": "string"}, "reporter_full_legal_name": {"nullable": true, "type": "string"}, "reporter_country_of_residence": {"nullable": true, "type": "string"}, "reported_at": {"type": "string"}, "status": {"$ref": "#/components/schemas/ReportStatus"}, "report_type": {"$ref": "#/components/schemas/ReportType"}, "category": {"nullable": true, "type": "string"}, "additional_info": {"nullable": true, "type": "string"}, "reported_user_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "reported_user_tag": {"nullable": true, "type": "string"}, "reported_user_username": {"nullable": true, "type": "string"}, "reported_user_global_name": {"nullable": true, "type": "string"}, "reported_user_discriminator": {"nullable": true, "type": "string"}, "reported_user_avatar_hash": {"nullable": true, "type": "string"}, "reported_guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "reported_guild_name": {"nullable": true, "type": "string"}, "reported_guild_icon_hash": {"nullable": true, "type": "string"}, "reported_message_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "reported_channel_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "reported_channel_name": {"nullable": true, "type": "string"}, "reported_channel_nsfw": {"nullable": true, "type": "boolean"}, "reported_guild_invite_code": {"nullable": true, "type": "string"}, "reported_guild_nsfw_level": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}]}, "reported_guild_nsfw": {"nullable": true, "type": "boolean"}, "reported_guild_content_warning_level": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ContentWarningLevel"}] }, "reported_guild_content_warning_text": {"nullable": true, "type": "string"}, "reported_channel_nsfw_override": {"nullable": true, "type": "boolean"}, "reported_channel_content_warning_level": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ContentWarningLevel"}] }, "reported_channel_content_warning_text": {"nullable": true, "type": "string"}, "reported_channel_effective_nsfw": {"nullable": true, "type": "boolean"}, "reported_channel_effective_content_warning_level": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ContentWarningLevel"}] }, "reported_channel_effective_content_warning_text": {"nullable": true, "type": "string"}, "resolved_at": {"nullable": true, "type": "string"}, "resolved_by_admin_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "public_comment": {"nullable": true, "type": "string"}, "mutual_dm_channel_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "message_context": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "channel_nsfw": {"nullable": true, "type": "boolean"}, "channel_content_warning_level": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ContentWarningLevel"}] }, "channel_content_warning_text": {"nullable": true, "type": "string"}, "guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "guild_nsfw_level": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}]}, "guild_nsfw": {"nullable": true, "type": "boolean"}, "guild_content_warning_level": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ContentWarningLevel"}] }, "guild_content_warning_text": {"nullable": true, "type": "string"}, "content": {"type": "string"}, "timestamp": {"type": "string"}, "attachments": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "filename": {"type": "string"}, "url": {"type": "string"}, "nsfw": {"nullable": true, "type": "boolean"}, "content_type": {"nullable": true, "type": "string"}, "width": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "height": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "size": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "ncmec_status": { "type": "string", "enum": ["not_submitted", "submitted", "failed"], "description": "NCMEC submission status" }, "ncmec_report_id": {"nullable": true, "type": "string"}, "ncmec_failure_reason": {"nullable": true, "type": "string"} }, "required": [ "id", "filename", "url", "nsfw", "content_type", "width", "height", "ncmec_status", "ncmec_report_id", "ncmec_failure_reason" ] } }, "author_id": {"$ref": "#/components/schemas/SnowflakeType"}, "author_username": {"type": "string"}, "author_global_name": {"nullable": true, "type": "string"}, "author_discriminator": {"type": "string"}, "author_avatar": {"nullable": true, "type": "string"}, "user_prior_ncmec_report_ids": {"type": "array", "items": {"type": "string"}, "maxItems": 100} }, "required": [ "id", "channel_id", "channel_nsfw", "guild_id", "guild_nsfw_level", "content", "timestamp", "attachments", "author_id", "author_username", "author_global_name", "author_discriminator", "author_avatar" ] } }, "message_responses": {"type": "array", "items": {"$ref": "#/components/schemas/MessageResponseSchema"}} }, "required": [ "report_id", "reporter_id", "reporter_tag", "reporter_username", "reporter_global_name", "reporter_discriminator", "reporter_email", "reporter_full_legal_name", "reporter_country_of_residence", "reported_at", "status", "report_type", "category", "additional_info", "reported_user_id", "reported_user_tag", "reported_user_username", "reported_user_global_name", "reported_user_discriminator", "reported_user_avatar_hash", "reported_guild_id", "reported_guild_name", "reported_guild_icon_hash", "reported_message_id", "reported_channel_id", "reported_channel_name", "reported_channel_nsfw", "reported_guild_invite_code", "reported_guild_nsfw_level", "resolved_at", "resolved_by_admin_id", "public_comment" ] }, "ReportStatus": {"type": "integer", "format": "int32", "enum": [0, 1], "description": "The status of the report"}, "ReportType": { "type": "integer", "format": "int32", "enum": [0, 1, 2], "description": "The type of entity being reported" }, "ListReportsRequest": { "type": "object", "properties": { "status": {"$ref": "#/components/schemas/ReportStatus"}, "limit": { "type": "integer", "minimum": 1, "maximum": 200, "format": "int32", "description": "Maximum number of reports to return" }, "offset": { "type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64", "description": "Number of reports to skip" } } }, "ResolveReportResponse": { "type": "object", "properties": { "report_id": {"$ref": "#/components/schemas/SnowflakeType"}, "status": {"$ref": "#/components/schemas/ReportStatus"}, "resolved_at": {"nullable": true, "type": "string"}, "public_comment": {"nullable": true, "type": "string"} }, "required": ["report_id", "status", "resolved_at", "public_comment"] }, "ResolveReportRequest": { "type": "object", "properties": { "report_id": {"$ref": "#/components/schemas/SnowflakeType"}, "public_comment": {"type": "string", "description": "Public comment to include with the resolution"} }, "required": ["report_id"] }, "SearchReportsResponse": { "type": "object", "properties": { "reports": {"type": "array", "items": {"$ref": "#/components/schemas/ReportAdminResponseSchema"}}, "total": {"type": "number"}, "offset": {"type": "number"}, "limit": {"type": "number"} }, "required": ["reports", "total", "offset", "limit"] }, "SearchReportsRequest": { "type": "object", "properties": { "query": {"type": "string", "description": "Search query string"}, "limit": { "type": "integer", "minimum": 1, "maximum": 200, "format": "int32", "description": "Maximum number of entries to return" }, "offset": { "type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64", "description": "Number of entries to skip" }, "reporter_id": {"$ref": "#/components/schemas/SnowflakeType"}, "status": {"$ref": "#/components/schemas/ReportStatus"}, "report_type": {"$ref": "#/components/schemas/ReportType"}, "category": {"type": "string", "description": "Filter by report category"}, "reported_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "reported_guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "reported_channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "guild_context_id": {"$ref": "#/components/schemas/SnowflakeType"}, "resolved_by_admin_id": {"$ref": "#/components/schemas/SnowflakeType"}, "sort_by": { "type": "string", "enum": ["createdAt", "reportedAt", "resolvedAt"], "description": "Field to sort reports by" }, "sort_order": {"type": "string", "enum": ["asc", "desc"], "description": "Sort order direction"} } }, "RefreshSearchIndexResponse": { "type": "object", "properties": {"success": {"type": "boolean", "enum": [true]}, "job_id": {"type": "string"}}, "required": ["success", "job_id"] }, "RefreshSearchIndexRequest": { "type": "object", "properties": { "index_type": { "type": "string", "enum": [ "guilds", "users", "reports", "audit_logs", "channel_messages", "guild_members", "favorite_memes", "discovery" ], "description": "Type of search index to refresh" }, "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "user_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["index_type"] }, "IndexRefreshStatusResponse": { "oneOf": [ { "type": "object", "properties": {"status": {"type": "string", "enum": ["not_found"], "description": "Job was not found"}}, "required": ["status"] }, { "type": "object", "properties": { "status": { "type": "string", "enum": ["in_progress", "completed", "failed"], "description": "Current status of the index refresh job" }, "index_type": {"type": "string", "description": "Type of index being refreshed"}, "total": {"type": "number", "description": "Total number of items to index"}, "indexed": {"type": "number", "description": "Number of items indexed so far"}, "started_at": {"type": "string", "description": "ISO 8601 timestamp when the job started"}, "completed_at": {"type": "string", "description": "ISO 8601 timestamp when the job completed"}, "failed_at": {"type": "string", "description": "ISO 8601 timestamp when the job failed"}, "error": {"type": "string", "description": "Error message if the job failed"} }, "required": ["status", "index_type"] } ] }, "GetIndexRefreshStatusRequest": { "type": "object", "properties": {"job_id": {"type": "string", "description": "ID of the index refresh job to check"}}, "required": ["job_id"] }, "SuspiciousEmailDomainRequest": { "type": "object", "properties": { "domain": { "type": "string", "minLength": 1, "maxLength": 253, "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-.]*\\.[a-zA-Z]{2,}$", "description": "Email domain to flag as suspicious (e.g. mail.ru). Registrants from this domain will be required to verify a phone number." } }, "required": ["domain"] }, "SendSystemDmResponse": { "type": "object", "properties": { "recipient_count": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "Number of recipients the worker job was queued to deliver to" } }, "required": ["recipient_count"] }, "SendSystemDmRequest": { "type": "object", "properties": { "content": { "type": "string", "minLength": 1, "maxLength": 4000, "description": "Message content to send to each recipient" }, "user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "minItems": 1, "maxItems": 10000, "description": "Recipient user IDs. Each receives the same content as a system DM." } }, "required": ["content", "user_ids"] }, "HeapSnapshotResponse": { "type": "object", "properties": { "success": {"type": "boolean", "enum": [true]}, "filename": {"type": "string", "description": "Name of the heap snapshot file"}, "size_bytes": {"type": "number", "description": "Size of the heap snapshot in bytes"} }, "required": ["success", "filename", "size_bytes"] }, "UserMutationResponse": { "type": "object", "properties": {"user": {"$ref": "#/components/schemas/UserAdminResponseSchema"}}, "required": ["user"] }, "UserAdminResponseSchema": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"$ref": "#/components/schemas/Int32Type"}, "global_name": {"nullable": true, "type": "string"}, "bot": {"type": "boolean"}, "system": {"type": "boolean"}, "flags": {"$ref": "#/components/schemas/UserFlags"}, "premium_flags": {"$ref": "#/components/schemas/PremiumFlags"}, "avatar": {"nullable": true, "type": "string"}, "banner": {"nullable": true, "type": "string"}, "bio": {"nullable": true, "type": "string"}, "pronouns": {"nullable": true, "type": "string"}, "accent_color": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "email": {"nullable": true, "type": "string"}, "email_verified": {"type": "boolean"}, "email_bounced": {"type": "boolean"}, "has_verified_phone": {"type": "boolean"}, "date_of_birth": {"nullable": true, "type": "string"}, "locale": {"nullable": true, "type": "string"}, "premium_type": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "premium_since": {"nullable": true, "type": "string"}, "premium_until": {"nullable": true, "type": "string"}, "premium_grace_ends_at": {"nullable": true, "type": "string"}, "premium_lifetime_sequence": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "suspicious_activity_flags": {"$ref": "#/components/schemas/SuspiciousActivityFlags"}, "temp_banned_until": {"nullable": true, "type": "string"}, "pending_deletion_at": {"nullable": true, "type": "string"}, "pending_bulk_message_deletion_at": {"nullable": true, "type": "string"}, "deletion_reason_code": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "deletion_public_reason": {"nullable": true, "type": "string"}, "acls": {"type": "array", "items": {"type": "string"}, "maxItems": 100}, "traits": {"type": "array", "items": {"type": "string"}, "maxItems": 100}, "has_totp": {"type": "boolean"}, "authenticator_types": {"type": "array", "items": {"$ref": "#/components/schemas/Int32Type"}, "maxItems": 10}, "last_active_at": {"nullable": true, "type": "string"}, "last_active_ip": {"nullable": true, "type": "string"}, "last_active_ip_reverse": {"nullable": true, "type": "string"}, "last_active_location": {"nullable": true, "type": "string"} }, "required": [ "id", "username", "discriminator", "global_name", "bot", "system", "flags", "premium_flags", "avatar", "banner", "bio", "pronouns", "accent_color", "email", "email_verified", "email_bounced", "has_verified_phone", "date_of_birth", "locale", "premium_type", "premium_since", "premium_until", "premium_grace_ends_at", "premium_lifetime_sequence", "suspicious_activity_flags", "temp_banned_until", "pending_deletion_at", "pending_bulk_message_deletion_at", "deletion_reason_code", "deletion_public_reason", "acls", "traits", "has_totp", "authenticator_types", "last_active_at", "last_active_ip", "last_active_ip_reverse", "last_active_location" ] }, "PremiumFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "A single premium flag value to add or remove" }, "SuspiciousActivityFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "Bitmask of suspicious activity flags that triggered the disable" }, "CancelBulkMessageDeletionRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "DisableMfaRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "ChangeDobRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "date_of_birth": {"type": "string", "description": "New date of birth in YYYY-MM-DD format"} }, "required": ["user_id", "date_of_birth"] }, "ChangeEmailRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "email": {"$ref": "#/components/schemas/EmailType"} }, "required": ["user_id", "email"] }, "ListUserChangeLogResponseSchema": { "type": "object", "properties": { "entries": { "type": "array", "items": { "type": "object", "properties": { "event_id": {"type": "string"}, "field": {"type": "string"}, "old_value": {"nullable": true, "type": "string"}, "new_value": {"nullable": true, "type": "string"}, "reason": {"nullable": true, "type": "string"}, "actor_user_id": {"nullable": true, "type": "string"}, "event_at": {"type": "string"} }, "required": ["event_id", "field", "old_value", "new_value", "reason", "actor_user_id", "event_at"] }, "maxItems": 200 }, "next_page_token": {"nullable": true, "type": "string"} }, "required": ["entries", "next_page_token"] }, "ListUserChangeLogRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "limit": { "type": "integer", "minimum": 1, "maximum": 200, "format": "int32", "description": "Maximum number of entries to return" }, "page_token": {"type": "string", "description": "Pagination token for the next page of results"} }, "required": ["user_id"] }, "ChangeUsernameRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"$ref": "#/components/schemas/UsernameType"}, "discriminator": {"$ref": "#/components/schemas/Int32Type"} }, "required": ["user_id", "username"] }, "UsernameType": {"type": "string", "minLength": 1, "maxLength": 32, "pattern": "^[a-zA-Z0-9_]+$"}, "ClearUserFieldsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "fields": { "type": "array", "items": { "type": "string", "enum": ["avatar", "banner", "bio", "pronouns", "global_name"], "description": "User profile field that can be cleared" }, "maxItems": 10, "description": "List of profile fields to clear" } }, "required": ["user_id", "fields"] }, "DeleteWebAuthnCredentialRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "credential_id": {"type": "string", "description": "ID of the WebAuthn credential to delete"} }, "required": ["user_id", "credential_id"] }, "DisableForSuspiciousActivityRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "flags": {"$ref": "#/components/schemas/SuspiciousActivityFlags"} }, "required": ["user_id", "flags"] }, "ListUserDmChannelsResponse": { "type": "object", "properties": { "channels": { "type": "array", "items": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "channel_type": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "channel_nsfw": {"nullable": true, "type": "boolean"}, "guild_nsfw_level": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}]}, "recipient_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 100 }, "recipients": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "string"}, "global_name": {"nullable": true, "type": "string"}, "avatar": {"nullable": true, "type": "string"} }, "required": ["id", "username", "discriminator", "global_name", "avatar"] }, "maxItems": 100 }, "last_message_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "is_open": {"type": "boolean"}, "name": {"nullable": true, "type": "string"}, "icon": {"nullable": true, "type": "string"}, "owner_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]} }, "required": [ "channel_id", "channel_type", "channel_nsfw", "guild_nsfw_level", "recipient_ids", "recipients", "last_message_id", "is_open", "name", "icon", "owner_id" ] }, "maxItems": 200 } }, "required": ["channels"] }, "ListUserDmChannelsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "before": {"$ref": "#/components/schemas/SnowflakeType"}, "after": {"$ref": "#/components/schemas/SnowflakeType"}, "limit": { "type": "integer", "minimum": 1, "maximum": 200, "format": "int32", "description": "Maximum number of DM channels to return" } }, "required": ["user_id"] }, "ListUserGroupDmChannelsResponse": { "type": "object", "properties": { "channels": { "type": "array", "items": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "channel_type": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "channel_nsfw": {"nullable": true, "type": "boolean"}, "guild_nsfw_level": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}]}, "recipient_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 100 }, "recipients": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "string"}, "global_name": {"nullable": true, "type": "string"}, "avatar": {"nullable": true, "type": "string"} }, "required": ["id", "username", "discriminator", "global_name", "avatar"] }, "maxItems": 100 }, "last_message_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "is_open": {"type": "boolean"}, "name": {"nullable": true, "type": "string"}, "icon": {"nullable": true, "type": "string"}, "owner_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]} }, "required": [ "channel_id", "channel_type", "channel_nsfw", "guild_nsfw_level", "recipient_ids", "recipients", "last_message_id", "is_open", "name", "icon", "owner_id" ] }, "maxItems": 500 } }, "required": ["channels"] }, "ListUserGroupDmChannelsRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "ListUserGuildsResponse": { "type": "object", "properties": {"guilds": {"type": "array", "items": {"$ref": "#/components/schemas/GuildAdminResponse"}}}, "required": ["guilds"] }, "ListUserGuildsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "before": {"$ref": "#/components/schemas/SnowflakeType"}, "after": {"$ref": "#/components/schemas/SnowflakeType"}, "limit": {"type": "integer", "minimum": 1, "maximum": 200, "format": "int32"}, "with_counts": {"type": "boolean"} }, "required": ["user_id"] }, "ListUserRelationshipsResponse": { "type": "object", "properties": { "friends": { "type": "array", "items": {"$ref": "#/components/schemas/AdminRelationshipEntrySchema"}, "maxItems": 10000 }, "incoming_requests": { "type": "array", "items": {"$ref": "#/components/schemas/AdminRelationshipEntrySchema"}, "maxItems": 10000 }, "outgoing_requests": { "type": "array", "items": {"$ref": "#/components/schemas/AdminRelationshipEntrySchema"}, "maxItems": 10000 }, "blocked": { "type": "array", "items": {"$ref": "#/components/schemas/AdminRelationshipEntrySchema"}, "maxItems": 10000 } }, "required": ["friends", "incoming_requests", "outgoing_requests", "blocked"] }, "AdminRelationshipEntrySchema": { "type": "object", "properties": { "target_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "category": {"$ref": "#/components/schemas/RelationshipCategoryEnum"}, "nickname": {"nullable": true, "type": "string"}, "since": {"nullable": true, "type": "string"}, "target": { "nullable": true, "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "string"}, "global_name": {"nullable": true, "type": "string"}, "avatar": {"nullable": true, "type": "string"} }, "required": ["id", "username", "discriminator", "global_name", "avatar"] } }, "required": ["target_user_id", "category", "nickname", "since", "target"] }, "RelationshipCategoryEnum": { "enum": ["friend", "incoming_request", "outgoing_request", "blocked"], "type": "string" }, "ListUserRelationshipsRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "ListUserSessionsResponse": { "type": "object", "properties": { "sessions": { "type": "array", "items": { "type": "object", "properties": { "session_id_hash": {"type": "string", "description": "Hashed session identifier (base64url)"}, "created_at": {"type": "string", "description": "ISO timestamp when the session was created"}, "approx_last_used_at": { "type": "string", "description": "ISO timestamp of the session last usage (approximate)" }, "client_ip": {"type": "string", "description": "Client IP address"}, "client_ip_reverse": { "description": "Reverse DNS hostname for the client IP (PTR), if available", "nullable": true, "type": "string" }, "client_os": { "description": "Client operating system, if detected", "nullable": true, "type": "string" }, "client_platform": {"description": "Client platform, if detected", "nullable": true, "type": "string"}, "client_location": { "description": "Approximate geo location label for the client IP, if available", "nullable": true, "type": "string" }, "deleted_at": { "description": "ISO timestamp when the session was terminated, or null if still active", "nullable": true, "type": "string" } }, "required": [ "session_id_hash", "created_at", "approx_last_used_at", "client_ip", "client_ip_reverse", "client_os", "client_platform", "client_location", "deleted_at" ] } } }, "required": ["sessions"] }, "ListUserSessionsRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "WebAuthnCredentialListResponse": { "type": "array", "items": {"$ref": "#/components/schemas/WebAuthnCredentialResponse"} }, "WebAuthnCredentialResponse": { "type": "object", "properties": { "id": {"type": "string", "description": "The credential ID"}, "name": {"type": "string", "description": "User-assigned name for the credential"}, "created_at": {"type": "string", "description": "When the credential was registered"}, "last_used_at": {"description": "When the credential was last used", "nullable": true, "type": "string"} }, "required": ["id", "name", "created_at", "last_used_at"] }, "ListWebAuthnCredentialsRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "LookupUserResponse": { "type": "object", "properties": {"users": {"type": "array", "items": {"$ref": "#/components/schemas/UserAdminResponseSchema"}}}, "required": ["users"] }, "LookupUserRequest": { "oneOf": [ {"type": "object", "properties": {"query": {"type": "string"}}, "required": ["query"]}, { "type": "object", "properties": { "user_ids": {"type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 100} }, "required": ["user_ids"] } ] }, "AdminUsersMeResponse": { "type": "object", "properties": {"user": {"$ref": "#/components/schemas/UserAdminResponseSchema"}}, "required": ["user"] }, "RemoveUserRelationshipRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "target_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "category": { "enum": ["friend", "incoming_request", "outgoing_request", "blocked"], "type": "string", "description": "Which relationship to remove. Friend and outgoing_request also remove the mirror entry on the target user." } }, "required": ["user_id", "target_user_id", "category"] }, "RemoveUserRelationshipsResponse": { "type": "object", "properties": {"removed_count": {"$ref": "#/components/schemas/Int32Type"}}, "required": ["removed_count"] }, "RemoveUserRelationshipsByCategoryRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "category": { "enum": ["friend", "incoming_request", "outgoing_request", "blocked"], "type": "string", "description": "Category of relationships to remove for this user" } }, "required": ["user_id", "category"] }, "ResendVerificationEmailRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "ScheduleAccountDeletionRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "reason_code": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "Code indicating the reason for deletion" }, "public_reason": {"type": "string", "description": "Public-facing reason for the deletion"}, "days_until_deletion": { "type": "integer", "minimum": 1, "maximum": 365, "format": "int32", "description": "Number of days until the account is deleted" } }, "required": ["user_id", "reason_code"] }, "SearchUsersResponse": { "type": "object", "properties": { "users": {"type": "array", "items": {"$ref": "#/components/schemas/UserAdminResponseSchema"}}, "total": {"type": "number"} }, "required": ["users", "total"] }, "SearchUsersRequest": { "type": "object", "properties": { "query": {"type": "string"}, "email": {"type": "string"}, "last_active_ip": {"type": "string"}, "limit": {"type": "integer", "minimum": 1, "maximum": 200, "format": "int32"}, "offset": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"} } }, "SendPasswordResetRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "SetUserAclsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "acls": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "List of access control permissions to assign" } }, "required": ["user_id", "acls"] }, "SetUserBotStatusRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "bot": {"type": "boolean", "description": "Whether the user should be marked as a bot"} }, "required": ["user_id", "bot"] }, "SetUserSystemStatusRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "system": {"type": "boolean", "description": "Whether the user should be marked as a system user"} }, "required": ["user_id", "system"] }, "SetUserTraitsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "traits": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "List of traits to assign to the user" } }, "required": ["user_id", "traits"] }, "TempBanUserRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "duration_hours": { "type": "integer", "minimum": 0, "maximum": 8760, "format": "int32", "description": "Duration of the ban in hours. Use 0 for a permanent ban (until manually unbanned)." }, "reason": {"type": "string", "description": "Reason for the temporary ban"} }, "required": ["user_id", "duration_hours"] }, "TerminateSessionsResponse": { "type": "object", "properties": {"terminated_count": {"$ref": "#/components/schemas/Int32Type"}}, "required": ["terminated_count"] }, "TerminateSessionsRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "UpdateUserFlagsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "add_flags": { "type": "array", "items": {"$ref": "#/components/schemas/UserFlags"}, "maxItems": 64, "description": "User flags to add" }, "remove_flags": { "type": "array", "items": {"$ref": "#/components/schemas/UserFlags"}, "maxItems": 64, "description": "User flags to remove" } }, "required": ["user_id"] }, "UpdateHasVerifiedPhoneRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "has_verified_phone": { "type": "boolean", "description": "Whether the user should be treated as having completed phone verification" } }, "required": ["user_id", "has_verified_phone"] }, "UpdatePremiumFlagsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "add_flags": { "type": "array", "items": {"$ref": "#/components/schemas/PremiumFlags"}, "maxItems": 64, "description": "Premium flags to add" }, "remove_flags": { "type": "array", "items": {"$ref": "#/components/schemas/PremiumFlags"}, "maxItems": 64, "description": "Premium flags to remove" } }, "required": ["user_id"] }, "UpdateSuspiciousActivityFlagsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "flags": {"$ref": "#/components/schemas/SuspiciousActivityFlags"} }, "required": ["user_id", "flags"] }, "VerifyUserEmailRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "BanUserAvatarResponseSchema": { "type": "object", "properties": {"hash_short": {"type": "string"}}, "required": ["hash_short"] }, "BanUserAvatarRequest": { "type": "object", "properties": {"reason": {"type": "string"}, "notes": {"type": "string"}} }, "VoiceDiagnosticsObjectListResponse": { "type": "object", "properties": { "bucket": {"type": "string", "description": "Diagnostics S3 bucket"}, "objects": { "type": "array", "items": { "type": "object", "properties": { "key": {"type": "string", "description": "S3 object key"}, "session_id": {"type": "string", "description": "Voice diagnostics session id"}, "start_ns": { "type": "string", "description": "First client event timestamp in the object, in nanoseconds" }, "end_ns": { "type": "string", "description": "Last client event timestamp in the object, in nanoseconds" }, "last_modified": { "description": "S3 object last-modified timestamp", "nullable": true, "type": "string", "format": "date-time" } }, "required": ["key", "session_id", "start_ns", "end_ns", "last_modified"] }, "description": "Matching diagnostics objects" } }, "required": ["bucket", "objects"] }, "CreateVoiceRegionResponse": { "type": "object", "properties": { "region": { "type": "object", "properties": { "id": {"type": "string", "description": "Unique identifier for the voice region"}, "name": {"type": "string", "description": "Display name of the voice region"}, "emoji": {"type": "string", "description": "Emoji representing the region"}, "latitude": {"type": "number", "description": "Geographic latitude coordinate"}, "longitude": {"type": "number", "description": "Geographic longitude coordinate"}, "is_default": {"type": "boolean", "description": "Whether this is the default region"}, "vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this region" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this region" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this region" }, "created_at": { "description": "ISO 8601 timestamp when the region was created", "nullable": true, "type": "string" }, "updated_at": { "description": "ISO 8601 timestamp when the region was last updated", "nullable": true, "type": "string" } }, "required": [ "id", "name", "emoji", "latitude", "longitude", "is_default", "vip_only", "required_guild_features", "allowed_guild_ids", "allowed_user_ids", "created_at", "updated_at" ], "description": "Created voice region" } }, "required": ["region"] }, "CreateVoiceRegionRequest": { "type": "object", "properties": { "id": {"type": "string", "description": "Unique identifier for the voice region"}, "name": {"type": "string", "description": "Display name of the voice region"}, "emoji": {"type": "string", "description": "Emoji representing the region"}, "latitude": {"type": "number", "description": "Geographic latitude coordinate"}, "longitude": {"type": "number", "description": "Geographic longitude coordinate"}, "is_default": {"type": "boolean", "description": "Whether this is the default region"}, "vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this region" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this region" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this region" } }, "required": ["id", "name", "emoji", "latitude", "longitude"] }, "DeleteVoiceResponse": { "type": "object", "properties": {"success": {"type": "boolean", "description": "Whether the deletion was successful"}}, "required": ["success"] }, "DeleteVoiceRegionRequest": { "type": "object", "properties": {"id": {"type": "string", "description": "ID of the voice region to delete"}}, "required": ["id"] }, "GetVoiceRegionResponse": { "type": "object", "properties": { "region": { "description": "Voice region details or null if not found", "nullable": true, "type": "object", "properties": { "id": {"type": "string", "description": "Unique identifier for the voice region"}, "name": {"type": "string", "description": "Display name of the voice region"}, "emoji": {"type": "string", "description": "Emoji representing the region"}, "latitude": {"type": "number", "description": "Geographic latitude coordinate"}, "longitude": {"type": "number", "description": "Geographic longitude coordinate"}, "is_default": {"type": "boolean", "description": "Whether this is the default region"}, "vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this region" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this region" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this region" }, "created_at": { "description": "ISO 8601 timestamp when the region was created", "nullable": true, "type": "string" }, "updated_at": { "description": "ISO 8601 timestamp when the region was last updated", "nullable": true, "type": "string" }, "servers": { "type": "array", "items": {"$ref": "#/components/schemas/VoiceServerAdminResponse"}, "description": "Voice servers in this region" } }, "required": [ "id", "name", "emoji", "latitude", "longitude", "is_default", "vip_only", "required_guild_features", "allowed_guild_ids", "allowed_user_ids", "created_at", "updated_at" ] } }, "required": ["region"] }, "VoiceServerAdminResponse": { "type": "object", "properties": { "region_id": {"type": "string", "description": "ID of the region this server belongs to"}, "server_id": {"type": "string", "description": "Unique identifier for the voice server"}, "endpoint": { "type": "string", "format": "uri", "description": "Client signal WebSocket endpoint URL for the voice server" }, "latitude": { "description": "Optional geographic latitude override for this server", "nullable": true, "type": "number" }, "longitude": { "description": "Optional geographic longitude override for this server", "nullable": true, "type": "number" }, "is_active": {"type": "boolean", "description": "Whether the server is currently active"}, "vip_only": {"type": "boolean", "description": "Whether this server is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this server" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this server" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this server" }, "created_at": { "description": "ISO 8601 timestamp when the server was created", "nullable": true, "type": "string" }, "updated_at": { "description": "ISO 8601 timestamp when the server was last updated", "nullable": true, "type": "string" } }, "required": [ "region_id", "server_id", "endpoint", "latitude", "longitude", "is_active", "vip_only", "required_guild_features", "allowed_guild_ids", "allowed_user_ids", "created_at", "updated_at" ] }, "GetVoiceRegionRequest": { "type": "object", "properties": { "id": {"type": "string", "description": "ID of the voice region to retrieve"}, "include_servers": {"type": "boolean", "description": "Whether to include voice servers in the response"} }, "required": ["id"] }, "ListVoiceRegionsResponse": { "type": "object", "properties": { "regions": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string", "description": "Unique identifier for the voice region"}, "name": {"type": "string", "description": "Display name of the voice region"}, "emoji": {"type": "string", "description": "Emoji representing the region"}, "latitude": {"type": "number", "description": "Geographic latitude coordinate"}, "longitude": {"type": "number", "description": "Geographic longitude coordinate"}, "is_default": {"type": "boolean", "description": "Whether this is the default region"}, "vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this region" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this region" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this region" }, "created_at": { "description": "ISO 8601 timestamp when the region was created", "nullable": true, "type": "string" }, "updated_at": { "description": "ISO 8601 timestamp when the region was last updated", "nullable": true, "type": "string" }, "servers": { "type": "array", "items": {"$ref": "#/components/schemas/VoiceServerAdminResponse"}, "description": "Voice servers in this region" } }, "required": [ "id", "name", "emoji", "latitude", "longitude", "is_default", "vip_only", "required_guild_features", "allowed_guild_ids", "allowed_user_ids", "created_at", "updated_at" ] }, "description": "List of voice regions" } }, "required": ["regions"] }, "ListVoiceRegionsRequest": { "type": "object", "properties": { "include_servers": {"type": "boolean", "description": "Whether to include voice servers in the response"} } }, "UpdateVoiceRegionResponse": { "type": "object", "properties": { "region": { "type": "object", "properties": { "id": {"type": "string", "description": "Unique identifier for the voice region"}, "name": {"type": "string", "description": "Display name of the voice region"}, "emoji": {"type": "string", "description": "Emoji representing the region"}, "latitude": {"type": "number", "description": "Geographic latitude coordinate"}, "longitude": {"type": "number", "description": "Geographic longitude coordinate"}, "is_default": {"type": "boolean", "description": "Whether this is the default region"}, "vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this region" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this region" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this region" }, "created_at": { "description": "ISO 8601 timestamp when the region was created", "nullable": true, "type": "string" }, "updated_at": { "description": "ISO 8601 timestamp when the region was last updated", "nullable": true, "type": "string" } }, "required": [ "id", "name", "emoji", "latitude", "longitude", "is_default", "vip_only", "required_guild_features", "allowed_guild_ids", "allowed_user_ids", "created_at", "updated_at" ], "description": "Updated voice region" } }, "required": ["region"] }, "UpdateVoiceRegionRequest": { "type": "object", "properties": { "id": {"type": "string", "description": "Unique identifier for the voice region"}, "name": {"type": "string", "description": "Display name of the voice region"}, "emoji": {"type": "string", "description": "Emoji representing the region"}, "latitude": {"type": "number", "description": "Geographic latitude coordinate"}, "longitude": {"type": "number", "description": "Geographic longitude coordinate"}, "is_default": {"type": "boolean", "description": "Whether this is the default region"}, "vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this region" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this region" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this region" } }, "required": ["id"] }, "CreateVoiceServerResponse": { "type": "object", "properties": { "server": { "type": "object", "properties": { "region_id": {"type": "string", "description": "ID of the region this server belongs to"}, "server_id": {"type": "string", "description": "Unique identifier for the voice server"}, "endpoint": { "type": "string", "format": "uri", "description": "Client signal WebSocket endpoint URL for the voice server" }, "latitude": { "description": "Optional geographic latitude override for this server", "nullable": true, "type": "number" }, "longitude": { "description": "Optional geographic longitude override for this server", "nullable": true, "type": "number" }, "is_active": {"type": "boolean", "description": "Whether the server is currently active"}, "vip_only": {"type": "boolean", "description": "Whether this server is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this server" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this server" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this server" }, "created_at": { "description": "ISO 8601 timestamp when the server was created", "nullable": true, "type": "string" }, "updated_at": { "description": "ISO 8601 timestamp when the server was last updated", "nullable": true, "type": "string" } }, "required": [ "region_id", "server_id", "endpoint", "latitude", "longitude", "is_active", "vip_only", "required_guild_features", "allowed_guild_ids", "allowed_user_ids", "created_at", "updated_at" ], "description": "Created voice server" } }, "required": ["server"] }, "CreateVoiceServerRequest": { "type": "object", "properties": { "region_id": {"type": "string", "description": "ID of the region this server belongs to"}, "server_id": {"type": "string", "description": "Unique identifier for the voice server"}, "endpoint": { "type": "string", "format": "uri", "description": "Client signal WebSocket endpoint URL for the voice server" }, "api_key": {"type": "string", "description": "API key for authenticating with the voice server"}, "api_secret": {"type": "string", "description": "API secret for authenticating with the voice server"}, "latitude": { "description": "Optional geographic latitude override for this server", "nullable": true, "type": "number" }, "longitude": { "description": "Optional geographic longitude override for this server", "nullable": true, "type": "number" }, "is_active": {"type": "boolean", "description": "Whether the server is currently active"}, "vip_only": {"type": "boolean", "description": "Whether this server is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this server" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this server" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this server" } }, "required": ["region_id", "server_id", "endpoint", "api_key", "api_secret"] }, "DeleteVoiceServerRequest": { "type": "object", "properties": { "region_id": {"type": "string", "description": "ID of the region the server belongs to"}, "server_id": {"type": "string", "description": "ID of the voice server to delete"} }, "required": ["region_id", "server_id"] }, "GetVoiceServerResponse": { "type": "object", "properties": { "server": { "description": "Voice server details or null if not found", "nullable": true, "allOf": [{"$ref": "#/components/schemas/VoiceServerAdminResponse"}] } }, "required": ["server"] }, "GetVoiceServerRequest": { "type": "object", "properties": { "region_id": {"type": "string", "description": "ID of the region the server belongs to"}, "server_id": {"type": "string", "description": "ID of the voice server to retrieve"} }, "required": ["region_id", "server_id"] }, "ListVoiceServersResponse": { "type": "object", "properties": { "servers": { "type": "array", "items": {"$ref": "#/components/schemas/VoiceServerAdminResponse"}, "description": "List of voice servers" } }, "required": ["servers"] }, "ListVoiceServersRequest": { "type": "object", "properties": {"region_id": {"type": "string", "description": "ID of the region to list servers for"}}, "required": ["region_id"] }, "UpdateVoiceServerResponse": { "type": "object", "properties": { "server": { "type": "object", "properties": { "region_id": {"type": "string", "description": "ID of the region this server belongs to"}, "server_id": {"type": "string", "description": "Unique identifier for the voice server"}, "endpoint": { "type": "string", "format": "uri", "description": "Client signal WebSocket endpoint URL for the voice server" }, "latitude": { "description": "Optional geographic latitude override for this server", "nullable": true, "type": "number" }, "longitude": { "description": "Optional geographic longitude override for this server", "nullable": true, "type": "number" }, "is_active": {"type": "boolean", "description": "Whether the server is currently active"}, "vip_only": {"type": "boolean", "description": "Whether this server is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this server" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this server" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this server" }, "created_at": { "description": "ISO 8601 timestamp when the server was created", "nullable": true, "type": "string" }, "updated_at": { "description": "ISO 8601 timestamp when the server was last updated", "nullable": true, "type": "string" } }, "required": [ "region_id", "server_id", "endpoint", "latitude", "longitude", "is_active", "vip_only", "required_guild_features", "allowed_guild_ids", "allowed_user_ids", "created_at", "updated_at" ], "description": "Updated voice server" } }, "required": ["server"] }, "UpdateVoiceServerRequest": { "type": "object", "properties": { "region_id": {"type": "string", "description": "ID of the region this server belongs to"}, "server_id": {"type": "string", "description": "Unique identifier for the voice server"}, "endpoint": { "type": "string", "format": "uri", "description": "Client signal WebSocket endpoint URL for the voice server" }, "api_key": {"type": "string", "description": "API key for authenticating with the voice server"}, "api_secret": {"type": "string", "description": "API secret for authenticating with the voice server"}, "latitude": { "description": "Optional geographic latitude override for this server", "nullable": true, "type": "number" }, "longitude": { "description": "Optional geographic longitude override for this server", "nullable": true, "type": "number" }, "is_active": {"type": "boolean", "description": "Whether the server is currently active"}, "vip_only": {"type": "boolean", "description": "Whether this server is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this server" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this server" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this server" } }, "required": ["region_id", "server_id"] } }, "securitySchemes": { "botToken": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "Bot token: `Authorization: Bot `. This is the primary authentication method for bot applications." }, "oauth2Token": { "type": "oauth2", "description": "OAuth2 access token: `Authorization: Bearer `.", "flows": { "authorizationCode": { "authorizationUrl": "/oauth2/authorize", "tokenUrl": "/oauth2/token", "scopes": { "identify": "Read basic user identity information.", "email": "Read the user email address.", "guilds": "Read guild membership information for the current user.", "connections": "Read linked third-party account connections for the current user.", "bot": "Add a bot user to a guild." } } } }, "bearerToken": { "type": "http", "scheme": "bearer", "description": "Bearer-form token: `Authorization: Bearer `. Use `oauth2Token` when a route requires OAuth2 scopes." }, "sessionToken": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "User session token from login: `Authorization: ` (no prefix). Prefer a bot account over user tokens where possible." }, "adminApiKey": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "Admin API key: `Authorization: Admin `. Only valid for `/admin/*` endpoints." } } }, "tags": [{"name": "Admin", "description": "Administrative operations for instance management"}] }