Files
fluxer/fluxer_admin/openapi-admin.json
T

16356 lines
617 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": 100,
"description": "List of access control permissions for the key"
}
},
"required": ["key_id", "key", "name", "created_at", "expires_at", "acls"]
},
"Error": {
"type": "object",
"properties": {
"code": {"$ref": "#/components/schemas/APIErrorCode"},
"message": {"type": "string", "description": "Human-readable error message"},
"errors": {
"type": "array",
"description": "Field-specific validation errors",
"items": {"$ref": "#/components/schemas/ValidationErrorItem"}
}
},
"required": ["code", "message"]
},
"APIErrorCode": {
"type": "string",
"enum": [
"ACCESS_DENIED",
"ACCOUNT_DISABLED",
"BAD_GATEWAY",
"BAD_REQUEST",
"BLUESKY_OAUTH_AUTHORIZATION_FAILED",
"BLUESKY_OAUTH_CALLBACK_FAILED",
"BLUESKY_OAUTH_NOT_ENABLED",
"BLUESKY_OAUTH_SESSION_EXPIRED",
"BLUESKY_OAUTH_STATE_INVALID",
"ACCOUNT_SCHEDULED_FOR_DELETION",
"ACCOUNT_SUSPENDED_PERMANENTLY",
"ACCOUNT_SUSPENDED_TEMPORARILY",
"ACCOUNT_SUSPICIOUS_ACTIVITY",
"ACCOUNT_TOO_NEW_FOR_GUILD",
"ACLS_MUST_BE_NON_EMPTY",
"ADMIN_API_KEY_NOT_FOUND",
"APPLICATION_NOT_FOUND",
"APPLICATION_NOT_OWNED",
"ALREADY_FRIENDS",
"AUDIT_LOG_INDEXING",
"BOTS_CANNOT_CREATE_GUILDS",
"BOTS_CANNOT_SEND_FRIEND_REQUESTS",
"BOT_ALREADY_IN_GUILD",
"BOT_APPLICATION_NOT_FOUND",
"BOT_IS_PRIVATE",
"BOT_USER_AUTH_ENDPOINT_ACCESS_DENIED",
"BOT_USER_AUTH_SESSION_CREATION_DENIED",
"BOT_USER_GENERATION_FAILED",
"BOT_USER_NOT_FOUND",
"CALL_ALREADY_EXISTS",
"CANNOT_EDIT_OTHER_USER_MESSAGE",
"CANNOT_EXECUTE_ON_DM",
"CANNOT_BLOCK_SYSTEM_USER",
"CANNOT_MODIFY_SYSTEM_WEBHOOK",
"CANNOT_MODIFY_VOICE_STATE",
"CANNOT_REDEEM_PLUTONIUM_WITH_VISIONARY",
"CANNOT_REPORT_GUILD",
"CANNOT_REPORT_OWN_GUILD",
"CANNOT_REPORT_OWN_MESSAGE",
"CANNOT_REPORT_YOURSELF",
"CANNOT_SEND_EMPTY_MESSAGE",
"CANNOT_SEND_FRIEND_REQUEST_TO_BLOCKED_USER",
"CANNOT_SEND_FRIEND_REQUEST_TO_SELF",
"CANNOT_SEND_MESSAGES_IN_NON_TEXT_CHANNEL",
"CANNOT_SEND_MESSAGES_TO_USER",
"CANNOT_TRANSFER_OWNERSHIP_TO_BOT",
"CANNOT_SHRINK_RESERVED_SLOTS",
"CAPTCHA_REQUIRED",
"CHANNEL_INDEXING",
"COMMUNICATION_DISABLED",
"CONNECTION_ALREADY_EXISTS",
"CONNECTION_INITIATION_TOKEN_INVALID",
"CONNECTION_INVALID_IDENTIFIER",
"CONNECTION_INVALID_TYPE",
"CONNECTION_LIMIT_REACHED",
"CONNECTION_NOT_FOUND",
"CONNECTION_VERIFICATION_FAILED",
"CONFLICT",
"CONTENT_BLOCKED",
"CREATION_FAILED",
"DECRYPTION_FAILED",
"DELETION_FAILED",
"DISCOVERY_ALREADY_APPLIED",
"DISCOVERY_APPLICATION_ALREADY_REVIEWED",
"DISCOVERY_APPLICATION_NOT_FOUND",
"DISCOVERY_DESCRIPTION_REQUIRED",
"DISCOVERY_DISABLED",
"DISCOVERY_INSUFFICIENT_MEMBERS",
"DISCOVERY_INVALID_CATEGORY",
"DISCOVERY_NOT_DISCOVERABLE",
"DISCRIMINATOR_REQUIRED",
"EMAIL_SERVICE_NOT_TESTABLE",
"EMAIL_VERIFICATION_REQUIRED",
"CANARY_TESTER_EMAIL_VERIFICATION_REQUIRED",
"DIRECT_MESSAGE_EMAIL_VERIFICATION_REQUIRED",
"FRIEND_REQUEST_EMAIL_VERIFICATION_REQUIRED",
"GUILD_CREATION_EMAIL_VERIFICATION_REQUIRED",
"GUILD_EMAIL_VERIFICATION_REQUIRED",
"MFA_EMAIL_VERIFICATION_REQUIRED",
"PROFILE_EMAIL_VERIFICATION_REQUIRED",
"PURCHASE_EMAIL_VERIFICATION_REQUIRED",
"REACTION_EMAIL_VERIFICATION_REQUIRED",
"REPORT_EMAIL_VERIFICATION_REQUIRED",
"REGISTRATION_CLOSED",
"REGISTRATION_PENDING_APPROVAL",
"REGISTRATION_REJECTED",
"REGISTRATION_URL_INVALID",
"EMPTY_ENCRYPTED_BODY",
"ENCRYPTION_FAILED",
"EU_WITHDRAWAL_WAIVER_REQUIRED",
"EXPLICIT_CONTENT_CANNOT_BE_SENT",
"FEATURE_NOT_AVAILABLE_SELF_HOSTED",
"FEATURE_TEMPORARILY_DISABLED",
"FILE_SIZE_TOO_LARGE",
"FORBIDDEN",
"FRIEND_REQUEST_BLOCKED",
"GATEWAY_TIMEOUT",
"GENERAL_ERROR",
"GONE",
"GIFT_CODE_ALREADY_REDEEMED",
"GUILD_PHONE_VERIFICATION_REQUIRED",
"GUILD_TEMPLATE_FETCH_FAILED",
"GUILD_TEMPLATE_INVALID",
"GUILD_VERIFICATION_REQUIRED",
"HANDOFF_CODE_EXPIRED",
"HARVEST_EXPIRED",
"HARVEST_FAILED",
"HARVEST_NOT_READY",
"HTTP_GET_AUTHORIZE_NOT_SUPPORTED",
"INSTANCE_VERSION_MISMATCH",
"INTERNAL_SERVER_ERROR",
"INVALID_ACLS_FORMAT",
"INVALID_API_ORIGIN",
"INVALID_AUTH_TOKEN",
"INVALID_BOT_FLAG",
"INVALID_CAPTCHA",
"INVALID_CHANNEL_TYPE_FOR_CALL",
"INVALID_CHANNEL_TYPE",
"INVALID_CLIENT",
"INVALID_CLIENT_SECRET",
"INVALID_DSA_REPORT_TARGET",
"INVALID_DSA_TICKET",
"INVALID_DSA_VERIFICATION_CODE",
"INVALID_DECRYPTED_JSON",
"INVALID_EPHEMERAL_KEY",
"INVALID_FLAGS_FORMAT",
"INVALID_IV",
"INVALID_FORM_BODY",
"INVALID_GRANT",
"INVALID_HANDOFF_CODE",
"INVALID_PACK_TYPE",
"INVALID_PERMISSIONS_INTEGER",
"INVALID_PERMISSIONS_NEGATIVE",
"INVALID_PHONE_NUMBER",
"INVALID_PHONE_VERIFICATION_CODE",
"INVALID_REDIRECT_URI",
"INVALID_REQUEST",
"INVALID_RESPONSE_TYPE_FOR_NON_BOT",
"INVALID_SCOPE",
"INVALID_STREAM_KEY_FORMAT",
"INVALID_STREAM_THUMBNAIL_PAYLOAD",
"INVALID_SUDO_TOKEN",
"INVALID_SUSPICIOUS_FLAGS_FORMAT",
"INVALID_SYSTEM_FLAG",
"INVALID_TIMESTAMP",
"INVALID_TOKEN",
"INVALID_WEBAUTHN_AUTHENTICATION_COUNTER",
"INVALID_WEBAUTHN_CREDENTIAL_COUNTER",
"INVALID_WEBAUTHN_CREDENTIAL",
"INVALID_WEBAUTHN_PUBLIC_KEY_FORMAT",
"INVITES_DISABLED",
"IP_AUTHORIZATION_REQUIRED",
"IP_AUTHORIZATION_RESEND_COOLDOWN",
"IP_AUTHORIZATION_RESEND_LIMIT_EXCEEDED",
"GLOBAL_IP_BANNED",
"GLOBAL_IP_TEMPORARILY_BANNED",
"IP_BANNED",
"RESIDENTIAL_PROXY_BLOCKED",
"TOR_BLOCKED",
"MAX_ANIMATED_EMOJIS",
"MAX_APPLICATIONS",
"MAX_BOOKMARKS",
"MAX_CATEGORY_CHANNELS",
"MAX_EMOJIS",
"MAX_FAVORITE_MEMES",
"MAX_FRIENDS",
"MAX_GROUP_DM_RECIPIENTS",
"MAX_GROUP_DMS",
"GROUP_DM_RECIPIENTS_NOT_ADDABLE",
"MAX_GUILD_CHANNELS",
"MAX_GUILD_MEMBERS",
"MAX_GUILD_ROLES",
"MAX_GUILDS",
"NEW_ACCOUNT_GUILD_JOIN_RATE_LIMITED",
"MAX_INVITES",
"MAX_PACK_EXPRESSIONS",
"MAX_PACKS",
"MAX_PINS_PER_CHANNEL",
"MESSAGE_TOTAL_ATTACHMENT_SIZE_TOO_LARGE",
"MAX_REACTIONS",
"MAX_STICKERS",
"MAX_WEBHOOKS_PER_CHANNEL",
"MAX_WEBHOOKS_PER_GUILD",
"MAX_WEBHOOKS",
"NCMEC_ALREADY_SUBMITTED",
"NCMEC_SUBMISSION_FAILED",
"MEDIA_METADATA_ERROR",
"METHOD_NOT_ALLOWED",
"MISSING_ACCESS",
"MISSING_ACL",
"MISSING_AUTHORIZATION",
"MISSING_CLIENT_SECRET",
"MISSING_EPHEMERAL_KEY",
"MISSING_IV",
"MISSING_OAUTH_FIELDS",
"MISSING_OAUTH_SCOPE",
"MISSING_PERMISSIONS",
"MISSING_REDIRECT_URI",
"NO_ACTIVE_CALL",
"NO_ACTIVE_SUBSCRIPTION",
"NOT_FOUND",
"NOT_IMPLEMENTED",
"NO_PASSKEYS_REGISTERED",
"NO_PENDING_DELETION",
"NO_USERS_WITH_FLUXERTAG_EXIST",
"NO_VISIONARY_SLOTS_AVAILABLE",
"NOT_A_BOT_APPLICATION",
"NOT_FRIENDS_WITH_USER",
"NOT_OWNER_OF_ADMIN_API_KEY",
"NSFW_CONTENT_AGE_RESTRICTED",
"NSFW_EMOJI_STICKER_BLOCKED",
"PACK_ACCESS_DENIED",
"PASSKEY_AUTHENTICATION_FAILED",
"PASSKEYS_DISABLED",
"PHONE_ADD_NOT_ELIGIBLE",
"PHONE_ALREADY_USED",
"PHONE_RATE_LIMIT_EXCEEDED",
"PHONE_VERIFICATION_REQUIRED",
"PREMIUM_PURCHASE_BLOCKED",
"PREVIEW_MUST_BE_JPEG",
"PROCESSING_FAILED",
"RATE_LIMITED",
"REDIRECT_URI_REQUIRED_FOR_NON_BOT",
"REPORT_ALREADY_RESOLVED",
"REPORT_BANNED",
"RESPONSE_VALIDATION_ERROR",
"RESOURCE_LOCKED",
"SERVICE_UNAVAILABLE",
"SESSION_TOKEN_MISMATCH",
"SINGLE_COMMUNITY_CANNOT_CREATE_GUILDS",
"SINGLE_COMMUNITY_CANNOT_DELETE",
"SINGLE_COMMUNITY_CANNOT_LEAVE",
"INSTANCE_POLICY_TRANSITION_NOT_ALLOWED",
"SLOWMODE_RATE_LIMITED",
"SMS_VERIFICATION_UNAVAILABLE",
"SSO_REQUIRED",
"STREAM_KEY_CHANNEL_MISMATCH",
"STREAM_KEY_SCOPE_MISMATCH",
"STREAM_THUMBNAIL_PAYLOAD_EMPTY",
"STRIPE_ERROR",
"STRIPE_GIFT_REDEMPTION_IN_PROGRESS",
"STRIPE_INVALID_PRODUCT",
"STRIPE_INVALID_PRODUCT_CONFIGURATION",
"STRIPE_NO_ACTIVE_SUBSCRIPTION",
"STRIPE_NO_PURCHASE_HISTORY",
"STRIPE_REFUND_OUTSIDE_WINDOW",
"STRIPE_REFUND_COOLDOWN_ACTIVE",
"STRIPE_NO_SUBSCRIPTION",
"STRIPE_PAYMENT_NOT_AVAILABLE",
"STRIPE_SUBSCRIPTION_ALREADY_CANCELING",
"STRIPE_SUBSCRIPTION_NOT_CANCELING",
"STRIPE_SUBSCRIPTION_PERIOD_END_MISSING",
"STRIPE_WEBHOOK_NOT_AVAILABLE",
"STRIPE_WEBHOOK_SIGNATURE_INVALID",
"STRIPE_WEBHOOK_SIGNATURE_MISSING",
"DIRECT_MESSAGES_DISABLED",
"DONATION_AMOUNT_INVALID",
"DONATION_MAGIC_LINK_EXPIRED",
"DONATION_MAGIC_LINK_INVALID",
"DONATION_MAGIC_LINK_USED",
"DONOR_NOT_FOUND",
"SUDO_MODE_REQUIRED",
"TAG_ALREADY_TAKEN",
"TEMPORARY_INVITE_REQUIRES_PRESENCE",
"TEST_HARNESS_DISABLED",
"TEST_HARNESS_FORBIDDEN",
"TWO_FA_NOT_ENABLED",
"TWO_FACTOR_REQUIRED",
"UNAUTHORIZED",
"UNCLAIMED_ACCOUNT_CANNOT_ACCEPT_FRIEND_REQUESTS",
"UNCLAIMED_ACCOUNT_CANNOT_ADD_REACTIONS",
"UNCLAIMED_ACCOUNT_CANNOT_CREATE_APPLICATIONS",
"UNCLAIMED_ACCOUNT_CANNOT_CREATE_GUILDS",
"UNCLAIMED_ACCOUNT_CANNOT_JOIN_GROUP_DMS",
"UNCLAIMED_ACCOUNT_CANNOT_JOIN_ONE_ON_ONE_VOICE_CALLS",
"UNCLAIMED_ACCOUNT_CANNOT_JOIN_VOICE_CHANNELS",
"UNCLAIMED_ACCOUNT_CANNOT_MAKE_PURCHASES",
"UNCLAIMED_ACCOUNT_CANNOT_SEND_DIRECT_MESSAGES",
"UNCLAIMED_ACCOUNT_CANNOT_SEND_FRIEND_REQUESTS",
"UNCLAIMED_ACCOUNT_CANNOT_SEND_MESSAGES",
"UNCLAIMED_ACCOUNT_CANNOT_SUBMIT_REPORTS",
"UNKNOWN_CHANNEL",
"UNKNOWN_EMOJI",
"UNKNOWN_FAVORITE_MEME",
"UNKNOWN_GIFT_CODE",
"UNKNOWN_GUILD",
"UNKNOWN_HARVEST",
"UNKNOWN_INVITE",
"UNKNOWN_MEMBER",
"UNKNOWN_MESSAGE",
"UNKNOWN_PACK",
"UNKNOWN_REPORT",
"UNKNOWN_ROLE",
"UNKNOWN_STICKER",
"UNKNOWN_SUSPICIOUS_FLAG",
"UNKNOWN_USER_FLAG",
"UNKNOWN_USER",
"UNKNOWN_VOICE_REGION",
"UNKNOWN_VOICE_SERVER",
"UNKNOWN_WEBAUTHN_CREDENTIAL",
"UNKNOWN_APPLICATION",
"UNKNOWN_WEBHOOK",
"UNFURL_STREAM_TOO_LARGE",
"UNSUPPORTED_RESPONSE_TYPE",
"USERNAME_NOT_AVAILABLE",
"UPDATE_FAILED",
"USER_BANNED_FROM_GUILD",
"USER_IP_BANNED_FROM_GUILD",
"USER_NOT_IN_VOICE",
"USER_OWNS_GUILDS",
"VALIDATION_ERROR",
"VOICE_CHANNEL_FULL",
"WEBAUTHN_CREDENTIAL_LIMIT_REACHED",
"AGE_VERIFICATION_ALREADY_VERIFIED",
"AGE_VERIFICATION_INVALID_CARD_TYPE"
],
"description": "Error codes returned by API operations"
},
"ValidationErrorItem": {
"type": "object",
"properties": {
"field": {"type": "string", "description": "Field path that failed validation"},
"code": {"type": "string", "description": "Machine-readable validation error code"},
"message": {"type": "string", "description": "Human-readable validation error message"}
},
"required": ["field", "code", "message"]
},
"CreateAdminApiKeyRequest": {
"type": "object",
"properties": {
"name": {"type": "string", "minLength": 1, "maxLength": 100, "description": "Display name for the API key"},
"expires_in_days": {
"type": "integer",
"minimum": 1,
"maximum": 365,
"format": "int32",
"description": "Number of days until the key expires"
},
"acls": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "List of access control permissions for the key"
}
},
"required": ["name", "acls"]
},
"ListAdminApiKeyResponse": {
"type": "object",
"properties": {
"key_id": {"type": "string", "description": "Unique identifier for the API key"},
"name": {"type": "string", "description": "Display name for the API key"},
"created_at": {"type": "string", "description": "ISO 8601 timestamp when the key was created"},
"last_used_at": {
"description": "ISO 8601 timestamp when the key was last used, or null if never used",
"nullable": true,
"type": "string"
},
"expires_at": {
"description": "ISO 8601 timestamp when the key expires, or null if no expiration",
"nullable": true,
"type": "string"
},
"created_by_user_id": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$",
"description": "User ID of the admin who created this key"
},
"acls": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "List of access control permissions for the key"
}
},
"required": ["key_id", "name", "created_at", "last_used_at", "expires_at", "created_by_user_id", "acls"]
},
"DeleteApiKeyResponse": {
"type": "object",
"properties": {"success": {"type": "boolean", "enum": [true]}},
"required": ["success"]
},
"ListGuildApplicationsResponse": {
"type": "object",
"properties": {
"applications": {"type": "array", "items": {"$ref": "#/components/schemas/ApplicationAdminResponse"}}
},
"required": ["applications"]
},
"ApplicationAdminResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$",
"description": "The unique identifier for this application"
},
"name": {"type": "string", "description": "The display name of the application"},
"owner_user_id": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$",
"description": "The user ID that owns this application"
},
"owner_username": {
"description": "The username of the owner, if resolvable",
"nullable": true,
"type": "string"
},
"owner_global_name": {
"description": "The display name of the owner, if set",
"nullable": true,
"type": "string"
},
"owner_discriminator": {
"description": "The discriminator of the owner, if resolvable",
"nullable": true,
"type": "string"
},
"bot_user_id": {
"description": "The user ID of the associated bot user, if any",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]
},
"bot_username": {"description": "The username of the bot user, if any", "nullable": true, "type": "string"},
"bot_global_name": {
"description": "The display name of the bot user, if set",
"nullable": true,
"type": "string"
},
"bot_discriminator": {
"description": "The discriminator of the bot user, if any",
"nullable": true,
"type": "string"
},
"bot_is_public": {"type": "boolean", "description": "Whether the bot is publicly joinable"},
"bot_require_code_grant": {
"type": "boolean",
"description": "Whether an OAuth2 code grant is required for this bot"
},
"oauth2_redirect_uris": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "Registered OAuth2 redirect URIs"
},
"has_client_secret": {
"type": "boolean",
"description": "Whether a hashed client secret is stored for this application"
},
"has_bot_token": {
"type": "boolean",
"description": "Whether a hashed bot token is stored for this application"
},
"bot_token_preview": {
"description": "The preview (last few characters) of the bot token, if any",
"nullable": true,
"type": "string"
},
"bot_token_created_at": {
"description": "ISO 8601 timestamp when the bot token was created",
"nullable": true,
"type": "string",
"format": "date-time"
},
"client_secret_created_at": {
"description": "ISO 8601 timestamp when the client secret was created",
"nullable": true,
"type": "string",
"format": "date-time"
},
"version": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647,
"format": "int32",
"description": "The optimistic locking version of the application record"
}
},
"required": [
"id",
"name",
"owner_user_id",
"owner_username",
"owner_global_name",
"owner_discriminator",
"bot_user_id",
"bot_username",
"bot_global_name",
"bot_discriminator",
"bot_is_public",
"bot_require_code_grant",
"oauth2_redirect_uris",
"has_client_secret",
"has_bot_token",
"bot_token_preview",
"bot_token_created_at",
"client_secret_created_at",
"version"
]
},
"SnowflakeType": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "format": "snowflake"},
"ListGuildApplicationsRequest": {
"type": "object",
"properties": {"guild_id": {"$ref": "#/components/schemas/SnowflakeType"}},
"required": ["guild_id"]
},
"ListUserApplicationsResponse": {
"type": "object",
"properties": {
"applications": {"type": "array", "items": {"$ref": "#/components/schemas/ApplicationAdminResponse"}}
},
"required": ["applications"]
},
"ListUserApplicationsRequest": {
"type": "object",
"properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}},
"required": ["user_id"]
},
"LookupApplicationResponse": {
"type": "object",
"properties": {
"application": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/ApplicationAdminResponse"}]}
},
"required": ["application"]
},
"LookupApplicationRequest": {
"type": "object",
"properties": {"application_id": {"$ref": "#/components/schemas/SnowflakeType"}},
"required": ["application_id"]
},
"ApplicationUpdateResponse": {
"type": "object",
"properties": {"application": {"$ref": "#/components/schemas/ApplicationAdminResponse"}},
"required": ["application"]
},
"TransferApplicationOwnershipRequest": {
"type": "object",
"properties": {
"application_id": {"$ref": "#/components/schemas/SnowflakeType"},
"new_owner_id": {"$ref": "#/components/schemas/SnowflakeType"}
},
"required": ["application_id", "new_owner_id"]
},
"AdminArchiveResponseSchema": {
"type": "object",
"properties": {
"archive_id": {"$ref": "#/components/schemas/SnowflakeType"},
"subject_type": {
"type": "string",
"enum": ["user", "guild"],
"description": "Type of subject being archived"
},
"subject_id": {"$ref": "#/components/schemas/SnowflakeType"},
"requested_by": {"$ref": "#/components/schemas/SnowflakeType"},
"requested_at": {"type": "string"},
"started_at": {"nullable": true, "type": "string"},
"completed_at": {"nullable": true, "type": "string"},
"failed_at": {"nullable": true, "type": "string"},
"file_size": {"nullable": true, "type": "string"},
"progress_percent": {"type": "number"},
"progress_step": {"nullable": true, "type": "string"},
"error_message": {"nullable": true, "type": "string"},
"download_url_expires_at": {"nullable": true, "type": "string"},
"expires_at": {"nullable": true, "type": "string"}
},
"required": [
"archive_id",
"subject_type",
"subject_id",
"requested_by",
"requested_at",
"started_at",
"completed_at",
"failed_at",
"file_size",
"progress_percent",
"progress_step",
"error_message",
"download_url_expires_at",
"expires_at"
]
},
"TriggerGuildArchiveRequest": {
"type": "object",
"properties": {
"guild_id": {"$ref": "#/components/schemas/SnowflakeType"},
"include_attachments": {
"type": "boolean",
"description": "Whether to include attachment binaries in the archive"
}
},
"required": ["guild_id"]
},
"ListArchivesResponseSchema": {
"type": "object",
"properties": {
"archives": {"type": "array", "items": {"$ref": "#/components/schemas/AdminArchiveResponseSchema"}}
},
"required": ["archives"]
},
"ListArchivesRequest": {
"type": "object",
"properties": {
"subject_type": {
"type": "string",
"enum": ["user", "guild", "all"],
"description": "Type of archives to list"
},
"subject_id": {"$ref": "#/components/schemas/SnowflakeType"},
"requested_by": {"$ref": "#/components/schemas/SnowflakeType"},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 200,
"description": "Maximum number of archives to return"
},
"include_expired": {"type": "boolean", "description": "Whether to include expired archives"}
}
},
"TriggerUserArchiveRequest": {
"type": "object",
"properties": {
"user_id": {"$ref": "#/components/schemas/SnowflakeType"},
"include_attachments": {
"type": "boolean",
"description": "Whether to include attachment binaries in the archive"
}
},
"required": ["user_id"]
},
"GetArchiveResponseSchema": {
"type": "object",
"properties": {
"archive": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/AdminArchiveResponseSchema"}]}
},
"required": ["archive"]
},
"DownloadUrlResponseSchema": {
"type": "object",
"properties": {"downloadUrl": {"type": "string"}, "expiresAt": {"type": "string"}},
"required": ["downloadUrl", "expiresAt"]
},
"PurgeGuildAssetsResponseSchema": {
"type": "object",
"properties": {
"processed": {"type": "array", "items": {"$ref": "#/components/schemas/PurgeGuildAssetResultSchema"}},
"errors": {"type": "array", "items": {"$ref": "#/components/schemas/PurgeGuildAssetErrorSchema"}}
},
"required": ["processed", "errors"]
},
"PurgeGuildAssetResultSchema": {
"type": "object",
"properties": {
"id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Unique identifier of the asset"},
"asset_type": {
"type": "string",
"enum": ["emoji", "sticker", "unknown"],
"description": "Type of guild asset"
},
"found_in_db": {"type": "boolean", "description": "Whether the asset was found in the database"},
"guild_id": {
"description": "ID of the guild the asset belongs to",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]
},
"guild_nsfw_level": {
"description": "NSFW level of the guild the asset belongs to",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/NSFWLevel"}]
}
},
"required": ["id", "asset_type", "found_in_db", "guild_id", "guild_nsfw_level"]
},
"NSFWLevel": {"type": "integer", "format": "int32", "enum": [0, 3], "description": "The NSFW level of the guild"},
"PurgeGuildAssetErrorSchema": {
"type": "object",
"properties": {"id": {"$ref": "#/components/schemas/SnowflakeType"}, "error": {"type": "string"}},
"required": ["id", "error"]
},
"PurgeGuildAssetsRequest": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "List of asset IDs to purge"
}
},
"required": ["ids"]
},
"AuditLogsListResponseSchema": {
"type": "object",
"properties": {
"logs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"log_id": {"$ref": "#/components/schemas/SnowflakeType"},
"admin_user_id": {"$ref": "#/components/schemas/SnowflakeType"},
"admin_user": {
"nullable": true,
"type": "object",
"properties": {
"id": {"$ref": "#/components/schemas/SnowflakeType"},
"username": {"type": "string"},
"discriminator": {"type": "string"},
"global_name": {"nullable": true, "type": "string"}
},
"required": ["id", "username", "discriminator", "global_name"]
},
"target_type": {"type": "string"},
"target_id": {
"type": "string",
"description": "The ID of the affected entity (user, channel, role, invite code, etc.)"
},
"target_user": {
"nullable": true,
"type": "object",
"properties": {
"id": {"$ref": "#/components/schemas/SnowflakeType"},
"username": {"type": "string"},
"discriminator": {"type": "string"},
"global_name": {"nullable": true, "type": "string"}
},
"required": ["id", "username", "discriminator", "global_name"]
},
"target_guild": {
"nullable": true,
"type": "object",
"properties": {"id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}},
"required": ["id", "name"]
},
"target_channel": {
"nullable": true,
"type": "object",
"properties": {
"id": {"$ref": "#/components/schemas/SnowflakeType"},
"name": {"nullable": true, "type": "string"},
"type": {
"type": "integer",
"format": "int32",
"enum": [0, 1, 2, 3, 4, 998, 999],
"description": "The type of the channel"
},
"guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}
},
"required": ["id", "name", "type", "guild_id"]
},
"related_users": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"id": {"$ref": "#/components/schemas/SnowflakeType"},
"username": {"type": "string"},
"discriminator": {"type": "string"},
"global_name": {"nullable": true, "type": "string"}
},
"required": ["id", "username", "discriminator", "global_name"]
},
"patternProperties": {
"^(0|[1-9][0-9]*)$": {
"type": "object",
"properties": {
"id": {"$ref": "#/components/schemas/SnowflakeType"},
"username": {"type": "string"},
"discriminator": {"type": "string"},
"global_name": {"nullable": true, "type": "string"}
},
"required": ["id", "username", "discriminator", "global_name"]
}
}
},
"related_guilds": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {"id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}},
"required": ["id", "name"]
},
"patternProperties": {
"^(0|[1-9][0-9]*)$": {
"type": "object",
"properties": {"id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}},
"required": ["id", "name"]
}
}
},
"related_channels": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"id": {"$ref": "#/components/schemas/SnowflakeType"},
"name": {"nullable": true, "type": "string"},
"type": {
"type": "integer",
"format": "int32",
"enum": [0, 1, 2, 3, 4, 998, 999],
"description": "The type of the channel"
},
"guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}
},
"required": ["id", "name", "type", "guild_id"]
},
"patternProperties": {
"^(0|[1-9][0-9]*)$": {
"type": "object",
"properties": {
"id": {"$ref": "#/components/schemas/SnowflakeType"},
"name": {"nullable": true, "type": "string"},
"type": {
"type": "integer",
"format": "int32",
"enum": [0, 1, 2, 3, 4, 998, 999],
"description": "The type of the channel"
},
"guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}
},
"required": ["id", "name", "type", "guild_id"]
}
}
},
"action": {"type": "string"},
"audit_log_reason": {"nullable": true, "type": "string"},
"metadata": {"type": "object", "additionalProperties": {"type": "string"}},
"created_at": {"type": "string"}
},
"required": [
"log_id",
"admin_user_id",
"admin_user",
"target_type",
"target_id",
"target_user",
"target_guild",
"target_channel",
"related_users",
"related_guilds",
"related_channels",
"action",
"audit_log_reason",
"metadata",
"created_at"
]
}
},
"total": {"type": "number"}
},
"required": ["logs", "total"]
},
"ListAuditLogsRequest": {
"type": "object",
"properties": {
"admin_user_id": {"$ref": "#/components/schemas/SnowflakeType"},
"target_type": {"type": "string", "description": "Filter by target entity type"},
"target_id": {
"type": "string",
"description": "Filter by target entity ID (user, channel, role, invite code, etc.)"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"format": "int32",
"description": "Maximum number of entries to return"
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"format": "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_locked": {"type": "boolean"},
"single_community_guild_id": {"nullable": true, "type": "string"},
"direct_messages_disabled": {"type": "boolean"},
"direct_messages_locked": {"type": "boolean"},
"premium_mode": {"enum": ["mirror", "everyone"], "type": "string"},
"services": {
"type": "object",
"properties": {
"gif_enabled": {"nullable": true, "type": "boolean"},
"youtube_enabled": {"nullable": true, "type": "boolean"},
"bluesky_enabled": {"nullable": true, "type": "boolean"}
},
"required": ["gif_enabled", "youtube_enabled", "bluesky_enabled"]
},
"services_resolved": {
"type": "object",
"properties": {
"gif_enabled": {"type": "boolean"},
"youtube_enabled": {"type": "boolean"},
"bluesky_enabled": {"type": "boolean"}
},
"required": ["gif_enabled", "youtube_enabled", "bluesky_enabled"]
},
"services_available": {
"type": "object",
"properties": {
"gif": {"type": "boolean"},
"youtube": {"type": "boolean"},
"bluesky": {"type": "boolean"}
},
"required": ["gif", "youtube", "bluesky"]
}
},
"required": [
"single_community_enabled",
"single_community_locked",
"single_community_guild_id",
"direct_messages_disabled",
"direct_messages_locked",
"premium_mode",
"services",
"services_resolved",
"services_available"
]
},
"integrations": {
"type": "object",
"properties": {
"gif": {
"type": "object",
"properties": {"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"}
}
}
}
}
}
},
"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 message that this message is replying to or forwarding",
"nullable": true,
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$",
"description": "The unique identifier (snowflake) for this message"
},
"channel_id": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$",
"description": "The ID of the channel this message was sent in"
},
"author": {"$ref": "#/components/schemas/UserPartialResponse"},
"webhook_id": {
"description": "The ID of the webhook that sent this message",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]
},
"type": {
"type": "integer",
"format": "int32",
"enum": [0, 1, 2, 3, 4, 5, 6, 7, 19],
"description": "The type of message"
},
"flags": {"$ref": "#/components/schemas/MessageFlags"},
"content": {"type": "string", "description": "The text content of the message"},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The ISO 8601 timestamp of when the message was created"
},
"edited_timestamp": {
"description": "The ISO 8601 timestamp of when the message was last edited",
"nullable": true,
"type": "string",
"format": "date-time"
},
"pinned": {"type": "boolean", "description": "Whether the message is pinned"},
"mention_everyone": {"type": "boolean", "description": "Whether the message mentions @everyone"},
"tts": {"type": "boolean", "description": "Whether the message was sent as text-to-speech"},
"mentions": {
"type": "array",
"items": {"$ref": "#/components/schemas/UserPartialResponse"},
"description": "The users mentioned in the message"
},
"mention_roles": {
"type": "array",
"items": {"type": "string"},
"description": "The role IDs mentioned in the message"
},
"mention_channels": {
"description": "Channels mentioned in the message that are visible to @everyone",
"nullable": true,
"type": "array",
"items": {"$ref": "#/components/schemas/MessageChannelMentionResponse"}
},
"users": {
"description": "Users referenced from non-notifying content, embed, and snapshot text, included for client-side resolution",
"nullable": true,
"type": "array",
"items": {"$ref": "#/components/schemas/UserPartialResponse"}
},
"embeds": {
"description": "The embeds attached to the message",
"nullable": true,
"type": "array",
"items": {"$ref": "#/components/schemas/MessageEmbedResponse"}
},
"attachments": {
"description": "The files attached to the message",
"nullable": true,
"type": "array",
"items": {"$ref": "#/components/schemas/MessageAttachmentResponse"}
},
"stickers": {
"description": "The stickers sent with the message",
"nullable": true,
"type": "array",
"items": {"$ref": "#/components/schemas/MessageStickerResponse"}
},
"nsfw_emojis": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"description": "IDs of custom emojis in this message that are classified as NSFW"
},
"reactions": {
"description": "The reactions on the message",
"nullable": true,
"type": "array",
"items": {"$ref": "#/components/schemas/MessageReactionResponse"}
},
"message_reference": {
"description": "Reference data for replies or forwards",
"nullable": true,
"type": "object",
"properties": {
"channel_id": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$",
"description": "The ID of the channel containing the referenced message"
},
"message_id": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$",
"description": "The ID of the referenced message"
},
"guild_id": {
"description": "The ID of the guild containing the referenced message",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]
},
"type": {"$ref": "#/components/schemas/MessageReferenceType"}
},
"required": ["channel_id", "message_id", "type"]
},
"message_snapshots": {
"description": "Snapshots of forwarded messages",
"nullable": true,
"type": "array",
"items": {"$ref": "#/components/schemas/MessageSnapshotResponse"}
},
"nonce": {
"description": "A client-provided value for message deduplication",
"nullable": true,
"type": "string"
},
"call": {
"description": "Call information if this message represents a call",
"nullable": true,
"type": "object",
"properties": {
"participants": {
"type": "array",
"items": {"type": "string"},
"description": "The user IDs of participants in the call"
},
"ended_timestamp": {
"description": "The ISO 8601 timestamp of when the call ended",
"nullable": true,
"type": "string",
"format": "date-time"
}
},
"required": ["participants"]
}
},
"required": [
"id",
"channel_id",
"author",
"type",
"flags",
"content",
"timestamp",
"pinned",
"mention_everyone",
"tts",
"mentions",
"mention_roles"
]
}
},
"required": [
"id",
"channel_id",
"author",
"type",
"flags",
"content",
"timestamp",
"pinned",
"mention_everyone",
"tts",
"mentions",
"mention_roles"
]
},
"MessageFlags": {
"type": "integer",
"format": "int32",
"minimum": 0,
"maximum": 2147483647,
"description": "Message flags bitfield"
},
"MessageChannelMentionResponse": {
"type": "object",
"properties": {
"id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the mentioned channel"},
"name": {"type": "string", "description": "The name of the mentioned channel"},
"type": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647,
"format": "int32",
"description": "The type of the mentioned channel"
}
},
"required": ["id", "name", "type"]
},
"MessageEmbedResponse": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The type of embed (e.g., rich, image, video, gifv, article, link)"
},
"url": {"description": "The URL of the embed", "nullable": true, "type": "string", "format": "uri"},
"title": {"description": "The title of the embed", "nullable": true, "type": "string"},
"color": {
"description": "The color code of the embed sidebar",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/Int32Type"}]
},
"timestamp": {
"description": "The ISO 8601 timestamp of the embed content",
"nullable": true,
"type": "string",
"format": "date-time"
},
"description": {"description": "The description of the embed", "nullable": true, "type": "string"},
"author": {
"description": "The author information of the embed",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/EmbedAuthorResponse"}]
},
"image": {
"description": "The image of the embed",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}]
},
"thumbnail": {
"description": "The thumbnail of the embed",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}]
},
"footer": {
"description": "The footer of the embed",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/EmbedFooterResponse"}]
},
"fields": {
"description": "The fields of the embed",
"nullable": true,
"type": "array",
"items": {"$ref": "#/components/schemas/EmbedFieldResponse"}
},
"provider": {
"description": "The provider of the embed (e.g., YouTube, Twitter)",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/EmbedAuthorResponse"}]
},
"video": {
"description": "The video of the embed",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}]
},
"audio": {
"description": "The audio of the embed",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}]
},
"html": {
"description": "Sanitized oEmbed HTML for trusted specialized embed renderers",
"nullable": true,
"type": "string"
},
"html_width": {
"description": "The preferred width of sanitized oEmbed HTML",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/Int32Type"}]
},
"html_height": {
"description": "The preferred height of sanitized oEmbed HTML",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/Int32Type"}]
},
"nsfw": {"description": "Whether the embed is flagged as NSFW", "nullable": true, "type": "boolean"},
"children": {
"description": "Internal nested embeds generated by unfurlers",
"nullable": true,
"type": "array",
"items": {"$ref": "#/components/schemas/MessageEmbedChildResponse"},
"maxItems": 1
}
},
"required": ["type"]
},
"EmbedAuthorResponse": {
"type": "object",
"properties": {
"name": {"type": "string", "description": "The name of the author"},
"url": {"description": "The URL of the author", "nullable": true, "type": "string", "format": "uri"},
"icon_url": {
"description": "The URL of the author icon",
"nullable": true,
"type": "string",
"format": "uri"
},
"proxy_icon_url": {
"description": "The proxied URL of the author icon",
"nullable": true,
"type": "string",
"format": "uri"
}
},
"required": ["name"]
},
"EmbedMediaResponse": {
"type": "object",
"properties": {
"url": {"type": "string", "description": "The URL of the media"},
"proxy_url": {
"description": "The proxied URL of the media",
"nullable": true,
"type": "string",
"format": "uri"
},
"content_type": {"description": "The MIME type of the media", "nullable": true, "type": "string"},
"content_hash": {"description": "The hash of the media content", "nullable": true, "type": "string"},
"width": {
"description": "The width of the media in pixels",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/Int32Type"}]
},
"height": {
"description": "The height of the media in pixels",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/Int32Type"}]
},
"description": {"description": "The description of the media", "nullable": true, "type": "string"},
"placeholder": {
"description": "The base64 encoded placeholder image for lazy loading",
"nullable": true,
"type": "string"
},
"duration": {
"description": "The duration of the media in seconds",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/Int32Type"}]
},
"flags": {"$ref": "#/components/schemas/EmbedMediaFlags"}
},
"required": ["url", "flags"]
},
"EmbedMediaFlags": {
"type": "integer",
"format": "int32",
"minimum": 0,
"maximum": 2147483647,
"description": "The bitwise flags for this media"
},
"EmbedFooterResponse": {
"type": "object",
"properties": {
"text": {"type": "string", "description": "The footer text"},
"icon_url": {
"description": "The URL of the footer icon",
"nullable": true,
"type": "string",
"format": "uri"
},
"proxy_icon_url": {
"description": "The proxied URL of the footer icon",
"nullable": true,
"type": "string",
"format": "uri"
}
},
"required": ["text"]
},
"EmbedFieldResponse": {
"type": "object",
"properties": {
"name": {"type": "string", "description": "The name of the field"},
"value": {"type": "string", "description": "The value of the field"},
"inline": {"type": "boolean", "description": "Whether the field should be displayed inline"}
},
"required": ["name", "value", "inline"]
},
"MessageEmbedChildResponse": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The type of embed (e.g., rich, image, video, gifv, article, link)"
},
"url": {"description": "The URL of the embed", "nullable": true, "type": "string", "format": "uri"},
"title": {"description": "The title of the embed", "nullable": true, "type": "string"},
"color": {
"description": "The color code of the embed sidebar",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/Int32Type"}]
},
"timestamp": {
"description": "The ISO 8601 timestamp of the embed content",
"nullable": true,
"type": "string",
"format": "date-time"
},
"description": {"description": "The description of the embed", "nullable": true, "type": "string"},
"author": {
"description": "The author information of the embed",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/EmbedAuthorResponse"}]
},
"image": {
"description": "The image of the embed",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}]
},
"thumbnail": {
"description": "The thumbnail of the embed",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}]
},
"footer": {
"description": "The footer of the embed",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/EmbedFooterResponse"}]
},
"fields": {
"description": "The fields of the embed",
"nullable": true,
"type": "array",
"items": {"$ref": "#/components/schemas/EmbedFieldResponse"}
},
"provider": {
"description": "The provider of the embed (e.g., YouTube, Twitter)",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/EmbedAuthorResponse"}]
},
"video": {
"description": "The video of the embed",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}]
},
"audio": {
"description": "The audio of the embed",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}]
},
"html": {
"description": "Sanitized oEmbed HTML for trusted specialized embed renderers",
"nullable": true,
"type": "string"
},
"html_width": {
"description": "The preferred width of sanitized oEmbed HTML",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/Int32Type"}]
},
"html_height": {
"description": "The preferred height of sanitized oEmbed HTML",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/Int32Type"}]
},
"nsfw": {"description": "Whether the embed is flagged as NSFW", "nullable": true, "type": "boolean"}
},
"required": ["type"]
},
"MessageAttachmentResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$",
"description": "The unique identifier for this attachment"
},
"filename": {"type": "string", "description": "The name of the attached file"},
"title": {"description": "The title of the attachment", "nullable": true, "type": "string"},
"description": {"description": "The description of the attachment", "nullable": true, "type": "string"},
"content_type": {"description": "The MIME type of the attachment", "nullable": true, "type": "string"},
"content_hash": {"description": "The hash of the attachment content", "nullable": true, "type": "string"},
"size": {
"type": "integer",
"minimum": 0,
"maximum": 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"},
"temp_banned_until": {"nullable": true, "type": "string"},
"pending_deletion_at": {"nullable": true, "type": "string"},
"pending_bulk_message_deletion_at": {"nullable": true, "type": "string"},
"deletion_reason_code": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]},
"deletion_public_reason": {"nullable": true, "type": "string"},
"acls": {"type": "array", "items": {"type": "string"}, "maxItems": 100},
"traits": {"type": "array", "items": {"type": "string"}, "maxItems": 100},
"has_totp": {"type": "boolean"},
"authenticator_types": {"type": "array", "items": {"$ref": "#/components/schemas/Int32Type"}, "maxItems": 10},
"last_active_at": {"nullable": true, "type": "string"},
"last_active_ip": {"nullable": true, "type": "string"},
"last_active_ip_reverse": {"nullable": true, "type": "string"},
"last_active_location": {"nullable": true, "type": "string"}
},
"required": [
"id",
"username",
"discriminator",
"global_name",
"bot",
"system",
"flags",
"premium_flags",
"avatar",
"banner",
"bio",
"pronouns",
"accent_color",
"email",
"email_verified",
"email_bounced",
"has_verified_phone",
"date_of_birth",
"locale",
"premium_type",
"premium_since",
"premium_until",
"premium_grace_ends_at",
"premium_lifetime_sequence",
"suspicious_activity_flags",
"temp_banned_until",
"pending_deletion_at",
"pending_bulk_message_deletion_at",
"deletion_reason_code",
"deletion_public_reason",
"acls",
"traits",
"has_totp",
"authenticator_types",
"last_active_at",
"last_active_ip",
"last_active_ip_reverse",
"last_active_location"
]
},
"PremiumFlags": {
"type": "integer",
"format": "int32",
"minimum": 0,
"maximum": 2147483647,
"description": "A single premium flag value to add or remove"
},
"SuspiciousActivityFlags": {
"type": "integer",
"format": "int32",
"minimum": 0,
"maximum": 2147483647,
"description": "Bitmask of suspicious activity flags that triggered the disable"
},
"CancelBulkMessageDeletionRequest": {
"type": "object",
"properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}},
"required": ["user_id"]
},
"DisableMfaRequest": {
"type": "object",
"properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}},
"required": ["user_id"]
},
"ChangeDobRequest": {
"type": "object",
"properties": {
"user_id": {"$ref": "#/components/schemas/SnowflakeType"},
"date_of_birth": {"type": "string", "description": "New date of birth in YYYY-MM-DD format"}
},
"required": ["user_id", "date_of_birth"]
},
"ChangeEmailRequest": {
"type": "object",
"properties": {
"user_id": {"$ref": "#/components/schemas/SnowflakeType"},
"email": {"$ref": "#/components/schemas/EmailType"}
},
"required": ["user_id", "email"]
},
"ListUserChangeLogResponseSchema": {
"type": "object",
"properties": {
"entries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"event_id": {"type": "string"},
"field": {"type": "string"},
"old_value": {"nullable": true, "type": "string"},
"new_value": {"nullable": true, "type": "string"},
"reason": {"nullable": true, "type": "string"},
"actor_user_id": {"nullable": true, "type": "string"},
"event_at": {"type": "string"}
},
"required": ["event_id", "field", "old_value", "new_value", "reason", "actor_user_id", "event_at"]
},
"maxItems": 200
},
"next_page_token": {"nullable": true, "type": "string"}
},
"required": ["entries", "next_page_token"]
},
"ListUserChangeLogRequest": {
"type": "object",
"properties": {
"user_id": {"$ref": "#/components/schemas/SnowflakeType"},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"format": "int32",
"description": "Maximum number of entries to return"
},
"page_token": {"type": "string", "description": "Pagination token for the next page of results"}
},
"required": ["user_id"]
},
"ChangeUsernameRequest": {
"type": "object",
"properties": {
"user_id": {"$ref": "#/components/schemas/SnowflakeType"},
"username": {"$ref": "#/components/schemas/UsernameType"},
"discriminator": {"$ref": "#/components/schemas/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": 100,
"description": "List of access control permissions to assign"
}
},
"required": ["user_id", "acls"]
},
"SetUserBotStatusRequest": {
"type": "object",
"properties": {
"user_id": {"$ref": "#/components/schemas/SnowflakeType"},
"bot": {"type": "boolean", "description": "Whether the user should be marked as a bot"}
},
"required": ["user_id", "bot"]
},
"SetUserSystemStatusRequest": {
"type": "object",
"properties": {
"user_id": {"$ref": "#/components/schemas/SnowflakeType"},
"system": {"type": "boolean", "description": "Whether the user should be marked as a system user"}
},
"required": ["user_id", "system"]
},
"SetUserTraitsRequest": {
"type": "object",
"properties": {
"user_id": {"$ref": "#/components/schemas/SnowflakeType"},
"traits": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "List of traits to assign to the user"
}
},
"required": ["user_id", "traits"]
},
"TempBanUserRequest": {
"type": "object",
"properties": {
"user_id": {"$ref": "#/components/schemas/SnowflakeType"},
"duration_hours": {
"type": "integer",
"minimum": 0,
"maximum": 8760,
"format": "int32",
"description": "Duration of the ban in hours. Use 0 for a permanent ban (until manually unbanned)."
},
"reason": {"type": "string", "description": "Reason for the temporary ban"}
},
"required": ["user_id", "duration_hours"]
},
"TerminateSessionsResponse": {
"type": "object",
"properties": {"terminated_count": {"$ref": "#/components/schemas/Int32Type"}},
"required": ["terminated_count"]
},
"TerminateSessionsRequest": {
"type": "object",
"properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}},
"required": ["user_id"]
},
"UpdateUserFlagsRequest": {
"type": "object",
"properties": {
"user_id": {"$ref": "#/components/schemas/SnowflakeType"},
"add_flags": {
"type": "array",
"items": {"$ref": "#/components/schemas/UserFlags"},
"maxItems": 64,
"description": "User flags to add"
},
"remove_flags": {
"type": "array",
"items": {"$ref": "#/components/schemas/UserFlags"},
"maxItems": 64,
"description": "User flags to remove"
}
},
"required": ["user_id"]
},
"UpdateHasVerifiedPhoneRequest": {
"type": "object",
"properties": {
"user_id": {"$ref": "#/components/schemas/SnowflakeType"},
"has_verified_phone": {
"type": "boolean",
"description": "Whether the user should be treated as having completed phone verification"
}
},
"required": ["user_id", "has_verified_phone"]
},
"UpdatePremiumFlagsRequest": {
"type": "object",
"properties": {
"user_id": {"$ref": "#/components/schemas/SnowflakeType"},
"add_flags": {
"type": "array",
"items": {"$ref": "#/components/schemas/PremiumFlags"},
"maxItems": 64,
"description": "Premium flags to add"
},
"remove_flags": {
"type": "array",
"items": {"$ref": "#/components/schemas/PremiumFlags"},
"maxItems": 64,
"description": "Premium flags to remove"
}
},
"required": ["user_id"]
},
"UpdateSuspiciousActivityFlagsRequest": {
"type": "object",
"properties": {
"user_id": {"$ref": "#/components/schemas/SnowflakeType"},
"flags": {"$ref": "#/components/schemas/SuspiciousActivityFlags"}
},
"required": ["user_id", "flags"]
},
"VerifyUserEmailRequest": {
"type": "object",
"properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}},
"required": ["user_id"]
},
"BanUserAvatarResponseSchema": {
"type": "object",
"properties": {"hash_short": {"type": "string"}},
"required": ["hash_short"]
},
"BanUserAvatarRequest": {
"type": "object",
"properties": {"reason": {"type": "string"}, "notes": {"type": "string"}}
},
"VoiceDiagnosticsObjectListResponse": {
"type": "object",
"properties": {
"bucket": {"type": "string", "description": "Diagnostics S3 bucket"},
"objects": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {"type": "string", "description": "S3 object key"},
"session_id": {"type": "string", "description": "Voice diagnostics session id"},
"start_ns": {
"type": "string",
"description": "First client event timestamp in the object, in nanoseconds"
},
"end_ns": {
"type": "string",
"description": "Last client event timestamp in the object, in nanoseconds"
},
"last_modified": {
"description": "S3 object last-modified timestamp",
"nullable": true,
"type": "string",
"format": "date-time"
}
},
"required": ["key", "session_id", "start_ns", "end_ns", "last_modified"]
},
"description": "Matching diagnostics objects"
}
},
"required": ["bucket", "objects"]
},
"CreateVoiceRegionResponse": {
"type": "object",
"properties": {
"region": {
"type": "object",
"properties": {
"id": {"type": "string", "description": "Unique identifier for the voice region"},
"name": {"type": "string", "description": "Display name of the voice region"},
"emoji": {"type": "string", "description": "Emoji representing the region"},
"latitude": {"type": "number", "description": "Geographic latitude coordinate"},
"longitude": {"type": "number", "description": "Geographic longitude coordinate"},
"is_default": {"type": "boolean", "description": "Whether this is the default region"},
"vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"},
"required_guild_features": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "Guild features required to use this region"
},
"allowed_guild_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "Guild IDs explicitly allowed to use this region"
},
"allowed_user_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "User IDs explicitly allowed to use this region"
},
"created_at": {
"description": "ISO 8601 timestamp when the region was created",
"nullable": true,
"type": "string"
},
"updated_at": {
"description": "ISO 8601 timestamp when the region was last updated",
"nullable": true,
"type": "string"
}
},
"required": [
"id",
"name",
"emoji",
"latitude",
"longitude",
"is_default",
"vip_only",
"required_guild_features",
"allowed_guild_ids",
"allowed_user_ids",
"created_at",
"updated_at"
],
"description": "Created voice region"
}
},
"required": ["region"]
},
"CreateVoiceRegionRequest": {
"type": "object",
"properties": {
"id": {"type": "string", "description": "Unique identifier for the voice region"},
"name": {"type": "string", "description": "Display name of the voice region"},
"emoji": {"type": "string", "description": "Emoji representing the region"},
"latitude": {"type": "number", "description": "Geographic latitude coordinate"},
"longitude": {"type": "number", "description": "Geographic longitude coordinate"},
"is_default": {"type": "boolean", "description": "Whether this is the default region"},
"vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"},
"required_guild_features": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "Guild features required to use this region"
},
"allowed_guild_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "Guild IDs explicitly allowed to use this region"
},
"allowed_user_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "User IDs explicitly allowed to use this region"
}
},
"required": ["id", "name", "emoji", "latitude", "longitude"]
},
"DeleteVoiceResponse": {
"type": "object",
"properties": {"success": {"type": "boolean", "description": "Whether the deletion was successful"}},
"required": ["success"]
},
"DeleteVoiceRegionRequest": {
"type": "object",
"properties": {"id": {"type": "string", "description": "ID of the voice region to delete"}},
"required": ["id"]
},
"GetVoiceRegionResponse": {
"type": "object",
"properties": {
"region": {
"description": "Voice region details or null if not found",
"nullable": true,
"type": "object",
"properties": {
"id": {"type": "string", "description": "Unique identifier for the voice region"},
"name": {"type": "string", "description": "Display name of the voice region"},
"emoji": {"type": "string", "description": "Emoji representing the region"},
"latitude": {"type": "number", "description": "Geographic latitude coordinate"},
"longitude": {"type": "number", "description": "Geographic longitude coordinate"},
"is_default": {"type": "boolean", "description": "Whether this is the default region"},
"vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"},
"required_guild_features": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "Guild features required to use this region"
},
"allowed_guild_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "Guild IDs explicitly allowed to use this region"
},
"allowed_user_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "User IDs explicitly allowed to use this region"
},
"created_at": {
"description": "ISO 8601 timestamp when the region was created",
"nullable": true,
"type": "string"
},
"updated_at": {
"description": "ISO 8601 timestamp when the region was last updated",
"nullable": true,
"type": "string"
},
"servers": {
"type": "array",
"items": {"$ref": "#/components/schemas/VoiceServerAdminResponse"},
"description": "Voice servers in this region"
}
},
"required": [
"id",
"name",
"emoji",
"latitude",
"longitude",
"is_default",
"vip_only",
"required_guild_features",
"allowed_guild_ids",
"allowed_user_ids",
"created_at",
"updated_at"
]
}
},
"required": ["region"]
},
"VoiceServerAdminResponse": {
"type": "object",
"properties": {
"region_id": {"type": "string", "description": "ID of the region this server belongs to"},
"server_id": {"type": "string", "description": "Unique identifier for the voice server"},
"endpoint": {
"type": "string",
"format": "uri",
"description": "Client signal WebSocket endpoint URL for the voice server"
},
"latitude": {
"description": "Optional geographic latitude override for this server",
"nullable": true,
"type": "number"
},
"longitude": {
"description": "Optional geographic longitude override for this server",
"nullable": true,
"type": "number"
},
"is_active": {"type": "boolean", "description": "Whether the server is currently active"},
"vip_only": {"type": "boolean", "description": "Whether this server is restricted to VIP users"},
"required_guild_features": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "Guild features required to use this server"
},
"allowed_guild_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "Guild IDs explicitly allowed to use this server"
},
"allowed_user_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "User IDs explicitly allowed to use this server"
},
"created_at": {
"description": "ISO 8601 timestamp when the server was created",
"nullable": true,
"type": "string"
},
"updated_at": {
"description": "ISO 8601 timestamp when the server was last updated",
"nullable": true,
"type": "string"
}
},
"required": [
"region_id",
"server_id",
"endpoint",
"latitude",
"longitude",
"is_active",
"vip_only",
"required_guild_features",
"allowed_guild_ids",
"allowed_user_ids",
"created_at",
"updated_at"
]
},
"GetVoiceRegionRequest": {
"type": "object",
"properties": {
"id": {"type": "string", "description": "ID of the voice region to retrieve"},
"include_servers": {"type": "boolean", "description": "Whether to include voice servers in the response"}
},
"required": ["id"]
},
"ListVoiceRegionsResponse": {
"type": "object",
"properties": {
"regions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {"type": "string", "description": "Unique identifier for the voice region"},
"name": {"type": "string", "description": "Display name of the voice region"},
"emoji": {"type": "string", "description": "Emoji representing the region"},
"latitude": {"type": "number", "description": "Geographic latitude coordinate"},
"longitude": {"type": "number", "description": "Geographic longitude coordinate"},
"is_default": {"type": "boolean", "description": "Whether this is the default region"},
"vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"},
"required_guild_features": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "Guild features required to use this region"
},
"allowed_guild_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "Guild IDs explicitly allowed to use this region"
},
"allowed_user_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "User IDs explicitly allowed to use this region"
},
"created_at": {
"description": "ISO 8601 timestamp when the region was created",
"nullable": true,
"type": "string"
},
"updated_at": {
"description": "ISO 8601 timestamp when the region was last updated",
"nullable": true,
"type": "string"
},
"servers": {
"type": "array",
"items": {"$ref": "#/components/schemas/VoiceServerAdminResponse"},
"description": "Voice servers in this region"
}
},
"required": [
"id",
"name",
"emoji",
"latitude",
"longitude",
"is_default",
"vip_only",
"required_guild_features",
"allowed_guild_ids",
"allowed_user_ids",
"created_at",
"updated_at"
]
},
"description": "List of voice regions"
}
},
"required": ["regions"]
},
"ListVoiceRegionsRequest": {
"type": "object",
"properties": {
"include_servers": {"type": "boolean", "description": "Whether to include voice servers in the response"}
}
},
"UpdateVoiceRegionResponse": {
"type": "object",
"properties": {
"region": {
"type": "object",
"properties": {
"id": {"type": "string", "description": "Unique identifier for the voice region"},
"name": {"type": "string", "description": "Display name of the voice region"},
"emoji": {"type": "string", "description": "Emoji representing the region"},
"latitude": {"type": "number", "description": "Geographic latitude coordinate"},
"longitude": {"type": "number", "description": "Geographic longitude coordinate"},
"is_default": {"type": "boolean", "description": "Whether this is the default region"},
"vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"},
"required_guild_features": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "Guild features required to use this region"
},
"allowed_guild_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "Guild IDs explicitly allowed to use this region"
},
"allowed_user_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "User IDs explicitly allowed to use this region"
},
"created_at": {
"description": "ISO 8601 timestamp when the region was created",
"nullable": true,
"type": "string"
},
"updated_at": {
"description": "ISO 8601 timestamp when the region was last updated",
"nullable": true,
"type": "string"
}
},
"required": [
"id",
"name",
"emoji",
"latitude",
"longitude",
"is_default",
"vip_only",
"required_guild_features",
"allowed_guild_ids",
"allowed_user_ids",
"created_at",
"updated_at"
],
"description": "Updated voice region"
}
},
"required": ["region"]
},
"UpdateVoiceRegionRequest": {
"type": "object",
"properties": {
"id": {"type": "string", "description": "Unique identifier for the voice region"},
"name": {"type": "string", "description": "Display name of the voice region"},
"emoji": {"type": "string", "description": "Emoji representing the region"},
"latitude": {"type": "number", "description": "Geographic latitude coordinate"},
"longitude": {"type": "number", "description": "Geographic longitude coordinate"},
"is_default": {"type": "boolean", "description": "Whether this is the default region"},
"vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"},
"required_guild_features": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "Guild features required to use this region"
},
"allowed_guild_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "Guild IDs explicitly allowed to use this region"
},
"allowed_user_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "User IDs explicitly allowed to use this region"
}
},
"required": ["id"]
},
"CreateVoiceServerResponse": {
"type": "object",
"properties": {
"server": {
"type": "object",
"properties": {
"region_id": {"type": "string", "description": "ID of the region this server belongs to"},
"server_id": {"type": "string", "description": "Unique identifier for the voice server"},
"endpoint": {
"type": "string",
"format": "uri",
"description": "Client signal WebSocket endpoint URL for the voice server"
},
"latitude": {
"description": "Optional geographic latitude override for this server",
"nullable": true,
"type": "number"
},
"longitude": {
"description": "Optional geographic longitude override for this server",
"nullable": true,
"type": "number"
},
"is_active": {"type": "boolean", "description": "Whether the server is currently active"},
"vip_only": {"type": "boolean", "description": "Whether this server is restricted to VIP users"},
"required_guild_features": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "Guild features required to use this server"
},
"allowed_guild_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "Guild IDs explicitly allowed to use this server"
},
"allowed_user_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "User IDs explicitly allowed to use this server"
},
"created_at": {
"description": "ISO 8601 timestamp when the server was created",
"nullable": true,
"type": "string"
},
"updated_at": {
"description": "ISO 8601 timestamp when the server was last updated",
"nullable": true,
"type": "string"
}
},
"required": [
"region_id",
"server_id",
"endpoint",
"latitude",
"longitude",
"is_active",
"vip_only",
"required_guild_features",
"allowed_guild_ids",
"allowed_user_ids",
"created_at",
"updated_at"
],
"description": "Created voice server"
}
},
"required": ["server"]
},
"CreateVoiceServerRequest": {
"type": "object",
"properties": {
"region_id": {"type": "string", "description": "ID of the region this server belongs to"},
"server_id": {"type": "string", "description": "Unique identifier for the voice server"},
"endpoint": {
"type": "string",
"format": "uri",
"description": "Client signal WebSocket endpoint URL for the voice server"
},
"api_key": {"type": "string", "description": "API key for authenticating with the voice server"},
"api_secret": {"type": "string", "description": "API secret for authenticating with the voice server"},
"latitude": {
"description": "Optional geographic latitude override for this server",
"nullable": true,
"type": "number"
},
"longitude": {
"description": "Optional geographic longitude override for this server",
"nullable": true,
"type": "number"
},
"is_active": {"type": "boolean", "description": "Whether the server is currently active"},
"vip_only": {"type": "boolean", "description": "Whether this server is restricted to VIP users"},
"required_guild_features": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "Guild features required to use this server"
},
"allowed_guild_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "Guild IDs explicitly allowed to use this server"
},
"allowed_user_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "User IDs explicitly allowed to use this server"
}
},
"required": ["region_id", "server_id", "endpoint", "api_key", "api_secret"]
},
"DeleteVoiceServerRequest": {
"type": "object",
"properties": {
"region_id": {"type": "string", "description": "ID of the region the server belongs to"},
"server_id": {"type": "string", "description": "ID of the voice server to delete"}
},
"required": ["region_id", "server_id"]
},
"GetVoiceServerResponse": {
"type": "object",
"properties": {
"server": {
"description": "Voice server details or null if not found",
"nullable": true,
"allOf": [{"$ref": "#/components/schemas/VoiceServerAdminResponse"}]
}
},
"required": ["server"]
},
"GetVoiceServerRequest": {
"type": "object",
"properties": {
"region_id": {"type": "string", "description": "ID of the region the server belongs to"},
"server_id": {"type": "string", "description": "ID of the voice server to retrieve"}
},
"required": ["region_id", "server_id"]
},
"ListVoiceServersResponse": {
"type": "object",
"properties": {
"servers": {
"type": "array",
"items": {"$ref": "#/components/schemas/VoiceServerAdminResponse"},
"description": "List of voice servers"
}
},
"required": ["servers"]
},
"ListVoiceServersRequest": {
"type": "object",
"properties": {"region_id": {"type": "string", "description": "ID of the region to list servers for"}},
"required": ["region_id"]
},
"UpdateVoiceServerResponse": {
"type": "object",
"properties": {
"server": {
"type": "object",
"properties": {
"region_id": {"type": "string", "description": "ID of the region this server belongs to"},
"server_id": {"type": "string", "description": "Unique identifier for the voice server"},
"endpoint": {
"type": "string",
"format": "uri",
"description": "Client signal WebSocket endpoint URL for the voice server"
},
"latitude": {
"description": "Optional geographic latitude override for this server",
"nullable": true,
"type": "number"
},
"longitude": {
"description": "Optional geographic longitude override for this server",
"nullable": true,
"type": "number"
},
"is_active": {"type": "boolean", "description": "Whether the server is currently active"},
"vip_only": {"type": "boolean", "description": "Whether this server is restricted to VIP users"},
"required_guild_features": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "Guild features required to use this server"
},
"allowed_guild_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "Guild IDs explicitly allowed to use this server"
},
"allowed_user_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "User IDs explicitly allowed to use this server"
},
"created_at": {
"description": "ISO 8601 timestamp when the server was created",
"nullable": true,
"type": "string"
},
"updated_at": {
"description": "ISO 8601 timestamp when the server was last updated",
"nullable": true,
"type": "string"
}
},
"required": [
"region_id",
"server_id",
"endpoint",
"latitude",
"longitude",
"is_active",
"vip_only",
"required_guild_features",
"allowed_guild_ids",
"allowed_user_ids",
"created_at",
"updated_at"
],
"description": "Updated voice server"
}
},
"required": ["server"]
},
"UpdateVoiceServerRequest": {
"type": "object",
"properties": {
"region_id": {"type": "string", "description": "ID of the region this server belongs to"},
"server_id": {"type": "string", "description": "Unique identifier for the voice server"},
"endpoint": {
"type": "string",
"format": "uri",
"description": "Client signal WebSocket endpoint URL for the voice server"
},
"api_key": {"type": "string", "description": "API key for authenticating with the voice server"},
"api_secret": {"type": "string", "description": "API secret for authenticating with the voice server"},
"latitude": {
"description": "Optional geographic latitude override for this server",
"nullable": true,
"type": "number"
},
"longitude": {
"description": "Optional geographic longitude override for this server",
"nullable": true,
"type": "number"
},
"is_active": {"type": "boolean", "description": "Whether the server is currently active"},
"vip_only": {"type": "boolean", "description": "Whether this server is restricted to VIP users"},
"required_guild_features": {
"type": "array",
"items": {"type": "string"},
"maxItems": 100,
"description": "Guild features required to use this server"
},
"allowed_guild_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "Guild IDs explicitly allowed to use this server"
},
"allowed_user_ids": {
"type": "array",
"items": {"$ref": "#/components/schemas/SnowflakeType"},
"maxItems": 1000,
"description": "User IDs explicitly allowed to use this server"
}
},
"required": ["region_id", "server_id"]
}
},
"securitySchemes": {
"botToken": {
"type": "apiKey",
"in": "header",
"name": "Authorization",
"description": "Bot token: `Authorization: Bot <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"}]
}