{
  "components": {
    "headers": {
      "Retry-After": {
        "description": "Whole seconds to wait before retrying (429 only)",
        "schema": {
          "type": "integer"
        }
      },
      "X-RateLimit-Bucket": {
        "description": "Bucket id: first 16 bytes of SHA-256(\"METHOD /route/{template}\"), hex. Windows are kept per bot and per major parameter (channel / guild / webhook id).",
        "schema": {
          "example": "3f4c1a0b9d2e7f6a5c8b1d0e2f3a4b5c",
          "type": "string"
        }
      },
      "X-RateLimit-Global": {
        "description": "`true` when the global limit was hit (429 only)",
        "schema": {
          "type": "boolean"
        }
      },
      "X-RateLimit-Limit": {
        "description": "Requests allowed in this bucket's window",
        "schema": {
          "type": "integer"
        }
      },
      "X-RateLimit-Remaining": {
        "description": "Requests left in the current window",
        "schema": {
          "type": "integer"
        }
      },
      "X-RateLimit-Reset": {
        "description": "Unix time (seconds) at which the window resets",
        "schema": {
          "type": "integer"
        }
      },
      "X-RateLimit-Reset-After": {
        "description": "Seconds until the window resets (fractional)",
        "schema": {
          "example": 4.982,
          "type": "number"
        }
      },
      "X-RateLimit-Scope": {
        "description": "`user` for a bucket limit, `global` for the fleet-wide 50 requests/s (429 only)",
        "schema": {
          "enum": [
            "user",
            "global"
          ],
          "type": "string"
        }
      }
    },
    "responses": {
      "BadRequest": {
        "content": {
          "application/json": {
            "example": {
              "code": 50035,
              "message": "bot_payload_json: embeds[0].title exceeds 256 characters"
            },
            "schema": {
              "$ref": "#/components/schemas/ApiErrorBody"
            }
          }
        },
        "description": "Malformed or over-limit body / parameter (`50035 Invalid Form Body`; the message names the field, e.g. `bot_payload_json: embeds[0].title …`). Interaction already acknowledged is `40060`.",
        "headers": {
          "X-RateLimit-Bucket": {
            "$ref": "#/components/headers/X-RateLimit-Bucket"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/X-RateLimit-Reset"
          },
          "X-RateLimit-Reset-After": {
            "$ref": "#/components/headers/X-RateLimit-Reset-After"
          }
        }
      },
      "Forbidden": {
        "content": {
          "application/json": {
            "example": {
              "code": 50001,
              "message": "missing permission"
            },
            "schema": {
              "$ref": "#/components/schemas/ApiErrorBody"
            }
          }
        },
        "description": "The bot lacks the permission in this guild / channel (`50001 Missing Access`).",
        "headers": {
          "X-RateLimit-Bucket": {
            "$ref": "#/components/headers/X-RateLimit-Bucket"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/X-RateLimit-Reset"
          },
          "X-RateLimit-Reset-After": {
            "$ref": "#/components/headers/X-RateLimit-Reset-After"
          }
        }
      },
      "NotFound": {
        "content": {
          "application/json": {
            "example": {
              "code": 10003,
              "message": "channel not found"
            },
            "schema": {
              "$ref": "#/components/schemas/ApiErrorBody"
            }
          }
        },
        "description": "Unknown snowflake for this bot (`10003`; `10062 Unknown interaction` when an interaction token expired — 15 minutes).",
        "headers": {
          "X-RateLimit-Bucket": {
            "$ref": "#/components/headers/X-RateLimit-Bucket"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/X-RateLimit-Reset"
          },
          "X-RateLimit-Reset-After": {
            "$ref": "#/components/headers/X-RateLimit-Reset-After"
          }
        }
      },
      "NotSupported": {
        "content": {
          "application/json": {
            "example": {
              "code": 0,
              "message": "endpoint not yet implemented"
            },
            "schema": {
              "$ref": "#/components/schemas/ApiErrorBody"
            }
          }
        },
        "description": "Any `/api/v10` path that is not in this document (the Discord endpoints Voidcom does not implement — see *Differences from Discord*). Also interaction callback types 8 (autocomplete) and 9 (modal). voidcom.py raises `discord.NotSupportedOnVoidcom`, voidcom.js throws `NotSupportedOnVoidcomError`."
      },
      "RateLimited": {
        "content": {
          "application/json": {
            "example": {
              "code": 0,
              "global": false,
              "message": "You are being rate limited.",
              "retry_after": 4.982
            },
            "schema": {
              "$ref": "#/components/schemas/ApiErrorBody"
            }
          }
        },
        "description": "Rate limited: `X-RateLimit-Scope: user` for a route bucket, `global` (+ `X-RateLimit-Global: true`, body `global: true`) for the fleet-wide 50 requests/s.",
        "headers": {
          "Retry-After": {
            "$ref": "#/components/headers/Retry-After"
          },
          "X-RateLimit-Bucket": {
            "$ref": "#/components/headers/X-RateLimit-Bucket"
          },
          "X-RateLimit-Global": {
            "$ref": "#/components/headers/X-RateLimit-Global"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/X-RateLimit-Reset"
          },
          "X-RateLimit-Reset-After": {
            "$ref": "#/components/headers/X-RateLimit-Reset-After"
          },
          "X-RateLimit-Scope": {
            "$ref": "#/components/headers/X-RateLimit-Scope"
          }
        }
      },
      "ServerError": {
        "content": {
          "application/json": {
            "example": {
              "code": 0,
              "message": "Internal Server Error"
            },
            "schema": {
              "$ref": "#/components/schemas/ApiErrorBody"
            }
          }
        },
        "description": "`500` bot-api failure, `502` the main server answered with an unexpected gRPC status, `501` the main server has no implementation for this call.",
        "headers": {
          "X-RateLimit-Bucket": {
            "$ref": "#/components/headers/X-RateLimit-Bucket"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/X-RateLimit-Reset"
          },
          "X-RateLimit-Reset-After": {
            "$ref": "#/components/headers/X-RateLimit-Reset-After"
          }
        }
      },
      "Unauthorized": {
        "content": {
          "application/json": {
            "example": {
              "code": 0,
              "message": "invalid bot token"
            },
            "schema": {
              "$ref": "#/components/schemas/ApiErrorBody"
            }
          }
        },
        "description": "Missing or invalid `Authorization: Bot <token>` (or webhook / interaction token).",
        "headers": {
          "X-RateLimit-Bucket": {
            "$ref": "#/components/headers/X-RateLimit-Bucket"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/X-RateLimit-Reset"
          },
          "X-RateLimit-Reset-After": {
            "$ref": "#/components/headers/X-RateLimit-Reset-After"
          }
        }
      }
    },
    "schemas": {
      "ApiErrorBody": {
        "description": "Every non-2xx body, Discord's shape. Also the OpenAPI error schema\n(`components.schemas.ApiErrorBody`, referenced by every 4XX/5XX response).",
        "example": {
          "code": 50035,
          "message": "Invalid Form Body"
        },
        "properties": {
          "code": {
            "description": "Discord-style numeric error code. 0 for \"generic\"; specific codes are\ncatalogued at https://discord.com/developers/docs/topics/opcodes-and-status-codes\n— we adopt the same numbering where the meaning lines up exactly.\nUsed here: 0 generic, 10003 Unknown Channel (any not-found), 10062 Unknown\ninteraction, 40060 Interaction already acknowledged, 50001 Missing Access,\n50035 Invalid Form Body.",
            "example": 50035,
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "global": {
            "description": "Rate-limit-only: true if this is the cross-bucket global limit.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "message": {
            "description": "Discord-style human-readable error message. Some libraries log this\nverbatim so keep it user-meaningful, not a stack trace.",
            "type": "string"
          },
          "retry_after": {
            "description": "Rate-limit-only: seconds until the bucket resets. Discord serializes\nthis as a float (e.g. 0.5).",
            "format": "float",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "message",
          "code"
        ],
        "type": "object"
      },
      "ApplicationCommand": {
        "example": {
          "application_id": "1300000000000000005",
          "description": "Replies with Pong!",
          "dm_permission": true,
          "id": "1300000000000000008",
          "name": "ping",
          "options": [],
          "type": 1,
          "version": "1"
        },
        "properties": {
          "application_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000005",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          },
          "default_member_permissions": {
            "description": "64-bit permission bitfield as string.",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": "string"
          },
          "dm_permission": {
            "type": "boolean"
          },
          "guild_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000001",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000008",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "options": {
            "items": {
              "$ref": "#/components/schemas/ApplicationCommandOption"
            },
            "type": "array"
          },
          "type": {
            "description": "1 = CHAT_INPUT, 2 = USER, 3 = MESSAGE.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "version": {
            "description": "Used in version increment on update.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "application_id",
          "name"
        ],
        "type": "object"
      },
      "ApplicationCommandOption": {
        "example": {
          "description": "What to echo",
          "name": "text",
          "required": true,
          "type": 3
        },
        "properties": {
          "autocomplete": {
            "type": "boolean"
          },
          "channel_types": {
            "items": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            },
            "type": "array"
          },
          "choices": {
            "items": {
              "$ref": "#/components/schemas/ApplicationCommandOptionChoice"
            },
            "type": "array"
          },
          "description": {
            "type": "string"
          },
          "max_length": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "max_value": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "min_length": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "min_value": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "options": {
            "items": {
              "$ref": "#/components/schemas/ApplicationCommandOption"
            },
            "type": "array"
          },
          "required": {
            "type": "boolean"
          },
          "type": {
            "description": "Option type 1-11; see plan / Discord docs.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "type",
          "name",
          "description"
        ],
        "type": "object"
      },
      "ApplicationCommandOptionChoice": {
        "example": {
          "name": "Red",
          "value": "red"
        },
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "description": "String, Integer, or Number (serialized via serde_json::Value)."
          }
        },
        "required": [
          "name",
          "value"
        ],
        "type": "object"
      },
      "Attachment": {
        "example": {
          "content_type": "image/png",
          "filename": "screenshot.png",
          "height": 600,
          "id": "1300000000000000010",
          "proxy_url": "https://voidcom.s3.fr-par.scw.cloud/attachments/1300000000000000010/screenshot.png",
          "size": 24576,
          "url": "https://voidcom.s3.fr-par.scw.cloud/attachments/1300000000000000010/screenshot.png",
          "width": 800
        },
        "properties": {
          "content_type": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "ephemeral": {
            "type": "boolean"
          },
          "filename": {
            "type": "string"
          },
          "height": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000010",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          },
          "proxy_url": {
            "type": "string"
          },
          "size": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "url": {
            "type": "string"
          },
          "width": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "filename",
          "size",
          "url",
          "proxy_url"
        ],
        "type": "object"
      },
      "AuditLogEntry": {
        "example": {
          "action_type": 10,
          "changes": [],
          "id": "1300000000000000012",
          "reason": null,
          "target_id": "1300000000000000002",
          "user_id": "1300000000000000004"
        },
        "properties": {
          "action_type": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "changes": {
            "items": {},
            "type": "array"
          },
          "id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000012",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          },
          "reason": {
            "type": [
              "string",
              "null"
            ]
          },
          "target_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000002",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "user_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000004",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "action_type",
          "changes"
        ],
        "type": "object"
      },
      "AuditLogResponse": {
        "example": {
          "entries": [
            {
              "action_type": 10,
              "changes": [],
              "id": "1300000000000000012",
              "reason": null,
              "target_id": "1300000000000000002",
              "user_id": "1300000000000000004"
            }
          ]
        },
        "properties": {
          "entries": {
            "items": {
              "$ref": "#/components/schemas/AuditLogEntry"
            },
            "type": "array"
          }
        },
        "required": [
          "entries"
        ],
        "type": "object"
      },
      "Ban": {
        "example": {
          "reason": "spam",
          "user": {
            "avatar": null,
            "bot": true,
            "discriminator": "0",
            "global_name": "Example Bot",
            "id": "1300000000000000004",
            "username": "example-bot"
          }
        },
        "properties": {
          "reason": {
            "type": [
              "string",
              "null"
            ]
          },
          "user": {
            "$ref": "#/components/schemas/User"
          }
        },
        "required": [
          "user"
        ],
        "type": "object"
      },
      "BulkDeleteBody": {
        "example": {
          "messages": [
            "1300000000000000003",
            "1300000000000000013"
          ]
        },
        "properties": {
          "messages": {
            "items": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000003",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "messages"
        ],
        "type": "object"
      },
      "Channel": {
        "description": "Discord-shaped Channel. Keys discord.py's `_BaseGuildChannel` TypedDict\nrequires (`name`, `position`, `permission_overwrites`, `nsfw`, `parent_id`)\nare always present; `guild_id` is omitted on DMs like Discord does.",
        "example": {
          "created_at": "2026-01-01T00:00:00.000Z",
          "guild_id": "1300000000000000001",
          "id": "1300000000000000002",
          "last_message_id": "1300000000000000003",
          "name": "general",
          "nsfw": false,
          "parent_id": null,
          "permission_overwrites": [],
          "position": 0,
          "rate_limit_per_user": 0,
          "topic": "Welcome",
          "type": 0
        },
        "properties": {
          "bitrate": {
            "description": "Voice / stage channels only (discord.py `VoiceChannel` reads both as\nhard keys); omitted on text channels like Discord.",
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "created_at": {
            "description": "ISO8601 of channel creation (Discord derives from snowflake; we set\nexplicitly so libraries that don't reverse snowflakes still see it).",
            "type": [
              "string",
              "null"
            ]
          },
          "guild_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000001",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000002",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          },
          "last_message_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000003",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "nsfw": {
            "type": "boolean"
          },
          "parent_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000002",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "permission_overwrites": {
            "items": {
              "$ref": "#/components/schemas/PermissionOverwrite"
            },
            "type": "array"
          },
          "position": {
            "format": "int32",
            "type": "integer"
          },
          "rate_limit_per_user": {
            "description": "Seconds a user must wait between messages (0 = off).",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "recipients": {
            "items": {
              "$ref": "#/components/schemas/User"
            },
            "type": "array"
          },
          "topic": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "example": 0,
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "user_limit": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "voidcom_e2e_enabled": {
            "description": "Voidcom-native: E2EE active on this channel.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "voidcom_video_quality": {
            "description": "Voidcom-native: video quality cap (\"720p\", \"auto\").",
            "type": [
              "string",
              "null"
            ]
          },
          "voidcom_voice_quality": {
            "description": "Voidcom-native: voice quality preset.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "CreateApplicationCommandBody": {
        "example": {
          "description": "Replies with Pong!",
          "name": "ping",
          "options": [],
          "type": 1
        },
        "properties": {
          "default_member_permissions": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": "string"
          },
          "dm_permission": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "options": {
            "items": {
              "$ref": "#/components/schemas/ApplicationCommandOption"
            },
            "type": "array"
          },
          "type": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "CreateChannelBody": {
        "example": {
          "name": "announcements",
          "topic": "Release notes",
          "type": 0
        },
        "properties": {
          "name": {
            "type": "string"
          },
          "nsfw": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "parent_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000002",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "rate_limit_per_user": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "topic": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "user_limit": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "CreateRoleBody": {
        "example": {
          "color": 3447003,
          "hoist": true,
          "mentionable": true,
          "name": "Moderator",
          "permissions": "8192"
        },
        "properties": {
          "color": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "hoist": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "icon": {
            "type": [
              "string",
              "null"
            ]
          },
          "mentionable": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "permissions": {
            "type": [
              "string",
              "null"
            ]
          },
          "unicode_emoji": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "CreateWebhookBody": {
        "example": {
          "name": "CI"
        },
        "properties": {
          "avatar": {
            "type": [
              "string",
              "null"
            ]
          },
          "github_secret": {
            "description": "Optional HMAC secret for GitHub-style webhook delivery signatures.",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "slack_secret": {
            "description": "Optional Slack signing secret for `v0=` request signatures.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "EditChannelBody": {
        "example": {
          "name": "general-chat",
          "topic": "Talk"
        },
        "properties": {
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "nsfw": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "parent_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000002",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "rate_limit_per_user": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "topic": {
            "type": [
              "string",
              "null"
            ]
          },
          "user_limit": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "EditMemberBody": {
        "example": {
          "nick": "Bot Helper",
          "roles": [
            "1300000000000000007"
          ]
        },
        "properties": {
          "channel_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000002",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "communication_disabled_until": {
            "type": [
              "string",
              "null"
            ]
          },
          "deaf": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "mute": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "nick": {
            "type": [
              "string",
              "null"
            ]
          },
          "roles": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "EditMessageBody": {
        "example": {
          "content": "hello (edited)"
        },
        "properties": {
          "attachments": {
            "items": {
              "$ref": "#/components/schemas/Attachment"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "components": {
            "items": {},
            "maxItems": 5,
            "type": [
              "array",
              "null"
            ]
          },
          "content": {
            "type": [
              "string",
              "null"
            ]
          },
          "embeds": {
            "items": {
              "$ref": "#/components/schemas/Embed"
            },
            "maxItems": 10,
            "type": [
              "array",
              "null"
            ]
          },
          "flags": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "EditRoleBody": {
        "example": {
          "name": "Mods"
        },
        "properties": {
          "color": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "hoist": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "mentionable": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "permissions": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "EditWebhookBody": {
        "example": {
          "name": "CI (staging)"
        },
        "properties": {
          "avatar": {
            "type": [
              "string",
              "null"
            ]
          },
          "channel_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000002",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "Embed": {
        "description": "Discord-shaped embed. Limits are the ones the server enforces on\n`bot_payload_json` (B42, `server/src/services/bot_payload.rs`): at most 10\nembeds per message and 6000 characters across an embed's text fields.",
        "example": {
          "color": 3066993,
          "description": "Build 76 is live",
          "fields": [
            {
              "inline": true,
              "name": "Duration",
              "value": "4 min"
            }
          ],
          "footer": {
            "text": "CI"
          },
          "title": "Deploy finished",
          "url": "https://voidcom.app"
        },
        "properties": {
          "author": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/EmbedAuthor"
              }
            ]
          },
          "color": {
            "format": "int32",
            "maximum": 16777215,
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "description": {
            "maxLength": 4096,
            "type": [
              "string",
              "null"
            ]
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/EmbedField"
            },
            "maxItems": 25,
            "type": "array"
          },
          "footer": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/EmbedFooter"
              }
            ]
          },
          "image": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/EmbedImage"
              }
            ]
          },
          "provider": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/EmbedProvider"
              }
            ]
          },
          "thumbnail": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/EmbedImage"
              }
            ]
          },
          "timestamp": {
            "description": "ISO8601.",
            "type": [
              "string",
              "null"
            ]
          },
          "title": {
            "maxLength": 256,
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "maxLength": 2048,
            "type": [
              "string",
              "null"
            ]
          },
          "video": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/EmbedImage"
              }
            ]
          }
        },
        "type": "object"
      },
      "EmbedAuthor": {
        "example": {
          "name": "Voidcom CI",
          "url": "https://voidcom.app"
        },
        "properties": {
          "icon_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "maxLength": 256,
            "type": "string"
          },
          "proxy_icon_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "EmbedField": {
        "example": {
          "inline": true,
          "name": "Duration",
          "value": "4 min"
        },
        "properties": {
          "inline": {
            "type": "boolean"
          },
          "name": {
            "maxLength": 256,
            "type": "string"
          },
          "value": {
            "maxLength": 1024,
            "type": "string"
          }
        },
        "required": [
          "name",
          "value"
        ],
        "type": "object"
      },
      "EmbedFooter": {
        "example": {
          "text": "CI"
        },
        "properties": {
          "icon_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "proxy_icon_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "text": {
            "maxLength": 2048,
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "EmbedImage": {
        "example": {
          "height": 630,
          "url": "https://voidcom.app/og.png",
          "width": 1200
        },
        "properties": {
          "height": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "proxy_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "maxLength": 2048,
            "type": "string"
          },
          "width": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "EmbedProvider": {
        "example": {
          "name": "Voidcom",
          "url": "https://voidcom.app"
        },
        "properties": {
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "Emoji": {
        "description": "Discord emoji. Unicode emoji have `id = None` and `name = \"🦀\"`; custom\nemoji have a snowflake `id` and bare name.",
        "example": {
          "animated": false,
          "available": true,
          "id": null,
          "managed": false,
          "name": "👍",
          "require_colons": false,
          "roles": []
        },
        "properties": {
          "animated": {
            "type": "boolean"
          },
          "available": {
            "type": "boolean"
          },
          "id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000011",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "managed": {
            "type": "boolean"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "require_colons": {
            "type": "boolean"
          },
          "roles": {
            "items": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000007",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            },
            "type": "array"
          },
          "user": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          }
        },
        "type": "object"
      },
      "ExecuteWebhookBody": {
        "example": {
          "content": "Deploy finished",
          "username": "CI"
        },
        "properties": {
          "allowed_mentions": {},
          "avatar_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "components": {
            "items": {},
            "maxItems": 5,
            "type": "array"
          },
          "content": {
            "type": [
              "string",
              "null"
            ]
          },
          "embeds": {
            "items": {
              "$ref": "#/components/schemas/Embed"
            },
            "maxItems": 10,
            "type": "array"
          },
          "flags": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "thread_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000000",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "tts": {
            "type": "boolean"
          },
          "username": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "GatewayBotResponse": {
        "example": {
          "session_start_limit": {
            "max_concurrency": 1,
            "remaining": 999,
            "reset_after": 86400000,
            "total": 1000
          },
          "shards": 1,
          "url": "wss://api.voidcom.app/ws"
        },
        "properties": {
          "session_start_limit": {
            "$ref": "#/components/schemas/SessionStartLimit"
          },
          "shards": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url",
          "shards",
          "session_start_limit"
        ],
        "type": "object"
      },
      "Guild": {
        "description": "Discord-shaped Guild (server) object.\nhttps://discord.com/developers/docs/resources/guild#guild-object\n\nEvery key discord.py's `Guild` TypedDict marks required is always present\n(`null` / `[]` / `0` when Voidcom has no equivalent); only `NotRequired`\nkeys (`channels`, `members`, `unavailable`, …) are omitted when unset.",
        "example": {
          "afk_channel_id": null,
          "afk_timeout": 0,
          "application_id": null,
          "banner": null,
          "default_message_notifications": 0,
          "description": "The official server",
          "discovery_splash": null,
          "emojis": [],
          "explicit_content_filter": 0,
          "features": [],
          "guild_scheduled_events": [],
          "icon": null,
          "id": "1300000000000000001",
          "incidents_data": null,
          "member_count": 3,
          "mfa_level": 0,
          "name": "Voidcom HQ",
          "nsfw_level": 0,
          "owner_id": "1300000000000000004",
          "permissions": "0",
          "preferred_locale": "en-US",
          "premium_tier": 0,
          "public_updates_channel_id": null,
          "region": "auto",
          "roles": [
            {
              "color": 3447003,
              "hoist": true,
              "id": "1300000000000000007",
              "managed": false,
              "mentionable": true,
              "name": "Moderator",
              "permissions": "8192",
              "position": 1
            }
          ],
          "rules_channel_id": null,
          "splash": null,
          "stage_instances": [],
          "stickers": [],
          "system_channel_flags": 0,
          "system_channel_id": null,
          "vanity_url_code": null,
          "verification_level": 0
        },
        "properties": {
          "afk_channel_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000001",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "afk_timeout": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "application_id": {
            "description": "Application ID of the bot that created this guild, if any.",
            "example": "1300000000000000005",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "banner": {
            "type": [
              "string",
              "null"
            ]
          },
          "channels": {
            "description": "Channels embedded in GUILD_CREATE dispatch payloads.",
            "items": {
              "$ref": "#/components/schemas/Channel"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "default_message_notifications": {
            "description": "Default message notification level (0 = all, 1 = mentions).",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "discovery_splash": {
            "type": [
              "string",
              "null"
            ]
          },
          "emojis": {
            "items": {
              "$ref": "#/components/schemas/Emoji"
            },
            "type": "array"
          },
          "explicit_content_filter": {
            "description": "Explicit content filter level (0 = disabled).",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "features": {
            "description": "Feature flags (Discord strings like \"COMMUNITY\"). Voidcom may publish\nits own here, prefixed with `VOIDCOM_`.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "guild_scheduled_events": {
            "items": {},
            "type": "array"
          },
          "icon": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000001",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          },
          "incidents_data": {},
          "joined_at": {
            "description": "When the bot joined; set when the guild is fetched as a member.",
            "type": [
              "string",
              "null"
            ]
          },
          "large": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "member_count": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "members": {
            "description": "Members embedded in GUILD_CREATE (the bot itself at least).",
            "items": {
              "$ref": "#/components/schemas/GuildMember"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "mfa_level": {
            "description": "MFA-required level (0 = none, 1 = elevated).",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "nsfw_level": {
            "description": "NSFW level (0 = default).",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "owner_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000004",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          },
          "permissions": {
            "description": "Default permissions for `@everyone`.",
            "type": "string"
          },
          "preferred_locale": {
            "type": "string"
          },
          "premium_tier": {
            "description": "Premium tier (0 = none).",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "presences": {
            "description": "Presences embedded in GUILD_CREATE for small guilds.",
            "items": {},
            "type": [
              "array",
              "null"
            ]
          },
          "public_updates_channel_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000001",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "region": {
            "description": "Voice region (legacy; Voidcom auto-selects).",
            "type": "string"
          },
          "roles": {
            "items": {
              "$ref": "#/components/schemas/Role"
            },
            "type": "array"
          },
          "rules_channel_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000001",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "splash": {
            "type": [
              "string",
              "null"
            ]
          },
          "stage_instances": {
            "items": {},
            "type": "array"
          },
          "stickers": {
            "items": {},
            "type": "array"
          },
          "system_channel_flags": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "system_channel_id": {
            "description": "System channel id.",
            "example": "1300000000000000001",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "threads": {
            "description": "Threads embedded in GUILD_CREATE.",
            "items": {
              "$ref": "#/components/schemas/Channel"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "unavailable": {
            "description": "`false` on GUILD_CREATE (discord.py keeps a guild whose GUILD_CREATE\nlacks the key as available too, but Discord sends it).",
            "type": [
              "boolean",
              "null"
            ]
          },
          "vanity_url_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "verification_level": {
            "description": "Verification level (0 = none).",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "voice_states": {
            "description": "Voice states embedded in GUILD_CREATE.",
            "items": {},
            "type": [
              "array",
              "null"
            ]
          },
          "voidcom_e2e_default_on": {
            "description": "Voidcom-native: server-side per-channel encryption is on for the\n`voidcom_e2e_default_on` value.",
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "owner_id",
          "verification_level",
          "default_message_notifications",
          "explicit_content_filter",
          "roles",
          "emojis"
        ],
        "type": "object"
      },
      "GuildMember": {
        "description": "Discord-shaped Guild Member.",
        "example": {
          "deaf": false,
          "flags": 0,
          "joined_at": "2026-01-01T00:00:00.000Z",
          "mute": false,
          "nick": null,
          "roles": [
            "1300000000000000007"
          ],
          "user": {
            "avatar": null,
            "bot": true,
            "discriminator": "0",
            "global_name": "Example Bot",
            "id": "1300000000000000004",
            "username": "example-bot"
          }
        },
        "properties": {
          "avatar": {
            "type": [
              "string",
              "null"
            ]
          },
          "communication_disabled_until": {
            "description": "Communication timeout timestamp (ISO8601). None = not timed out.",
            "type": [
              "string",
              "null"
            ]
          },
          "deaf": {
            "type": "boolean"
          },
          "flags": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "joined_at": {
            "type": "string"
          },
          "mute": {
            "type": "boolean"
          },
          "nick": {
            "type": [
              "string",
              "null"
            ]
          },
          "pending": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "premium_since": {
            "type": [
              "string",
              "null"
            ]
          },
          "roles": {
            "items": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000007",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            },
            "type": "array"
          },
          "user": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/User",
                "description": "Optional in some contexts (e.g. embedded in MESSAGE_CREATE)."
              }
            ]
          }
        },
        "required": [
          "joined_at"
        ],
        "type": "object"
      },
      "InteractionCallback": {
        "example": {
          "data": {
            "content": "Pong!",
            "flags": 64
          },
          "type": 4
        },
        "properties": {
          "data": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/InteractionCallbackData"
              }
            ]
          },
          "type": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "InteractionCallbackData": {
        "description": "`data` of a callback / follow-up: the message fields the Voidcom subset\nforwards. Unknown keys (tts, allowed_mentions, attachments, modal\n`custom_id`/`title`) are ignored.",
        "example": {
          "content": "Pong!",
          "flags": 64
        },
        "properties": {
          "components": {
            "items": {},
            "maxItems": 5,
            "type": "array"
          },
          "content": {
            "type": [
              "string",
              "null"
            ]
          },
          "embeds": {
            "items": {
              "$ref": "#/components/schemas/Embed"
            },
            "maxItems": 10,
            "type": "array"
          },
          "flags": {
            "description": "Discord message flags; `64` = EPHEMERAL.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Invite": {
        "description": "Discord-shaped Invite.",
        "example": {
          "channel": {
            "id": "1300000000000000002",
            "name": "general",
            "type": 0
          },
          "code": "aBcDeF12",
          "created_at": "2026-01-01T00:00:00.000Z",
          "expires_at": "2026-01-02T00:00:00.000Z",
          "inviter": {
            "avatar": null,
            "bot": true,
            "discriminator": "0",
            "global_name": "Example Bot",
            "id": "1300000000000000004",
            "username": "example-bot"
          },
          "max_age": 86400,
          "max_uses": 0,
          "temporary": false,
          "uses": 0
        },
        "properties": {
          "channel": {},
          "code": {
            "type": "string"
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "expires_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "guild": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Guild"
              }
            ]
          },
          "inviter": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "max_age": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "max_uses": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "temporary": {
            "type": "boolean"
          },
          "uses": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "code",
          "uses",
          "temporary"
        ],
        "type": "object"
      },
      "Message": {
        "description": "Discord-shaped Message object.",
        "example": {
          "attachments": [],
          "author": {
            "avatar": null,
            "bot": true,
            "discriminator": "0",
            "global_name": "Example Bot",
            "id": "1300000000000000004",
            "username": "example-bot"
          },
          "channel_id": "1300000000000000002",
          "content": "Pong!",
          "edited_timestamp": null,
          "embeds": [],
          "flags": 0,
          "id": "1300000000000000003",
          "mention_everyone": false,
          "mention_roles": [],
          "mentions": [],
          "pinned": false,
          "timestamp": "2026-01-01T12:00:00.000Z",
          "tts": false,
          "type": 0
        },
        "properties": {
          "attachments": {
            "items": {
              "$ref": "#/components/schemas/Attachment"
            },
            "type": "array"
          },
          "author": {
            "$ref": "#/components/schemas/User"
          },
          "channel_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000002",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          },
          "components": {
            "items": {},
            "type": "array"
          },
          "content": {
            "type": "string"
          },
          "edited_timestamp": {
            "description": "Required key: `null` when never edited (discord.py reads it unconditionally).",
            "type": [
              "string",
              "null"
            ]
          },
          "embeds": {
            "items": {
              "$ref": "#/components/schemas/Embed"
            },
            "type": "array"
          },
          "flags": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "guild_id": {
            "description": "Present on guild messages delivered over the gateway (Discord omits it\non DMs and on REST message objects; discord.py resolves a DM channel\nwhen the key is missing).",
            "example": "1300000000000000001",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000003",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          },
          "mention_everyone": {
            "type": "boolean"
          },
          "mention_roles": {
            "items": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000007",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            },
            "type": "array"
          },
          "mentions": {
            "items": {
              "$ref": "#/components/schemas/User"
            },
            "type": "array"
          },
          "message_reference": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/MessageReference"
              }
            ]
          },
          "nonce": {
            "type": [
              "string",
              "null"
            ]
          },
          "pinned": {
            "type": "boolean"
          },
          "reactions": {
            "items": {
              "$ref": "#/components/schemas/Reaction"
            },
            "type": "array"
          },
          "referenced_message": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Message"
              }
            ]
          },
          "thread_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000003",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "timestamp": {
            "type": "string"
          },
          "tts": {
            "type": "boolean"
          },
          "type": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "voidcom_client_request_id": {
            "description": "Voidcom-native: idempotency key the sender supplied.",
            "type": [
              "string",
              "null"
            ]
          },
          "voidcom_e2e_encrypted": {
            "description": "Voidcom-native: this message body was sent as E2EE. `content` is then\nblank for bots that don't have the channel key.",
            "type": "boolean"
          },
          "webhook_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000006",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "channel_id",
          "author",
          "content",
          "timestamp"
        ],
        "type": "object"
      },
      "MessageReference": {
        "example": {
          "channel_id": "1300000000000000002",
          "fail_if_not_exists": true,
          "guild_id": "1300000000000000001",
          "message_id": "1300000000000000003"
        },
        "properties": {
          "channel_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000002",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "fail_if_not_exists": {
            "type": "boolean"
          },
          "guild_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000001",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "message_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000003",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "PartialGuild": {
        "description": "Minimal payload returned by GET /users/@me/guilds.",
        "example": {
          "features": [],
          "icon": null,
          "id": "1300000000000000001",
          "name": "Voidcom HQ",
          "owner": false,
          "permissions": "2048"
        },
        "properties": {
          "features": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "icon": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000001",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "owner": {
            "type": "boolean"
          },
          "permissions": {
            "description": "Permissions the user has in this guild, serialized as a string of the\n64-bit bitfield.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "owner",
          "permissions"
        ],
        "type": "object"
      },
      "PermissionOverwrite": {
        "description": "Permission overwrite entry on a channel.",
        "example": {
          "allow": "2048",
          "deny": "0",
          "id": "1300000000000000007",
          "type": 0
        },
        "properties": {
          "allow": {
            "type": "string"
          },
          "deny": {
            "type": "string"
          },
          "id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000007",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          },
          "type": {
            "description": "0 = role, 1 = member.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "id",
          "type",
          "allow",
          "deny"
        ],
        "type": "object"
      },
      "PublicKeyResponse": {
        "example": {
          "key_version": 1,
          "public_key": "vK3f…(1216 bytes, base64)",
          "user_id": "1300000000000000004"
        },
        "properties": {
          "key_version": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "public_key": {
            "description": "Base64-encoded 1216-byte hybrid X25519 + ML-KEM-768 public key.",
            "type": "string"
          },
          "user_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000004",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          }
        },
        "required": [
          "user_id",
          "public_key",
          "key_version"
        ],
        "type": "object"
      },
      "Reaction": {
        "example": {
          "count": 1,
          "emoji": {
            "id": null,
            "name": "👍"
          },
          "me": false
        },
        "properties": {
          "count": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "emoji": {
            "$ref": "#/components/schemas/Emoji"
          },
          "me": {
            "type": "boolean"
          }
        },
        "required": [
          "count",
          "me",
          "emoji"
        ],
        "type": "object"
      },
      "Role": {
        "example": {
          "color": 3447003,
          "hoist": true,
          "id": "1300000000000000007",
          "managed": false,
          "mentionable": true,
          "name": "Moderator",
          "permissions": "8192",
          "position": 1
        },
        "properties": {
          "color": {
            "description": "RGB integer (0xRRGGBB).",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "hoist": {
            "description": "True if role is pinned above other roles in the member sidebar.",
            "type": "boolean"
          },
          "icon": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000007",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          },
          "managed": {
            "type": "boolean"
          },
          "mentionable": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "permissions": {
            "description": "64-bit permission bitfield, serialized as a string.",
            "type": "string"
          },
          "position": {
            "format": "int32",
            "type": "integer"
          },
          "unicode_emoji": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "permissions"
        ],
        "type": "object"
      },
      "SendMessageBody": {
        "example": {
          "content": "hello",
          "embeds": [
            {
              "color": 3066993,
              "description": "Build 76 is live",
              "fields": [
                {
                  "inline": true,
                  "name": "Duration",
                  "value": "4 min"
                }
              ],
              "footer": {
                "text": "CI"
              },
              "title": "Deploy finished",
              "url": "https://voidcom.app"
            }
          ]
        },
        "properties": {
          "allowed_mentions": {},
          "attachments": {
            "items": {
              "$ref": "#/components/schemas/Attachment"
            },
            "type": "array"
          },
          "components": {
            "items": {},
            "maxItems": 5,
            "type": "array"
          },
          "content": {
            "type": [
              "string",
              "null"
            ]
          },
          "embeds": {
            "items": {
              "$ref": "#/components/schemas/Embed"
            },
            "maxItems": 10,
            "type": "array"
          },
          "flags": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "message_reference": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/MessageReference"
              }
            ]
          },
          "nonce": {
            "description": "Discord's `nonce`: an integer or a string of ≤ 25 characters\n(discord.py sends `secrets.randbits(64)`, an int). Mapped to the\nserver's UUID `client_request_id` in `rest::messages`.",
            "maxLength": 25,
            "type": [
              "string",
              "null"
            ]
          },
          "thread_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000000",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "tts": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "voidcom_e2e": {
            "description": "Voidcom-native: server should treat this as an E2EE send. `content`\nmust be the ciphertext (base64) and the bot must have an authorized\nchannel key.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "SessionStartLimit": {
        "example": {
          "max_concurrency": 1,
          "remaining": 999,
          "reset_after": 86400000,
          "total": 1000
        },
        "properties": {
          "max_concurrency": {
            "description": "Max concurrent IDENTIFY calls.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "remaining": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "reset_after": {
            "description": "Time (ms) until the limit resets.",
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "total": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "total",
          "remaining",
          "reset_after",
          "max_concurrency"
        ],
        "type": "object"
      },
      "User": {
        "description": "Discord-shaped User object.\nhttps://discord.com/developers/docs/resources/user#user-object",
        "example": {
          "avatar": null,
          "bot": true,
          "discriminator": "0",
          "global_name": "Example Bot",
          "id": "1300000000000000004",
          "username": "example-bot"
        },
        "properties": {
          "accent_color": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "avatar": {
            "description": "Avatar hash. We store full URL in `avatar_url` for callers; the discord\nshape is just the hash. Required key: `null` when absent — discord.py\nreads `data['avatar']` on every user, `Client.login()` included.",
            "type": [
              "string",
              "null"
            ]
          },
          "banner": {
            "type": [
              "string",
              "null"
            ]
          },
          "bot": {
            "type": "boolean"
          },
          "discriminator": {
            "description": "4-digit string (legacy) or \"0\" for users on the new global-name system.",
            "type": "string"
          },
          "email": {
            "type": [
              "string",
              "null"
            ]
          },
          "flags": {
            "description": "User account flags (bitfield).",
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "global_name": {
            "description": "Free-form display name. Required key (discord.py `PartialUser`): `null`\nwhen unset, never omitted.",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000004",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          },
          "locale": {
            "type": [
              "string",
              "null"
            ]
          },
          "mfa_enabled": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "public_flags": {
            "description": "Public-facing flags subset (badges, etc.).",
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "system": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "username": {
            "type": "string"
          },
          "verified": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "voidcom_avatar_url": {
            "description": "Voidcom-native: full avatar URL (Discord exposes only the hash; bots\ntargeting Voidcom can read this directly).",
            "type": [
              "string",
              "null"
            ]
          },
          "voidcom_mood": {
            "description": "Voidcom-native: presence mood (proto `enum Mood`: 0 none, 1 happy, 2 focused,\n3 deeply focused). Only the full `User` proto carries it (`GET /users/@me`);\n`PRESENCE_UPDATE` carries the same two keys for other users.",
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          },
          "voidcom_mood_label": {
            "description": "Voidcom-native: the mood's label (≤ 32 chars), absent when `voidcom_mood` is 0.",
            "type": [
              "string",
              "null"
            ]
          },
          "voidcom_public_key": {
            "description": "Voidcom-native: hybrid X25519+ML-KEM-768 public key, base64-encoded.\nOnly populated on `GET /api/voidcom/users/{id}/public-key`.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "username",
          "discriminator",
          "bot"
        ],
        "type": "object"
      },
      "Webhook": {
        "example": {
          "avatar": null,
          "channel_id": "1300000000000000002",
          "guild_id": "1300000000000000001",
          "id": "1300000000000000006",
          "name": "CI",
          "token": "aW50ZXJhY3Rpb24tdG9rZW4",
          "type": 1,
          "url": "https://api.voidcom.app/api/v10/webhooks/1300000000000000006/aW50ZXJhY3Rpb24tdG9rZW4"
        },
        "properties": {
          "application_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000005",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "avatar": {
            "type": [
              "string",
              "null"
            ]
          },
          "channel_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000002",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          },
          "guild_id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000001",
            "pattern": "^[0-9]{17,20}$",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
            "example": "1300000000000000006",
            "pattern": "^[0-9]{17,20}$",
            "type": "string"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "token": {
            "description": "Present only on create + when fetched with `?with_token=true`.",
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "description": "1 = Incoming, 2 = Channel Follower, 3 = Application.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "url": {
            "description": "Public URL for executing this webhook.",
            "type": [
              "string",
              "null"
            ]
          },
          "user": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          }
        },
        "required": [
          "id",
          "channel_id"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "bot_token": {
        "description": "`Authorization: Bot <token>` — the token from developers.voidcom.app. Operations whose credential is in the path (webhook / interaction tokens) need none.",
        "in": "header",
        "name": "Authorization",
        "type": "apiKey"
      }
    }
  },
  "info": {
    "description": "Discord API v10 **subset** served by Voidcom's `bot-api`. Every operation in this document exists; anything else under `/api/v10` answers `501 {\"message\":\"endpoint not yet implemented\",\"code\":0}` (`components.responses.NotSupported` — voidcom.py raises `discord.NotSupportedOnVoidcom`, voidcom.js throws `NotSupportedOnVoidcomError`). The list of Discord endpoints that are deliberately not here is the *Differences from Discord* page; this file and that page are checked against each other in CI.\n\nAuthentication is `Authorization: Bot <token>` on every operation except the ones whose credential is in the path (webhook tokens, interaction tokens). Ids are snowflakes (Voidcom epoch 2025-01-01T00:00:00Z) serialised as decimal strings. Every response carries Discord's `X-RateLimit-*` headers; a `429` adds `Retry-After` and `X-RateLimit-Scope`. Embeds and components follow Discord's limits (10 embeds, 6000 characters across an embed's text fields, 5 action rows of 5 buttons).\n\nThe Gateway (`wss://api.voidcom.app/ws`: IDENTIFY, RESUME, heartbeats, intent-filtered dispatch) is not an HTTP operation and is documented on its own page. Voidcom-native additions live under `/api/voidcom/…` and as `voidcom_*` keys on the Discord-shaped objects (read by `discord.ext.voidcom` / `@voidcomjs/voidcom`).\n",
    "license": {
      "name": "AGPL-3.0-or-later"
    },
    "title": "Voidcom Bot API",
    "version": "10"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/v10/applications/{app_id}/commands": {
      "get": {
        "operationId": "list_global_commands",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000005",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ApplicationCommand"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Application Commands"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\ntree = discord.app_commands.CommandTree(client)\ncommands = await tree.fetch_commands()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst commands = await client.application.commands.fetch();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/applications/1300000000000000005/commands\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "post": {
        "operationId": "create_global_command",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000005",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateApplicationCommandBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationCommand"
                }
              }
            },
            "description": "Created",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Application Commands"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait client.http.upsert_global_command(1300000000000000005, {\"name\": \"ping\", \"description\": \"Replies with Pong!\", \"type\": 1})"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait client.application.commands.create({ name: 'ping', description: 'Replies with Pong!' });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X POST \"https://api.voidcom.app/api/v10/applications/1300000000000000005/commands\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"description\":\"Replies with Pong!\",\"name\":\"ping\",\"options\":[],\"type\":1}'"
          }
        ]
      },
      "put": {
        "operationId": "overwrite_global_commands",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000005",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/CreateApplicationCommandBody"
                },
                "type": "array"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ApplicationCommand"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "summary": "PUT /applications/{app}/commands — bulk overwrite of the global scope.",
        "tags": [
          "Application Commands"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait tree.sync()  # bulk-overwrites the global commands with the tree's"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait rest.put(Routes.applicationCommands('1300000000000000005'), { body: commands }); // deploy script"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PUT \"https://api.voidcom.app/api/v10/applications/1300000000000000005/commands\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '[{\"description\":\"Replies with Pong!\",\"name\":\"ping\",\"options\":[],\"type\":1}]'"
          }
        ]
      }
    },
    "/api/v10/applications/{app_id}/commands/{command_id}": {
      "delete": {
        "operationId": "delete_global_command",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000005",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "command_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000008",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Application Commands"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait client.http.delete_global_command(1300000000000000005, 1300000000000000008)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait client.application.commands.delete('1300000000000000008');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/applications/1300000000000000005/commands/1300000000000000008\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "get": {
        "operationId": "get_global_command",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000005",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "command_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000008",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationCommand"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Application Commands"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\ncommand = await client.http.get_global_command(1300000000000000005, 1300000000000000008)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst command = await client.application.commands.fetch('1300000000000000008');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/applications/1300000000000000005/commands/1300000000000000008\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "patch": {
        "operationId": "edit_global_command",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000005",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "command_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000008",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateApplicationCommandBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationCommand"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Application Commands"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait client.http.edit_global_command(1300000000000000005, 1300000000000000008, {\"description\": \"Replies with Pong!\"})"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait client.application.commands.edit('1300000000000000008', { description: 'Replies with Pong!' });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PATCH \"https://api.voidcom.app/api/v10/applications/1300000000000000005/commands/1300000000000000008\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"description\":\"Replies with Pong!\",\"name\":\"ping\",\"options\":[],\"type\":1}'"
          }
        ]
      }
    },
    "/api/v10/applications/{app_id}/guilds/{guild_id}/commands": {
      "get": {
        "operationId": "list_guild_commands",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000005",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ApplicationCommand"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Application Commands"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\ncommands = await tree.fetch_commands(guild=discord.Object(id=1300000000000000001))"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst commands = await guild.commands.fetch();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/applications/1300000000000000005/guilds/1300000000000000001/commands\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "post": {
        "operationId": "create_guild_command",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000005",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateApplicationCommandBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationCommand"
                }
              }
            },
            "description": "Created",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Application Commands"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait client.http.upsert_guild_command(1300000000000000005, 1300000000000000001, {\"name\": \"ping\", \"description\": \"Replies with Pong!\", \"type\": 1})"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait guild.commands.create({ name: 'ping', description: 'Replies with Pong!' });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X POST \"https://api.voidcom.app/api/v10/applications/1300000000000000005/guilds/1300000000000000001/commands\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"description\":\"Replies with Pong!\",\"name\":\"ping\",\"options\":[],\"type\":1}'"
          }
        ]
      },
      "put": {
        "operationId": "overwrite_guild_commands",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000005",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/CreateApplicationCommandBody"
                },
                "type": "array"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ApplicationCommand"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "summary": "PUT /applications/{app}/guilds/{guild}/commands — bulk overwrite of the\nguild scope (`CommandTree.sync(guild=…)`).",
        "tags": [
          "Application Commands"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait tree.sync(guild=discord.Object(id=1300000000000000001))"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait rest.put(Routes.applicationGuildCommands('1300000000000000005', '1300000000000000001'), { body: commands });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PUT \"https://api.voidcom.app/api/v10/applications/1300000000000000005/guilds/1300000000000000001/commands\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '[{\"description\":\"Replies with Pong!\",\"name\":\"ping\",\"options\":[],\"type\":1}]'"
          }
        ]
      }
    },
    "/api/v10/applications/{app_id}/guilds/{guild_id}/commands/{command_id}": {
      "delete": {
        "operationId": "delete_guild_command",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000005",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "command_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000008",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Application Commands"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait client.http.delete_guild_command(1300000000000000005, 1300000000000000001, 1300000000000000008)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait guild.commands.delete('1300000000000000008');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/applications/1300000000000000005/guilds/1300000000000000001/commands/1300000000000000008\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "get": {
        "operationId": "get_guild_command",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000005",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "command_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000008",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationCommand"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Application Commands"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\ncommand = await client.http.get_guild_command(1300000000000000005, 1300000000000000001, 1300000000000000008)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst command = await guild.commands.fetch('1300000000000000008');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/applications/1300000000000000005/guilds/1300000000000000001/commands/1300000000000000008\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "patch": {
        "operationId": "edit_guild_command",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000005",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "command_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000008",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateApplicationCommandBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationCommand"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Application Commands"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait client.http.edit_guild_command(1300000000000000005, 1300000000000000001, 1300000000000000008, {\"description\": \"Replies with Pong!\"})"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait guild.commands.edit('1300000000000000008', { description: 'Replies with Pong!' });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PATCH \"https://api.voidcom.app/api/v10/applications/1300000000000000005/guilds/1300000000000000001/commands/1300000000000000008\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"description\":\"Replies with Pong!\",\"name\":\"ping\",\"options\":[],\"type\":1}'"
          }
        ]
      }
    },
    "/api/v10/channels/{channel_id}": {
      "delete": {
        "operationId": "delete_channel",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Channels"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait channel.delete()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait channel.delete();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/channels/1300000000000000002\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "get": {
        "operationId": "get_channel",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Channel"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "summary": "GET /channels/:channel_id — there's no single-channel-get RPC in\nVoidcom: resolve the channel's guild (`SnowflakeTranslator::guild_of_channel`,\nValkey-cached), list that guild's channels as the bot (`None` = the bot's\nDM channels) and pick ours.",
        "tags": [
          "Channels"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nchannel = await client.fetch_channel(1300000000000000002)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst channel = await client.channels.fetch('1300000000000000002');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/channels/1300000000000000002\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "patch": {
        "operationId": "patch_channel",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditChannelBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Channel"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Channels"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait channel.edit(name=\"general-chat\", topic=\"Talk\")"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait channel.edit({ name: 'general-chat', topic: 'Talk' });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PATCH \"https://api.voidcom.app/api/v10/channels/1300000000000000002\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"general-chat\",\"topic\":\"Talk\"}'"
          }
        ]
      }
    },
    "/api/v10/channels/{channel_id}/invites": {
      "post": {
        "operationId": "create_invite",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "max_age": 86400,
                "max_uses": 0
              },
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invite"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Invites"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\ninvite = await channel.create_invite(max_age=86400, max_uses=0)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst invite = await channel.createInvite({ maxAge: 86400, maxUses: 0 });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X POST \"https://api.voidcom.app/api/v10/channels/1300000000000000002/invites\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"max_age\":86400,\"max_uses\":0}'"
          }
        ]
      }
    },
    "/api/v10/channels/{channel_id}/messages": {
      "get": {
        "operationId": "list_messages",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int64",
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "before",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "after",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "around",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Message"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "summary": "GET /channels/:channel_id/messages",
        "tags": [
          "Messages"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nasync for message in channel.history(limit=50):\n    print(message.content)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst messages = await channel.messages.fetch({ limit: 50 });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/channels/1300000000000000002/messages\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "post": {
        "operationId": "send_message",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendMessageBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Message"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "summary": "POST /channels/:channel_id/messages",
        "tags": [
          "Messages"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nembed = discord.Embed(title=\"Deploy finished\", description=\"Build 76 is live\", colour=0x2ECC71)\nawait channel.send(\"hello\", embed=embed)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst embed = new EmbedBuilder().setTitle('Deploy finished').setDescription('Build 76 is live').setColor(0x2ecc71);\nawait channel.send({ content: 'hello', embeds: [embed] });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X POST \"https://api.voidcom.app/api/v10/channels/1300000000000000002/messages\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"content\":\"hello\",\"embeds\":[{\"color\":3066993,\"description\":\"Build 76 is live\",\"fields\":[{\"inline\":true,\"name\":\"Duration\",\"value\":\"4 min\"}],\"footer\":{\"text\":\"CI\"},\"title\":\"Deploy finished\",\"url\":\"https://voidcom.app\"}]}'"
          }
        ]
      }
    },
    "/api/v10/channels/{channel_id}/messages/bulk-delete": {
      "post": {
        "operationId": "bulk_delete",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkDeleteBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Messages"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait channel.delete_messages([discord.Object(id=1300000000000000003), discord.Object(id=1300000000000000013)])"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait channel.bulkDelete(['1300000000000000003', '1300000000000000013']);"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X POST \"https://api.voidcom.app/api/v10/channels/1300000000000000002/messages/bulk-delete\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"messages\":[\"1300000000000000003\",\"1300000000000000013\"]}'"
          }
        ]
      }
    },
    "/api/v10/channels/{channel_id}/messages/{message_id}": {
      "delete": {
        "operationId": "delete_message",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "message_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000003",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Messages"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait message.delete()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait message.delete();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/channels/1300000000000000002/messages/1300000000000000003\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "get": {
        "operationId": "get_message",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "message_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000003",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Message"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "summary": "GET /channels/:channel_id/messages/:message_id",
        "tags": [
          "Messages"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nmessage = await channel.fetch_message(1300000000000000003)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst message = await channel.messages.fetch('1300000000000000003');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/channels/1300000000000000002/messages/1300000000000000003\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "patch": {
        "operationId": "edit_message",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "message_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000003",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditMessageBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Message"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Messages"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait message.edit(content=\"hello (edited)\")"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait message.edit({ content: 'hello (edited)' });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PATCH \"https://api.voidcom.app/api/v10/channels/1300000000000000002/messages/1300000000000000003\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"content\":\"hello (edited)\"}'"
          }
        ]
      }
    },
    "/api/v10/channels/{channel_id}/messages/{message_id}/reactions/{emoji}/@me": {
      "delete": {
        "operationId": "remove_reaction",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "message_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000003",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "emoji",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Messages"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait message.remove_reaction(\"👍\", client.user)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait message.reactions.resolve('👍').users.remove(client.user.id);"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/channels/1300000000000000002/messages/1300000000000000003/reactions/%F0%9F%91%8D/@me\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "put": {
        "operationId": "add_reaction",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "message_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000003",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "emoji",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Messages"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait message.add_reaction(\"👍\")"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait message.react('👍');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PUT \"https://api.voidcom.app/api/v10/channels/1300000000000000002/messages/1300000000000000003/reactions/%F0%9F%91%8D/@me\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/channels/{channel_id}/permissions/{overwrite_id}": {
      "delete": {
        "operationId": "delete_overwrite",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "overwrite_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000007",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Channels"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait channel.set_permissions(guild.get_role(1300000000000000007), overwrite=None)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait channel.permissionOverwrites.delete('1300000000000000007');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/channels/1300000000000000002/permissions/1300000000000000007\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "put": {
        "operationId": "set_overwrite",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "overwrite_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000007",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "allow": "2048",
                "deny": "0",
                "type": 0
              },
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Channels"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait channel.set_permissions(guild.get_role(1300000000000000007), send_messages=True)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait channel.permissionOverwrites.edit('1300000000000000007', { SendMessages: true });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PUT \"https://api.voidcom.app/api/v10/channels/1300000000000000002/permissions/1300000000000000007\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"allow\":\"2048\",\"deny\":\"0\",\"type\":0}'"
          }
        ]
      }
    },
    "/api/v10/channels/{channel_id}/pins": {
      "get": {
        "operationId": "list_pins",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Message"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Messages"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\npins = await channel.pins()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst pins = await channel.messages.fetchPinned();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/channels/1300000000000000002/pins\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/channels/{channel_id}/pins/{message_id}": {
      "delete": {
        "operationId": "unpin_message",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "message_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000003",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Messages"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait message.unpin()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait message.unpin();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/channels/1300000000000000002/pins/1300000000000000003\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "put": {
        "operationId": "pin_message",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "message_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000003",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Messages"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait message.pin()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait message.pin();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PUT \"https://api.voidcom.app/api/v10/channels/1300000000000000002/pins/1300000000000000003\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/channels/{channel_id}/typing": {
      "post": {
        "operationId": "start_typing",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Messages"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait channel.typing()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait channel.sendTyping();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X POST \"https://api.voidcom.app/api/v10/channels/1300000000000000002/typing\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/channels/{channel_id}/webhooks": {
      "get": {
        "operationId": "list_channel_webhooks",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Webhook"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Webhooks"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nwebhooks = await channel.webhooks()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst webhooks = await channel.fetchWebhooks();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/channels/1300000000000000002/webhooks\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "post": {
        "operationId": "create_webhook",
        "parameters": [
          {
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000002",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWebhookBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Webhooks"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nwebhook = await channel.create_webhook(name=\"CI\")"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst webhook = await channel.createWebhook({ name: 'CI' });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X POST \"https://api.voidcom.app/api/v10/channels/1300000000000000002/webhooks\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"CI\"}'"
          }
        ]
      }
    },
    "/api/v10/gateway": {
      "get": {
        "operationId": "get_gateway",
        "parameters": null,
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "url": "wss://api.voidcom.app/ws"
                },
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {}
        ],
        "summary": "Public variant (no auth). Some libraries call this on bootstrap before\nthey have a token.",
        "tags": [
          "Gateway"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nurl = await client.http.get_gateway()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst { url } = await rest.get(Routes.gateway());"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/gateway\""
          }
        ]
      }
    },
    "/api/v10/gateway/bot": {
      "get": {
        "operationId": "get_gateway_bot",
        "parameters": null,
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GatewayBotResponse"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Gateway"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nurl, shards = await client.http.get_bot_gateway()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst { url, shards } = await rest.get(Routes.gatewayBot());"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/gateway/bot\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/guilds/{guild_id}": {
      "delete": {
        "operationId": "delete_guild",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Guilds"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait guild.delete()  # owner only"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait guild.delete(); // owner only"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/guilds/1300000000000000001\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "get": {
        "operationId": "get_guild",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Guild"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Guilds"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nguild = await client.fetch_guild(1300000000000000001)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst guild = await client.guilds.fetch('1300000000000000001');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/guilds/1300000000000000001\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "patch": {
        "operationId": "patch_guild",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "description": "The official server",
                "name": "Voidcom HQ"
              },
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Guild"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Guilds"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait guild.edit(name=\"Voidcom HQ\", description=\"The official server\")"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait guild.edit({ name: 'Voidcom HQ', description: 'The official server' });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PATCH \"https://api.voidcom.app/api/v10/guilds/1300000000000000001\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"description\":\"The official server\",\"name\":\"Voidcom HQ\"}'"
          }
        ]
      }
    },
    "/api/v10/guilds/{guild_id}/audit-logs": {
      "get": {
        "operationId": "get_audit_log",
        "parameters": [
          {
            "in": "query",
            "name": "user_id",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "action_type",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "before",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditLogResponse"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Audit Log"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nasync for entry in guild.audit_logs(limit=50):\n    print(entry.action, entry.user)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst logs = await guild.fetchAuditLogs({ limit: 50 });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/audit-logs\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/guilds/{guild_id}/bans": {
      "get": {
        "operationId": "list_bans",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Ban"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Moderation"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nasync for ban in guild.bans(limit=100):\n    print(ban.user, ban.reason)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst bans = await guild.bans.fetch();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/bans\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/guilds/{guild_id}/bans/{user_id}": {
      "delete": {
        "operationId": "unban_member",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000004",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Moderation"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait guild.unban(discord.Object(id=1300000000000000004))"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait guild.bans.remove('1300000000000000004');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/bans/1300000000000000004\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "put": {
        "operationId": "ban_member",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000004",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "reason": "spam"
              },
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Moderation"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait guild.ban(discord.Object(id=1300000000000000004), reason=\"spam\")"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait guild.bans.create('1300000000000000004', { reason: 'spam' });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PUT \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/bans/1300000000000000004\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"reason\":\"spam\"}'"
          }
        ]
      }
    },
    "/api/v10/guilds/{guild_id}/channels": {
      "get": {
        "operationId": "list_channels",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Channel"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Guilds"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nchannels = await guild.fetch_channels()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst channels = await guild.channels.fetch();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/channels\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "post": {
        "operationId": "create_channel",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateChannelBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Channel"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Guilds"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nchannel = await guild.create_text_channel(\"announcements\", topic=\"Release notes\")"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst channel = await guild.channels.create({ name: 'announcements', type: ChannelType.GuildText, topic: 'Release notes' });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X POST \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/channels\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"announcements\",\"topic\":\"Release notes\",\"type\":0}'"
          }
        ]
      }
    },
    "/api/v10/guilds/{guild_id}/invites": {
      "get": {
        "operationId": "list_guild_invites",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Invite"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Invites"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\ninvites = await guild.invites()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst invites = await guild.invites.fetch();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/invites\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/guilds/{guild_id}/members": {
      "get": {
        "operationId": "list_members",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int64",
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "after",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/GuildMember"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Members"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nasync for member in guild.fetch_members(limit=100):\n    print(member.display_name)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst members = await guild.members.fetch({ limit: 100 });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/members\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/guilds/{guild_id}/members/{user_id}": {
      "delete": {
        "operationId": "kick_member",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000004",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Members"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait member.kick(reason=\"spam\")"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait member.kick('spam');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/members/1300000000000000004\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "get": {
        "operationId": "get_member",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000004",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuildMember"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Members"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nmember = await guild.fetch_member(1300000000000000004)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst member = await guild.members.fetch('1300000000000000004');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/members/1300000000000000004\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "patch": {
        "operationId": "edit_member",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000004",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditMemberBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuildMember"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Members"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait member.edit(nick=\"Bot Helper\", roles=[guild.get_role(1300000000000000007)])"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait member.edit({ nick: 'Bot Helper', roles: ['1300000000000000007'] });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PATCH \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/members/1300000000000000004\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"nick\":\"Bot Helper\",\"roles\":[\"1300000000000000007\"]}'"
          }
        ]
      }
    },
    "/api/v10/guilds/{guild_id}/members/{user_id}/roles/{role_id}": {
      "delete": {
        "operationId": "remove_role",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000004",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000007",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Members"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait member.remove_roles(guild.get_role(1300000000000000007))"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait member.roles.remove('1300000000000000007');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/members/1300000000000000004/roles/1300000000000000007\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "put": {
        "operationId": "add_role",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000004",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000007",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Members"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait member.add_roles(guild.get_role(1300000000000000007))"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait member.roles.add('1300000000000000007');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PUT \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/members/1300000000000000004/roles/1300000000000000007\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/guilds/{guild_id}/roles": {
      "get": {
        "operationId": "list_roles",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Role"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Roles"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nroles = await guild.fetch_roles()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst roles = await guild.roles.fetch();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/roles\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "post": {
        "operationId": "create_role",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Role"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Roles"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nrole = await guild.create_role(\n    name=\"Moderator\", permissions=discord.Permissions(manage_messages=True),\n    colour=discord.Colour(0x3498DB), hoist=True, mentionable=True,\n)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst role = await guild.roles.create({ name: 'Moderator', permissions: [PermissionFlagsBits.ManageMessages], color: 0x3498db, hoist: true, mentionable: true });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X POST \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/roles\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"color\":3447003,\"hoist\":true,\"mentionable\":true,\"name\":\"Moderator\",\"permissions\":\"8192\"}'"
          }
        ]
      }
    },
    "/api/v10/guilds/{guild_id}/roles/{role_id}": {
      "delete": {
        "operationId": "delete_role",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000007",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Roles"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait role.delete()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait role.delete();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/roles/1300000000000000007\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "patch": {
        "operationId": "edit_role",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000007",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditRoleBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Role"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Roles"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait role.edit(name=\"Mods\")"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait role.edit({ name: 'Mods' });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PATCH \"https://api.voidcom.app/api/v10/guilds/1300000000000000001/roles/1300000000000000007\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"Mods\"}'"
          }
        ]
      }
    },
    "/api/v10/interactions/{interaction_id}/{token}/callback": {
      "post": {
        "operationId": "create_interaction_response",
        "parameters": [
          {
            "description": "Discord's `?with_response=true`: answer 200 with the callback response\nobject instead of 204 (discord.py ≥ 2.5 always sets it).",
            "in": "query",
            "name": "with_response",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "path",
            "name": "interaction_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000009",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InteractionCallback"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "interaction": {
                    "activity_instance_id": null,
                    "id": "1300000000000000009",
                    "response_message_ephemeral": false,
                    "response_message_id": "1300000000000000003",
                    "response_message_loading": false,
                    "type": 2
                  },
                  "resource": {
                    "message": {
                      "channel_id": "1300000000000000002",
                      "content": "Pong!",
                      "id": "1300000000000000003"
                    },
                    "type": 4
                  }
                },
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "`?with_response=true`: Discord's interaction callback response object",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "204": {
            "description": "Acknowledged (default)",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {}
        ],
        "summary": "POST /interactions/{id}/{token}/callback",
        "tags": [
          "Interactions"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait interaction.response.send_message(\"Pong!\", ephemeral=True)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait interaction.reply({ content: 'Pong!', flags: MessageFlags.Ephemeral });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X POST \"https://api.voidcom.app/api/v10/interactions/1300000000000000009/aW50ZXJhY3Rpb24tdG9rZW4/callback\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"data\":{\"content\":\"Pong!\",\"flags\":64},\"type\":4}'"
          }
        ]
      }
    },
    "/api/v10/invites/{code}": {
      "delete": {
        "operationId": "delete_invite",
        "parameters": [
          {
            "in": "path",
            "name": "code",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Invites"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait client.delete_invite(\"aBcDeF12\")"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait invite.delete();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/invites/aBcDeF12\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "get": {
        "operationId": "get_invite",
        "parameters": [
          {
            "in": "path",
            "name": "code",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invite"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Invites"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\ninvite = await client.fetch_invite(\"aBcDeF12\")"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst invite = await client.fetchInvite('aBcDeF12');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/invites/aBcDeF12\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/oauth2/applications/@me": {
      "get": {
        "operationId": "get_current_application",
        "parameters": null,
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "bot_public": false,
                  "bot_require_code_grant": false,
                  "description": "Answers /ping",
                  "flags": 0,
                  "id": "1300000000000000005",
                  "name": "Example Bot",
                  "owner": {
                    "avatar": null,
                    "bot": false,
                    "discriminator": "0",
                    "global_name": null,
                    "id": "1300000000000000004",
                    "username": "max"
                  },
                  "summary": ""
                },
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "summary": "GET /oauth2/applications/@me — the bot's own application (discord.py's\n`Client.login()` fetches it right after `/users/@me`). Read from the main\nserver's `GetApplication`, which admits the application's own bot (B48b\n#2); the owner is fetched as a public profile.",
        "tags": [
          "Applications"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\napp = await client.application_info()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst app = await client.application.fetch();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/oauth2/applications/@me\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/users/@me": {
      "get": {
        "operationId": "get_current_user",
        "parameters": null,
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "summary": "GET /users/@me",
        "tags": [
          "Users"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nme = client.user  # populated at login (GET /users/@me)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst me = client.user; // populated at login (GET /users/@me)"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/users/@me\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      },
      "patch": {
        "operationId": "patch_current_user",
        "parameters": null,
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "avatar": "data:image/png;base64,iVBORw0KGgo="
              },
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "summary": "PATCH /users/@me — name/avatar update. Voidcom doesn't expose a one-call\n\"set username + avatar\" RPC over gRPC the same way Discord does; we wire\navatar via UpdateAvatar and ignore everything else for v1.",
        "tags": [
          "Users"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nwith open(\"avatar.png\", \"rb\") as f:\n    await client.user.edit(avatar=f.read())"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait client.user.setAvatar('./avatar.png');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PATCH \"https://api.voidcom.app/api/v10/users/@me\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"avatar\":\"data:image/png;base64,iVBORw0KGgo=\"}'"
          }
        ]
      }
    },
    "/api/v10/users/@me/channels": {
      "post": {
        "operationId": "create_dm",
        "parameters": null,
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "recipient_id": "1300000000000000004"
              },
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Channel"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "summary": "POST /users/@me/channels — create a DM with another user.",
        "tags": [
          "Users"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nuser = await client.fetch_user(1300000000000000004)\ndm = await user.create_dm()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst user = await client.users.fetch('1300000000000000004');\nconst dm = await user.createDM();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X POST \"https://api.voidcom.app/api/v10/users/@me/channels\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"recipient_id\":\"1300000000000000004\"}'"
          }
        ]
      }
    },
    "/api/v10/users/@me/guilds": {
      "get": {
        "operationId": "list_guilds",
        "parameters": null,
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PartialGuild"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "summary": "GET /users/@me/guilds — list servers the bot is a member of.",
        "tags": [
          "Users"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nasync for guild in client.fetch_guilds(limit=100):\n    print(guild.name)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst guilds = await client.guilds.fetch();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/users/@me/guilds\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/users/@me/guilds/{guild_id}": {
      "delete": {
        "operationId": "leave_guild",
        "parameters": [
          {
            "in": "path",
            "name": "guild_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000001",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "summary": "DELETE /users/@me/guilds/:guild_id — leave a server.",
        "tags": [
          "Users"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nguild = client.get_guild(1300000000000000001)\nawait guild.leave()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst guild = await client.guilds.fetch('1300000000000000001');\nawait guild.leave();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/users/@me/guilds/1300000000000000001\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/users/{user_id}": {
      "get": {
        "operationId": "get_user",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000004",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "summary": "GET /users/:user_id — fetch another user's public profile.",
        "tags": [
          "Users"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nuser = await client.fetch_user(1300000000000000004)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst user = await client.users.fetch('1300000000000000004');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/users/1300000000000000004\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/webhooks/{application_id}/{token}/messages/{message_id}": {
      "delete": {
        "operationId": "delete_followup",
        "parameters": [
          {
            "in": "path",
            "name": "application_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000005",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "message_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000003",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {}
        ],
        "summary": "DELETE /webhooks/{application_id}/{token}/messages/{message_id}",
        "tags": [
          "Interactions"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait interaction.delete_original_response()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait interaction.deleteReply();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/webhooks/1300000000000000005/aW50ZXJhY3Rpb24tdG9rZW4/messages/1300000000000000003\""
          }
        ]
      },
      "get": {
        "operationId": "get_followup",
        "parameters": [
          {
            "in": "path",
            "name": "application_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000005",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "message_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000003",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Message"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {}
        ],
        "summary": "GET /webhooks/{application_id}/{token}/messages/{message_id}",
        "tags": [
          "Interactions"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nmessage = await interaction.original_response()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst message = await interaction.fetchReply();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/webhooks/1300000000000000005/aW50ZXJhY3Rpb24tdG9rZW4/messages/1300000000000000003\""
          }
        ]
      },
      "patch": {
        "operationId": "edit_followup",
        "parameters": [
          {
            "in": "path",
            "name": "application_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000005",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "message_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000003",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditMessageBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Message"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {}
        ],
        "summary": "PATCH /webhooks/{application_id}/{token}/messages/{message_id}",
        "tags": [
          "Interactions"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait interaction.edit_original_response(content=\"Pong! (edited)\")"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait interaction.editReply({ content: 'Pong! (edited)' });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PATCH \"https://api.voidcom.app/api/v10/webhooks/1300000000000000005/aW50ZXJhY3Rpb24tdG9rZW4/messages/1300000000000000003\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"content\":\"hello (edited)\"}'"
          }
        ]
      }
    },
    "/api/v10/webhooks/{webhook_id}": {
      "get": {
        "operationId": "get_webhook",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000006",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Webhooks"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nwebhook = await client.fetch_webhook(1300000000000000006)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst webhook = await client.fetchWebhook('1300000000000000006');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/webhooks/1300000000000000006\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    },
    "/api/v10/webhooks/{webhook_id}/{token}": {
      "delete": {
        "operationId": "delete_webhook_with_token",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000006",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {}
        ],
        "tags": [
          "Webhooks"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait webhook.delete()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait webhook.delete();"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X DELETE \"https://api.voidcom.app/api/v10/webhooks/1300000000000000006/aW50ZXJhY3Rpb24tdG9rZW4\""
          }
        ]
      },
      "get": {
        "operationId": "get_webhook_with_token",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000006",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {}
        ],
        "tags": [
          "Webhooks"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nwebhook = discord.Webhook.from_url(url, session=session)  # aiohttp session\nwebhook = await webhook.fetch()"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst webhook = await client.fetchWebhook('1300000000000000006', token);"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/v10/webhooks/1300000000000000006/aW50ZXJhY3Rpb24tdG9rZW4\""
          }
        ]
      },
      "patch": {
        "operationId": "edit_webhook_with_token",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000006",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditWebhookBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {}
        ],
        "tags": [
          "Webhooks"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nawait webhook.edit(name=\"CI (staging)\")"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nawait webhook.edit({ name: 'CI (staging)' });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X PATCH \"https://api.voidcom.app/api/v10/webhooks/1300000000000000006/aW50ZXJhY3Rpb24tdG9rZW4\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"CI (staging)\"}'"
          }
        ]
      },
      "post": {
        "operationId": "execute_webhook",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000006",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExecuteWebhookBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Message"
                }
              }
            },
            "description": "Interaction follow-up (`{webhook_id}` is an application id, `{token}` an interaction token): the created message",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "204": {
            "description": "Posted as the webhook",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {}
        ],
        "summary": "`POST /webhooks/{id}/{token}` is two Discord routes on one path: webhook\nexecution (`{id}` = webhook) and an interaction follow-up (`{id}` =\napplication, `{token}` = interaction token). The snowflake's entity type\ntells them apart.",
        "tags": [
          "Webhooks"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nwebhook = discord.Webhook.from_url(url, session=session)  # aiohttp session\nawait webhook.send(\"Deploy finished\", username=\"CI\")"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nconst webhook = new WebhookClient({ url });\nawait webhook.send({ content: 'Deploy finished', username: 'CI' });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X POST \"https://api.voidcom.app/api/v10/webhooks/1300000000000000006/aW50ZXJhY3Rpb24tdG9rZW4\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"content\":\"Deploy finished\",\"username\":\"CI\"}'"
          }
        ]
      }
    },
    "/api/v10/webhooks/{webhook_id}/{token}/github": {
      "post": {
        "operationId": "execute_github_webhook",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000006",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "action": "opened",
                "pull_request": {
                  "html_url": "https://github.com/voidcom-app/voidcom/pull/42",
                  "number": 42,
                  "title": "Add OpenAPI"
                },
                "repository": {
                  "full_name": "voidcom-app/voidcom"
                },
                "sender": {
                  "login": "octocat"
                }
              },
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "A GitHub webhook delivery (`X-Hub-Signature-256` is verified when the webhook has a `github_secret`)",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {}
        ],
        "tags": [
          "Webhooks"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\n# Paste the webhook URL + \"/github\" into the GitHub repository's webhook settings\n# (content type application/json). Sending one by hand:\nimport httpx\nhttpx.post(f\"{url}/github\", json=payload, headers={\"X-GitHub-Event\": \"pull_request\"})"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\n// Paste the webhook URL + '/github' into the GitHub repository's webhook settings\n// (content type application/json). Sending one by hand:\nawait fetch(`${url}/github`, { method: 'POST', headers: { 'content-type': 'application/json', 'x-github-event': 'pull_request' }, body: JSON.stringify(payload) });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X POST \"https://api.voidcom.app/api/v10/webhooks/1300000000000000006/aW50ZXJhY3Rpb24tdG9rZW4/github\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"action\":\"opened\",\"pull_request\":{\"html_url\":\"https://github.com/voidcom-app/voidcom/pull/42\",\"number\":42,\"title\":\"Add OpenAPI\"},\"repository\":{\"full_name\":\"voidcom-app/voidcom\"},\"sender\":{\"login\":\"octocat\"}}'"
          }
        ]
      }
    },
    "/api/v10/webhooks/{webhook_id}/{token}/slack": {
      "post": {
        "operationId": "execute_slack_webhook",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000006",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "text": "Deploy finished",
                "username": "ci"
              },
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "A Slack incoming-webhook payload (`X-Slack-Signature` is verified when the webhook has a `slack_secret`)",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content — nothing in the body",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {}
        ],
        "tags": [
          "Webhooks"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\n# Use the webhook URL + \"/slack\" wherever a Slack incoming webhook is expected.\nimport httpx\nhttpx.post(f\"{url}/slack\", json={\"text\": \"Deploy finished\", \"username\": \"ci\"})"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\n// Use the webhook URL + '/slack' wherever a Slack incoming webhook is expected.\nawait fetch(`${url}/slack`, { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ text: 'Deploy finished', username: 'ci' }) });"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl -X POST \"https://api.voidcom.app/api/v10/webhooks/1300000000000000006/aW50ZXJhY3Rpb24tdG9rZW4/slack\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\":\"Deploy finished\",\"username\":\"ci\"}'"
          }
        ]
      }
    },
    "/api/voidcom/users/{user_id}/public-key": {
      "get": {
        "operationId": "get_public_key",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "Snowflake (Voidcom epoch 2025-01-01) as a decimal string",
              "example": "1300000000000000004",
              "pattern": "^[0-9]{17,20}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicKeyResponse"
                }
              }
            },
            "description": "OK",
            "headers": {
              "X-RateLimit-Bucket": {
                "$ref": "#/components/headers/X-RateLimit-Bucket"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-RateLimit-Reset-After": {
                "$ref": "#/components/headers/X-RateLimit-Reset-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "5XX": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "tags": [
          "Voidcom extensions"
        ],
        "x-codeSamples": [
          {
            "label": "voidcom.py",
            "lang": "python",
            "source": "# voidcom.py — `client` is a logged-in discord.Client\nfrom discord.ext import voidcom\nkey = await voidcom.public_key(user, http=client.http)"
          },
          {
            "label": "voidcom.js",
            "lang": "javascript",
            "source": "// voidcom.js — `client` is a logged-in Client, `rest` its REST\nimport { publicKey } from '@voidcomjs/voidcom';\nconst key = await publicKey(rest, '1300000000000000004');"
          },
          {
            "label": "curl",
            "lang": "shell",
            "source": "curl \"https://api.voidcom.app/api/voidcom/users/1300000000000000004/public-key\" \\\n  -H \"Authorization: Bot $VOIDCOM_BOT_TOKEN\""
          }
        ]
      }
    }
  },
  "security": [
    {
      "bot_token": []
    }
  ],
  "servers": [
    {
      "description": "Production",
      "url": "https://api.voidcom.app"
    }
  ],
  "tags": [
    {
      "description": "The bot user and the users it can see",
      "name": "Users"
    },
    {
      "description": "Where to open the Gateway WebSocket",
      "name": "Gateway"
    },
    {
      "description": "Servers the bot was added to",
      "name": "Guilds"
    },
    {
      "name": "Members"
    },
    {
      "name": "Moderation"
    },
    {
      "name": "Roles"
    },
    {
      "name": "Invites"
    },
    {
      "name": "Audit Log"
    },
    {
      "name": "Channels"
    },
    {
      "name": "Messages"
    },
    {
      "name": "Webhooks"
    },
    {
      "description": "The bot's own application",
      "name": "Applications"
    },
    {
      "description": "Slash commands, global and per guild",
      "name": "Application Commands"
    },
    {
      "description": "Answering slash commands and component clicks",
      "name": "Interactions"
    },
    {
      "description": "`/api/voidcom/…` — not part of the Discord shape",
      "name": "Voidcom extensions"
    }
  ]
}
