Files
fluxer/fluxer_admin/openapi-admin.json
T

16383 lines
618 KiB
JSON

{
"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": "int53",
"description": "Inclusive start timestamp in milliseconds"
}
},
{
"name": "end_ms",
"in": "query",
"required": true,
"schema": {
"type": "integer",
"minimum": 0,
"maximum": 8640000000000000,
"format": "int53",
"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": "int53",
"description": "Inclusive start timestamp in milliseconds"
}
},
{
"name": "end_ms",
"in": "query",
"required": true,
"schema": {
"type": "integer",
"minimum": 0,
"maximum": 8640000000000000,
"format": "int53",
"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": 115,
"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",
"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": {
"path": {"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": ["path", "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": 115,
"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": 115,
"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": "int53",
"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": "int53",
"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": "int53",
"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": "int53"}
},
"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"
},
"approximate_member_count": {"$ref": "#/components/schemas/Int32Type"},
"approximate_presence_count": {"$ref": "#/components/schemas/Int32Type"}
},
"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": "int53"}
}
},
"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": "int53"
},
"use_count": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int53"},
"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_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"]
},
"deferred_phone_gate": {
"type": "object",
"properties": {
"enabled": {"type": "boolean"},
"window_hours": {"type": "number"},
"member_threshold": {"type": "number"}
},
"required": ["enabled", "window_hours", "member_threshold"]
}
},
"required": [
"single_community_enabled",
"single_community_guild_id",
"direct_messages_disabled",
"direct_messages_locked",
"premium_mode",
"services",
"services_resolved",
"services_available",
"deferred_phone_gate"
]
},
"integrations": {
"type": "object",
"properties": {
"gif": {
"type": "object",
"properties": {"klipy_api_key_set": {"type": "boolean"}, "effective_available": {"type": "boolean"}},
"required": ["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"]
},
"disable_new_ip_authorization": {"type": "boolean"},
"effective_disable_new_ip_authorization": {"type": "boolean"}
},
"required": [
"enabled",
"effective_enabled",
"provider",
"effective_provider",
"from_email",
"from_name",
"smtp",
"disable_new_ip_authorization",
"effective_disable_new_ip_authorization"
]
},
"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": "int53"}
},
"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": "int53",
"minimum": 0,
"exclusiveMinimum": true
},
"max_lifetime_days": {
"nullable": true,
"type": "integer",
"maximum": 9007199254740991,
"format": "int53",
"minimum": 0,
"exclusiveMinimum": true
},
"curve": {"nullable": true, "type": "number", "minimum": 0, "maximum": 1},
"renew_threshold_days": {
"nullable": true,
"type": "integer",
"maximum": 9007199254740991,
"format": "int53",
"minimum": 0,
"exclusiveMinimum": true
},
"renew_window_days": {
"nullable": true,
"type": "integer",
"maximum": 9007199254740991,
"format": "int53",
"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": "int53",
"minimum": 0,
"exclusiveMinimum": true
},
"max_lifetime_days": {
"type": "integer",
"maximum": 9007199254740991,
"format": "int53",
"minimum": 0,
"exclusiveMinimum": true
},
"curve": {"type": "number", "minimum": 0, "maximum": 1},
"renew_threshold_days": {
"type": "integer",
"maximum": 9007199254740991,
"format": "int53",
"minimum": 0,
"exclusiveMinimum": true
},
"renew_window_days": {
"type": "integer",
"maximum": 9007199254740991,
"format": "int53",
"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": "int53"
},
"use_count": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int53"},
"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": {"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"}
}
},
"disable_new_ip_authorization": {"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": "int53",
"minimum": 0,
"exclusiveMinimum": true
},
"max_lifetime_days": {
"nullable": true,
"type": "integer",
"maximum": 9007199254740991,
"format": "int53",
"minimum": 0,
"exclusiveMinimum": true
},
"curve": {"nullable": true, "type": "number", "minimum": 0, "maximum": 1},
"renew_threshold_days": {
"nullable": true,
"type": "integer",
"maximum": 9007199254740991,
"format": "int53",
"minimum": 0,
"exclusiveMinimum": true
},
"renew_window_days": {
"nullable": true,
"type": "integer",
"maximum": 9007199254740991,
"format": "int53",
"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"}
}
},
"deferred_phone_gate": {
"nullable": true,
"type": "object",
"properties": {
"enabled": {"type": "boolean"},
"window_hours": {"type": "number", "maximum": 8760, "minimum": 0, "exclusiveMinimum": true},
"member_threshold": {
"type": "integer",
"maximum": 1000000,
"format": "int32",
"minimum": 0,
"exclusiveMinimum": true
}
}
}
}
}
}
},
"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": {"$ref": "#/components/schemas/NonNegativeSafeIntegerType"},
"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"
]
},
"NonNegativeSafeIntegerType": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int53"},
"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": {"$ref": "#/components/schemas/NonNegativeSafeIntegerType"},
"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/NonNegativeSafeIntegerType"}]},
"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 reply target. Present and populated when the target resolved, present and null when the target is gone, absent when this message carries no default reference. Clients must tell null apart from absent by key presence.",
"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": 9007199254740991,
"format": "int53",
"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"
}
},
"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": "int53"}
},
"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": "int53"}
},
"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/NonNegativeSafeIntegerType"}]
},
"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": "int53",
"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": "int53",
"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"},
"phone_verification_deferred": {
"type": "boolean",
"description": "Whether a stored phone requirement is deferred until the user joins a discoverable or large community"
},
"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": 115},
"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",
"phone_verification_deferred",
"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/DiscriminatorType"}
},
"required": ["user_id", "username"]
},
"UsernameType": {"type": "string", "minLength": 1, "maxLength": 32, "pattern": "^[a-zA-Z0-9_]+$"},
"DiscriminatorType": {"type": "string", "pattern": "^\\d{1,4}$"},
"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": "int53"}
}
},
"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": 115,
"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 <token>`. This is the primary authentication method for bot applications."
},
"oauth2Token": {
"type": "oauth2",
"description": "OAuth2 access token: `Authorization: Bearer <token>`.",
"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 <token>`. Use `oauth2Token` when a route requires OAuth2 scopes."
},
"sessionToken": {
"type": "apiKey",
"in": "header",
"name": "Authorization",
"description": "User session token from login: `Authorization: <token>` (no prefix). Prefer a bot account over user tokens where possible."
},
"adminApiKey": {
"type": "apiKey",
"in": "header",
"name": "Authorization",
"description": "Admin API key: `Authorization: Admin <token>`. Only valid for `/admin/*` endpoints."
}
}
},
"tags": [{"name": "Admin", "description": "Administrative operations for instance management"}]
}