Discord Webhooks API

The Webhooks API from Discord — 8 operation(s) for webhooks.

Operations 18

GET /webhooks/{webhook_id}/{webhook_token}/messages/@original #
DELETE /webhooks/{webhook_id}/{webhook_token}/messages/@original #
PATCH /webhooks/{webhook_id}/{webhook_token}/messages/@original #
GET /webhooks/{webhook_id}/{webhook_token}/messages/{message_id} #
DELETE /webhooks/{webhook_id}/{webhook_token}/messages/{message_id} #
PATCH /webhooks/{webhook_id}/{webhook_token}/messages/{message_id} #
POST /webhooks/{webhook_id}/{webhook_token}/github #
POST /webhooks/{webhook_id}/{webhook_token}/slack #
GET /webhooks/{webhook_id}/{webhook_token} #
POST /webhooks/{webhook_id}/{webhook_token} #
DELETE /webhooks/{webhook_id}/{webhook_token} #
PATCH /webhooks/{webhook_id}/{webhook_token} #
GET /webhooks/{webhook_id} #
DELETE /webhooks/{webhook_id} #
PATCH /webhooks/{webhook_id} #
GET /channels/{channel_id}/webhooks Discord List channel webhooks #
POST /channels/{channel_id}/webhooks Discord Create webhook #
GET /guilds/{guild_id}/webhooks Discord List guild webhooks #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/discord-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

discord-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Discord Interactions Application Commands Webhooks API
  description: The Discord Interactions API enables applications to create and respond to application commands (slash commands), message components, and modals. It supports both Gateway-based and webhook-based interaction handling, allowing bots to build rich, interactive user experiences within Discord.
  version: '10'
  contact:
    name: Discord Support
    url: https://support-dev.discord.com/hc/en-us
    email: support@discord.com
  termsOfService: https://discord.com/developers/docs/policies-and-agreements/developer-terms-of-service
servers:
- url: https://discord.com/api/v10
  description: Discord API v10
security:
- BotToken: []
tags:
- name: Webhooks
paths:
  /webhooks/{webhook_id}/{webhook_token}/messages/@original:
    parameters:
    - name: webhook_id
      in: path
      schema:
        $ref: '#/components/schemas/SnowflakeType'
      required: true
    - name: webhook_token
      in: path
      schema:
        type: string
        maxLength: 152133
      required: true
    get:
      operationId: get_original_webhook_message
      parameters:
      - name: thread_id
        in: query
        schema:
          $ref: '#/components/schemas/SnowflakeType'
      responses:
        '200':
          description: 200 response for get_original_webhook_message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
        4XX:
          $ref: '#/components/responses/ClientErrorResponse'
      security:
      - {}
      - BotToken: []
      tags:
      - Webhooks
    delete:
      operationId: delete_original_webhook_message
      parameters:
      - name: thread_id
        in: query
        schema:
          $ref: '#/components/schemas/SnowflakeType'
      responses:
        '204':
          description: 204 response for delete_original_webhook_message
        4XX:
          $ref: '#/components/responses/ClientErrorResponse'
      security:
      - {}
      - BotToken: []
      tags:
      - Webhooks
    patch:
      operationId: update_original_webhook_message
      parameters:
      - name: thread_id
        in: query
        schema:
          $ref: '#/components/schemas/SnowflakeType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncomingWebhookUpdateRequestPartial'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/IncomingWebhookUpdateRequestPartial'
          multipart/form-data:
            schema:
              allOf:
              - $ref: '#/components/schemas/IncomingWebhookUpdateRequestPartial'
              - type: object
                properties:
                  files[0]:
                    type: string
                    contentEncoding: binary
                  files[1]:
                    type: string
                    contentEncoding: binary
                  files[2]:
                    type: string
                    contentEncoding: binary
                  files[3]:
                    type: string
                    contentEncoding: binary
                  files[4]:
                    type: string
                    contentEncoding: binary
                  files[5]:
                    type: string
                    contentEncoding: binary
                  files[6]:
                    type: string
                    contentEncoding: binary
                  files[7]:
                    type: string
                    contentEncoding: binary
                  files[8]:
                    type: string
                    contentEncoding: binary
                  files[9]:
                    type: string
                    contentEncoding: binary
        required: true
      responses:
        '200':
          description: 200 response for update_original_webhook_message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
        4XX:
          $ref: '#/components/responses/ClientErrorResponse'
      security:
      - {}
      - BotToken: []
      tags:
      - Webhooks
  /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}:
    parameters:
    - name: webhook_id
      in: path
      schema:
        $ref: '#/components/schemas/SnowflakeType'
      required: true
    - name: webhook_token
      in: path
      schema:
        type: string
        maxLength: 152133
      required: true
    - name: message_id
      in: path
      schema:
        $ref: '#/components/schemas/SnowflakeType'
      required: true
    get:
      operationId: get_webhook_message
      parameters:
      - name: thread_id
        in: query
        schema:
          $ref: '#/components/schemas/SnowflakeType'
      responses:
        '200':
          description: 200 response for get_webhook_message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
        4XX:
          $ref: '#/components/responses/ClientErrorResponse'
      security:
      - {}
      - BotToken: []
      tags:
      - Webhooks
    delete:
      operationId: delete_webhook_message
      parameters:
      - name: thread_id
        in: query
        schema:
          $ref: '#/components/schemas/SnowflakeType'
      responses:
        '204':
          description: 204 response for delete_webhook_message
        4XX:
          $ref: '#/components/responses/ClientErrorResponse'
      security:
      - {}
      - BotToken: []
      tags:
      - Webhooks
    patch:
      operationId: update_webhook_message
      parameters:
      - name: thread_id
        in: query
        schema:
          $ref: '#/components/schemas/SnowflakeType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncomingWebhookUpdateRequestPartial'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/IncomingWebhookUpdateRequestPartial'
          multipart/form-data:
            schema:
              allOf:
              - $ref: '#/components/schemas/IncomingWebhookUpdateRequestPartial'
              - type: object
                properties:
                  files[0]:
                    type: string
                    contentEncoding: binary
                  files[1]:
                    type: string
                    contentEncoding: binary
                  files[2]:
                    type: string
                    contentEncoding: binary
                  files[3]:
                    type: string
                    contentEncoding: binary
                  files[4]:
                    type: string
                    contentEncoding: binary
                  files[5]:
                    type: string
                    contentEncoding: binary
                  files[6]:
                    type: string
                    contentEncoding: binary
                  files[7]:
                    type: string
                    contentEncoding: binary
                  files[8]:
                    type: string
                    contentEncoding: binary
                  files[9]:
                    type: string
                    contentEncoding: binary
        required: true
      responses:
        '200':
          description: 200 response for update_webhook_message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
        4XX:
          $ref: '#/components/responses/ClientErrorResponse'
      security:
      - {}
      - BotToken: []
      tags:
      - Webhooks
  /webhooks/{webhook_id}/{webhook_token}/github:
    parameters:
    - name: webhook_id
      in: path
      schema:
        $ref: '#/components/schemas/SnowflakeType'
      required: true
    - name: webhook_token
      in: path
      schema:
        type: string
        maxLength: 152133
      required: true
    post:
      operationId: execute_github_compatible_webhook
      parameters:
      - name: wait
        in: query
        schema:
          type: boolean
      - name: thread_id
        in: query
        schema:
          $ref: '#/components/schemas/SnowflakeType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GithubWebhook'
        required: true
      responses:
        '204':
          description: 204 response for execute_github_compatible_webhook
        4XX:
          $ref: '#/components/responses/ClientErrorResponse'
      security:
      - {}
      - BotToken: []
      tags:
      - Webhooks
  /webhooks/{webhook_id}/{webhook_token}/slack:
    parameters:
    - name: webhook_id
      in: path
      schema:
        $ref: '#/components/schemas/SnowflakeType'
      required: true
    - name: webhook_token
      in: path
      schema:
        type: string
        maxLength: 152133
      required: true
    post:
      operationId: execute_slack_compatible_webhook
      parameters:
      - name: wait
        in: query
        schema:
          type: boolean
      - name: thread_id
        in: query
        schema:
          $ref: '#/components/schemas/SnowflakeType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SlackWebhook'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SlackWebhook'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SlackWebhook'
        required: true
      responses:
        '200':
          description: 200 response for execute_slack_compatible_webhook
          content:
            application/json:
              schema:
                type:
                - string
                - 'null'
        4XX:
          $ref: '#/components/responses/ClientErrorResponse'
      security:
      - {}
      - BotToken: []
      tags:
      - Webhooks
  /webhooks/{webhook_id}/{webhook_token}:
    parameters:
    - name: webhook_id
      in: path
      schema:
        $ref: '#/components/schemas/SnowflakeType'
      required: true
    - name: webhook_token
      in: path
      schema:
        type: string
        maxLength: 152133
      required: true
    get:
      operationId: get_webhook_by_token
      responses:
        '200':
          description: 200 response for get_webhook_by_token
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ApplicationIncomingWebhookResponse'
                - $ref: '#/components/schemas/ChannelFollowerWebhookResponse'
                - $ref: '#/components/schemas/GuildIncomingWebhookResponse'
        4XX:
          $ref: '#/components/responses/ClientErrorResponse'
      security:
      - {}
      - BotToken: []
      tags:
      - Webhooks
    post:
      operationId: execute_webhook
      parameters:
      - name: wait
        in: query
        schema:
          type: boolean
      - name: thread_id
        in: query
        schema:
          $ref: '#/components/schemas/SnowflakeType'
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/IncomingWebhookRequestPartial'
              - $ref: '#/components/schemas/IncomingWebhookUpdateRequestPartial'
              x-discord-union: oneOf
          application/x-www-form-urlencoded:
            schema:
              anyOf:
              - $ref: '#/components/schemas/IncomingWebhookRequestPartial'
              - $ref: '#/components/schemas/IncomingWebhookUpdateRequestPartial'
              x-discord-union: oneOf
          multipart/form-data:
            schema:
              anyOf:
              - $ref: '#/components/schemas/IncomingWebhookRequestPartial'
              - $ref: '#/components/schemas/IncomingWebhookUpdateRequestPartial'
              x-discord-union: oneOf
        required: true
      responses:
        '200':
          description: 200 response for execute_webhook
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
        '204':
          description: 204 response for execute_webhook
        4XX:
          $ref: '#/components/responses/ClientErrorResponse'
      security:
      - {}
      - BotToken: []
      tags:
      - Webhooks
    delete:
      operationId: delete_webhook_by_token
      responses:
        '204':
          description: 204 response for delete_webhook_by_token
        4XX:
          $ref: '#/components/responses/ClientErrorResponse'
      security:
      - {}
      - BotToken: []
      tags:
      - Webhooks
    patch:
      operationId: update_webhook_by_token
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 80
                avatar:
                  type:
                  - string
                  - 'null'
                  contentEncoding: base64
        required: true
      responses:
        '200':
          description: 200 response for update_webhook_by_token
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ApplicationIncomingWebhookResponse'
                - $ref: '#/components/schemas/ChannelFollowerWebhookResponse'
                - $ref: '#/components/schemas/GuildIncomingWebhookResponse'
        4XX:
          $ref: '#/components/responses/ClientErrorResponse'
      security:
      - {}
      - BotToken: []
      tags:
      - Webhooks
  /webhooks/{webhook_id}:
    parameters:
    - name: webhook_id
      in: path
      schema:
        $ref: '#/components/schemas/SnowflakeType'
      required: true
    get:
      operationId: get_webhook
      responses:
        '200':
          description: 200 response for get_webhook
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ApplicationIncomingWebhookResponse'
                - $ref: '#/components/schemas/ChannelFollowerWebhookResponse'
                - $ref: '#/components/schemas/GuildIncomingWebhookResponse'
        4XX:
          $ref: '#/components/responses/ClientErrorResponse'
      security:
      - BotToken: []
      tags:
      - Webhooks
    delete:
      operationId: delete_webhook
      responses:
        '204':
          description: 204 response for delete_webhook
        4XX:
          $ref: '#/components/responses/ClientErrorResponse'
      security:
      - BotToken: []
      tags:
      - Webhooks
    patch:
      operationId: update_webhook
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 80
                avatar:
                  type:
                  - string
                  - 'null'
                  contentEncoding: base64
                channel_id:
                  oneOf:
                  - type: 'null'
                  - $ref: '#/components/schemas/SnowflakeType'
        required: true
      responses:
        '200':
          description: 200 response for update_webhook
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ApplicationIncomingWebhookResponse'
                - $ref: '#/components/schemas/ChannelFollowerWebhookResponse'
                - $ref: '#/components/schemas/GuildIncomingWebhookResponse'
        4XX:
          $ref: '#/components/responses/ClientErrorResponse'
      security:
      - BotToken: []
      tags:
      - Webhooks
  /channels/{channel_id}/webhooks:
    get:
      operationId: getChannelWebhooks
      summary: Discord List channel webhooks
      description: Returns a list of channel webhook objects.
      tags:
      - Webhooks
      parameters:
      - $ref: '#/components/parameters/channelId'
      responses:
        '200':
          description: List of webhook objects
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Webhook'
        4XX:
          $ref: '#/components/responses/ClientError'
    post:
      operationId: createWebhook
      summary: Discord Create webhook
      description: Creates a new webhook for the channel.
      tags:
      - Webhooks
      parameters:
      - $ref: '#/components/parameters/channelId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 80
                avatar:
                  type: string
                  nullable: true
      responses:
        '200':
          description: Webhook created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        4XX:
          $ref: '#/components/responses/ClientError'
  /guilds/{guild_id}/webhooks:
    get:
      operationId: getGuildWebhooks
      summary: Discord List guild webhooks
      description: Returns a list of guild webhook objects.
      tags:
      - Webhooks
      parameters:
      - $ref: '#/components/parameters/guildId'
      responses:
        '200':
          description: List of webhook objects
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Webhook'
        4XX:
          $ref: '#/components/responses/ClientError'
components:
  schemas:
    MessageStickerItemResponse:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/SnowflakeType'
        name:
          type: string
        format_type:
          $ref: '#/components/schemas/StickerFormatTypes'
      required:
      - id
      - name
      - format_type
    ThreadAutoArchiveDuration:
      type: integer
      oneOf:
      - title: ONE_HOUR
        description: One hour
        const: 60
      - title: ONE_DAY
        description: One day
        const: 1440
      - title: THREE_DAY
        description: Three days
        const: 4320
      - title: SEVEN_DAY
        description: Seven days
        const: 10080
      format: int32
    GithubWebhook:
      type: object
      properties:
        action:
          type:
          - string
          - 'null'
          maxLength: 152133
        ref:
          type:
          - string
          - 'null'
          maxLength: 152133
        ref_type:
          type:
          - string
          - 'null'
          maxLength: 152133
        comment:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GithubComment'
        issue:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GithubIssue'
        pull_request:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GithubIssue'
        repository:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GithubRepository'
        forkee:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GithubRepository'
        sender:
          $ref: '#/components/schemas/GithubUser'
        member:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GithubUser'
        release:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GithubRelease'
        head_commit:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GithubCommit'
        commits:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/GithubCommit'
          maxItems: 1521
        forced:
          type:
          - boolean
          - 'null'
        compare:
          type:
          - string
          - 'null'
          maxLength: 2048
          format: uri
        review:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GithubReview'
        check_run:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GithubCheckRun'
        check_suite:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GithubCheckSuite'
        discussion:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GithubDiscussion'
        answer:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/GithubComment'
      required:
      - sender
    IncomingWebhookUpdateRequestPartial:
      type: object
      properties:
        content:
          type:
          - string
          - 'null'
          maxLength: 2000
        embeds:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/RichEmbed'
          maxItems: 10
        allowed_mentions:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/MessageAllowedMentionsRequest'
        components:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ActionRow'
          maxItems: 5
        attachments:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/MessageAttachmentRequest'
          maxItems: 10
        flags:
          type:
          - integer
          - 'null'
    ErrorDetails:
      oneOf:
      - type: object
        additionalProperties:
          $ref: '#/components/schemas/ErrorDetails'
      - $ref: '#/components/schemas/InnerErrors'
    WebhookSlackEmbedField:
      type: object
      properties:
        name:
          type:
          - string
          - 'null'
          maxLength: 152133
        value:
          type:
          - string
          - 'null'
          maxLength: 152133
        inline:
          type:
          - boolean
          - 'null'
    StickerTypes:
      type: integer
      oneOf:
      - title: STANDARD
        description: an official sticker in a pack, part of Nitro or in a removed purchasable pack
        const: 1
      - title: GUILD
        description: a sticker uploaded to a guild for the guild's members
        const: 2
      format: int32
    MessageActivityResponse:
      type: object
      properties: {}
    GithubIssue:
      type: object
      properties:
        id:
          type: integer
        number:
          type: integer
        html_url:
          type: string
          maxLength: 2048
          format: uri
        user:
          $ref: '#/components/schemas/GithubUser'
        title:
          type: string
          maxLength: 152133
        body:
          type:
          - string
          - 'null'
          maxLength: 152133
        pull_request: {}
      required:
      - id
      - number
      - html_url
      - user
      - title
    RichEmbedField:
      type: object
      properties:
        name:
          type: string
          maxLength: 256
        value:
          type: string
          maxLength: 1024
        inline:
          type:
          - boolean
          - 'null'
      required:
      - name
      - value
    Webhook:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Snowflake'
        type:
          type: integer
          description: 1=Incoming, 2=Channel Follower, 3=Application
        guild_id:
          $ref: '#/components/schemas/Snowflake'
        channel_id:
          $ref: '#/components/schemas/Snowflake'
        user:
          $ref: '#/components/schemas/User'
        name:
          type: string
          nullable: true
        avatar:
          type: string
          nullable: true
        token:
          type: string
        application_id:
          $ref: '#/components/schemas/Snowflake'
        url:
          type: string
          format: uri
      required:
      - id
      - type
    ApplicationOAuth2InstallParamsResponse:
      type: object
      properties:
        scopes:
          type: array
          items:
            type: string
            enum:
            - applications.commands
            - bot
            allOf:
            - $ref: '#/components/schemas/OAuth2Scopes'
          uniqueItems: true
        permissions:
          type: string
      required:
      - scopes
      - permissions
    StickerFormatTypes:
      type: integer
      oneOf:
      - title: PNG
        const: 1
      - title: APNG
        const: 2
      - title: LOTTIE
        const: 3
      - title: GIF
        const: 4
      format: int32
    RoleSelect:
      type: object
      properties:
        type:
          type: integer
          enum:
          - 6
          allOf:
          - $ref: '#/components/schemas/MessageComponentTypes'
          format: int32
        custom_id:
          type: string
          maxLength: 100
        placeholder:
          type:
          - string
          - 'null'
          maxLength: 150
        min_values:
          type:
          - integer
          - 'null'
          minimum: 0
          maximum: 25
        max_values:
          type:
          - integer
          - 'null'
          minimum: 1
          maximum: 25
        disabled:
          type:
          - boolean
          - 'null'
        default_values:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/RoleSelectDefaultValue'
          maxItems: 25
      required:
      - type
      - custom_id
    PrivateChannelResponse:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/SnowflakeType'
        type:
          type: integer
          enum:
          - 1
          allOf:
          - $ref: '#/components/schemas/ChannelTypes'
          format: int32
        last_message_id:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/SnowflakeType'
        flags:
          type: integer
          format: int32
        last_pin_timestamp:
          type:
          - string
          - 'null'
          format: date-time
        recipients:
          type: array
          items:
            $ref: '#/components/schemas/UserResponse'
      required:
      - id
      - type
      - flags
      - recipients
    Button:
      type: object
      properties:
        type:
          type: integer
          enum:
          - 2
          allOf:
          - $ref: '#/components/schemas/MessageComponentTypes'
          format: int32
        custom_id:
          type:
          - string
          - 'null'
          maxLength: 100
        style:
          $ref: '#/components/schemas/ButtonStyleTypes'
        label:
          type:
          - string
          - 'null'
          maxLength: 80
        disabled:
          type:
          - boolean
          - 'null'
        emoji:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/Emoji'
        url:
          type:
          - string
          - 'null'
          maxLength: 512
          format: uri
        sku_id:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/SnowflakeType'
      required:
      - type
      - style
    SnowflakeType:
      type: string
      pattern: ^(0|[1-9][0-9]*)$
      format: snowflake
    ApplicationTypes:
      type: integer
      oneOf:
      - title: GUILD_ROLE_SUBSCRIPTIONS
        const: 4
      format: int32
    SelectOption:
      type: object
      properties:
        label:
          type: string
          minLength: 1
          maxLength: 100
        value:
          type: string
          minLength: 1
          maxLength: 100
        description:
          type:
          - string
          - 'null'
          maxLength: 100
        emoji:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/Emoji'
        default:
          type:
          - boolean
          - 'null'
      required:
      - label
      - value
    MessageResponse:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/MessageType'
        channel_id:
          $ref: '#/components/schemas/SnowflakeType'
        content:
          type: string
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/MessageAttachmentResponse'
        embeds:
          type: array
          items:
            $ref: '#/components/schemas/MessageEmbedResponse'
        timestamp:
          type: string
          format: date-time
        edited_timestamp:
          type:
          - string
          - 'null'
          format: date-time
        flags:
          type: integer
          format: int32
        components:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/MessageComponentActionRowResponse'
            - $ref: '#/components/schemas/MessageComponentButtonResponse'
            - $ref: '#/components/schemas/MessageComponentChannelSelectResponse'
            - $ref: '#/components/schemas/MessageComponentInputTextResponse'
            - $ref: '#/components/schemas/MessageComponentMentionableSelectResponse'
            - $ref: '#/components/schemas/MessageComponentRoleSelectResponse'
            - $ref: '#/components/schemas/MessageComponentStringSelectResponse'
            - $ref: '#/components/schemas/MessageComponentUserSelectResponse'
        resolved:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/ResolvedObjectsResponse'
        id:
          $ref: '#/components/schemas/SnowflakeType'
        author:
          $ref: '#/components/schemas/UserResponse'
        mentions:
          type: array
          items:
            $ref: '#/components/schemas/UserResponse'
        mention_roles:
          type: array
          items:
            $ref: '#/components/schemas/SnowflakeType'
          uniqueItems: true
        pinned:
          type: boolean
        mention_everyone:
          type: boolean
        tts:
          type: boolean
        call:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/MessageCallResponse'
        activity:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/MessageActivityResponse'
        application:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/BasicApplicationResponse'
        application_id:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/SnowflakeType'
        interaction:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/MessageInteractionResponse'
        nonce:
          oneOf:
          - type: integer
            minimum: -9223372036854776000
            maximum: 9223372036854776000
            format: int64
          - type: string
            maxLength: 25
            format: nonce
          - type: 'null'
        webhook_id:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/SnowflakeType'
        message_reference:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/MessageReferenceResponse'
        thread:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/ThreadResponse'
        mention_channels:
          type:
          - array
          - 'null'
          items:
            oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/MessageMentionChannelResponse'
        stickers:
          type:
          - array
          - 'null'
          items:
            oneOf:
            - $ref: '#/components/schemas/GuildStickerResponse'
            - $ref: '#/components/schemas/StandardStickerResponse'
        sticker_items:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Messa

# --- truncated at 32 KB (113 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/discord/refs/heads/main/openapi/discord-webhooks-api-openapi.yml