Mist Sites Webhooks API

A Site Webhook is a configuration that allows real-time events and data from a specific site to be pushed to a provided url. It enables the collection of information about various topics such as device events, alarms, audits, client sessions and location updates at the site level. The Webhook can be set up and customized using the Mist API, allowing users to receive and analyze specific data from a particular site.

Operations 8

GET /api/v1/sites/{site_id}/webhooks listSiteWebhooks #
POST /api/v1/sites/{site_id}/webhooks createSiteWebhook #
DELETE /api/v1/sites/{site_id}/webhooks/{webhook_id} deleteSiteWebhook #
GET /api/v1/sites/{site_id}/webhooks/{webhook_id} getSiteWebhook #
PUT /api/v1/sites/{site_id}/webhooks/{webhook_id} updateSiteWebhook #
GET /api/v1/sites/{site_id}/webhooks/{webhook_id}/events/count countSiteWebhooksDeliveries #
GET /api/v1/sites/{site_id}/webhooks/{webhook_id}/events/search searchSiteWebhooksDeliveries #
POST /api/v1/sites/{site_id}/webhooks/{webhook_id}/ping pingSiteWebhook #

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/mist-sites-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

mist-sites-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: tmunzer@juniper.net
    name: Thomas Munzer
  description: '> Version: **2606.1.1**

    >

    > Date: **July 10, 2026**

    <div class="notification"> NOTE:<br>Some important API changes will be introduced. Please make sure to read the <a href="https://www.juniper.net/documentation/us/en/software/mist/api/http/guides/important-api-changes">announcements</a> </div>


    ---

    ## Additional Documentation

    * [Mist Automation Guide](https://www.juniper.net/documentation/us/en/software/mist/automation-integration/index.html)

    * [Mist Location SDK](https://www.juniper.net/documentation/us/en/software/mist/location-services/topics/concept/mist-how-get-mist-sdk.html)

    * [Mist Product Updates](https://www.juniper.net/documentation/us/en/software/mist/product-updates/)


    ## Helpful Resources

    * [API Sandbox and Exercises](https://api-class.mist.com/)

    * [Postman Collection, Runners and Webhook Samples](https://www.postman.com/juniper-mist/workspace/mist-systems-s-public-workspace)

    * [Python Script Examples](https://github.com/tmunzer/mist_library)

    * [API Demo Apps](https://apps.mist-lab.fr/)

    * [Juniper Blog](https://blogs.juniper.net/)


    ## Mist Web Browser Extension:

    * Google Chrome, Microsoft Edge and other Chromium-based browser: [Chrome Web Store](https://chromewebstore.google.com/detail/mist-extension/ejhpdcljeamillfhdihkkmoakanpbplh)

    * Firefox: [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/mist-extension/)


    ---'
  license:
    name: MIT
    url: https://raw.githubusercontent.com/tmunzer/Mist-OAS3.0/main/LICENSE
  title: Mist Sites Webhooks API
  version: 2606.1.1
  x-logo:
    altText: Juniper-MistAI
    backgroundColor: '#FFFFFF'
    url: https://www.mist.com/wp-content/uploads/logo.png
servers:
- description: Mist Global 01
  url: https://api.mist.com
- description: Mist Global 02
  url: https://api.gc1.mist.com
- description: Mist Global 03
  url: https://api.ac2.mist.com
- description: Mist Global 04
  url: https://api.gc2.mist.com
- description: Mist Global 05
  url: https://api.gc4.mist.com
- description: Mist EMEA 01
  url: https://api.eu.mist.com
- description: Mist EMEA 02
  url: https://api.gc3.mist.com
- description: Mist EMEA 03
  url: https://api.ac6.mist.com
- description: Mist EMEA 04
  url: https://api.gc6.mist.com
- description: Mist APAC 01
  url: https://api.ac5.mist.com
- description: Mist APAC 02
  url: https://api.gc5.mist.com
- description: Mist APAC 03
  url: https://api.gc7.mist.com
security:
- apiToken: []
- csrfToken: []
tags:
- description: 'A Site Webhook is a configuration that allows real-time events and data from a specific site to be pushed to a provided url.


    It enables the collection of information about various topics such as device events, alarms, audits, client sessions and location updates at the site level.


    The Webhook can be set up and customized using the Mist API, allowing users to receive and analyze specific data from a particular site.'
  name: Sites Webhooks
paths:
  /api/v1/sites/{site_id}/webhooks:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Get List of Site Webhooks
      operationId: listSiteWebhooks
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          $ref: '#/components/responses/WebhooksArray'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: listSiteWebhooks
      tags:
      - Sites Webhooks
    post:
      description: "Webhook defines a webhook, modeled after [github\\u2019s model](https://developer.github.com/webhooks/).\n\n\nThere is two types of webhooks:\n* webhooks ([examples](https://www.postman.com/juniper-mist/workspace/mist-systems-s-public-workspace/folder/224925-be01e694-7253-4195-8563-78e2a745e114))        \n* raw data webhooks ([examples](https://www.postman.com/juniper-mist/workspace/mist-systems-s-public-workspace/folder/224925-e2d5d5f8-4bdb-4efc-93e4-90f4b33d0b2b))\n\n\n##### Webhooks\nWebhooks can be configured at the org level (subset of topics only) and at the site level. It is possible to have multiple topics in the same webhook configuration and/or to have multiple webhooks configured at the same time.\n\n##### Client Raw Data Webhooks\nRaw data webhooks are a special subset of webhooks that provide insight into raw data packets emitted by a client, identified by their advertising MAC address (assets, discovered BLE, connected Wi-Fi, unconnected Wi-Fi). The data that client raw data webhooks encompasses are reporting AP information, RSSI Data, and any special packets/telemetry packets that the client may emit. Note that client raw webhooks are the raw data coming from the client and do not contain the X,Y location data of the client. In order to get the location data for a client please see our location webhooks. Clients can be identified uniquely across these client raw data topics and location webhook topic using MAC address as the Unique identifier (client identifier).\n\n###### Client Raw Data Webhooks Topics\nTopics that correspond to client raw data for different client types. \n* `asset-raw-rssi` - Raw data from packets emitted by named and filtered assets \n* `discovered-raw-rssi` - Raw data from packets emitted by passive BLE devices \n* `wifi-conn-raw` - Raw data from packets emitted by connected devices \n* `wifi-unconn-raw` - Raw data from packets emitted by unconnected devices (passive)\n\n### Asset Filtering for Client Raw Data Webhooks\n\nThe `asset-raw-rssi` webhook topic supports filtering of raw data by incorporating asset filters in the webhook payload.  \nThe filter topic allows multiple Webhooks to receive a subset of the a`asset-raw-rssi` data by assigning asset filters to a given webhook. The `asset-raw-rssi` filter topic is filtered-asset-rssi.\n\n\nA webhook assigned to a filter topic can take a list of AssetFilter IDs, which act as inclusive filters to determine which named asset and filtered asset data is sent to the assigned filter topic. Filters can be applied to multiple webhooks, and the same data can be sent to multiple filter topics.\n\n### Rules for Configuring Client Raw Data Webhooks\n\n1. Only four instances of a webhook object can contain a specific filter topic. - A site-level entry will override an org-level entry for the same client raw data webhook topic.\n2. An assigned asset filter must exist and belong to the same site as the webhook it is assigned to.\n"
      operationId: createSiteWebhook
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  enabled: true
                  headers: {}
                  name: string
                  secret: string
                  splunk_token: string
                  topics:
                  - location
                  type: http-post
                  url: string
                  verify_cert: true
            schema:
              $ref: '#/components/schemas/webhook'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/Webhook'
        '400':
          $ref: '#/components/responses/HTTP400Webhook'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: createSiteWebhook
      tags:
      - Sites Webhooks
  /api/v1/sites/{site_id}/webhooks/{webhook_id}:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/webhook_id'
    delete:
      description: Delete Site Webhook
      operationId: deleteSiteWebhook
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: deleteSiteWebhook
      tags:
      - Sites Webhooks
    get:
      description: Get Site Webhook Details
      operationId: getSiteWebhook
      responses:
        '200':
          $ref: '#/components/responses/Webhook'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getSiteWebhook
      tags:
      - Sites Webhooks
    put:
      description: Update Site Webhook
      operationId: updateSiteWebhook
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  enabled: true
                  headers: {}
                  name: string
                  secret: string
                  splunk_token: string
                  topics:
                  - location
                  type: http-post
                  url: string
                  verify_cert: true
            schema:
              $ref: '#/components/schemas/webhook'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/Webhook'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: updateSiteWebhook
      tags:
      - Sites Webhooks
  /api/v1/sites/{site_id}/webhooks/{webhook_id}/events/count:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/webhook_id'
    get:
      description: 'Count Site Webhooks deliveries



        Topics Supported:

        - alarms

        - audits

        - device-updowns

        - occupancy-alerts

        - ping'
      operationId: countSiteWebhooksDeliveries
      parameters:
      - description: Filter webhook delivery results by error message
        in: query
        name: error
        schema:
          examples:
          - Webhook delivery failed
          type: string
      - description: Filter webhook delivery results by HTTP status code
        in: query
        name: status_code
        schema:
          examples:
          - 200
          type: integer
      - description: 'Webhook delivery status used to filter results. enum: `failure`, `success`'
        in: query
        name: status
        schema:
          $ref: '#/components/schemas/webhook_delivery_status'
      - description: 'Webhook topic used to filter results. enum: `alarms`, `audits`, `device-updowns`, `occupancy-alerts`, `ping`'
        in: query
        name: topic
        schema:
          $ref: '#/components/schemas/webhook_delivery_topic'
      - description: 'Field used to group this count response. enum: `status`, `status_code`, `topic`, `webhook_id`'
        in: query
        name: distinct
        schema:
          $ref: '#/components/schemas/webhook_delivery_distinct'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          $ref: '#/components/responses/Count'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: countSiteWebhooksDeliveries
      tags:
      - Sites Webhooks
  /api/v1/sites/{site_id}/webhooks/{webhook_id}/events/search:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/webhook_id'
    get:
      description: 'Search Site Webhooks deliveries



        Topics Supported:

        - alarms

        - audits

        - device-updowns

        - occupancy-alerts

        - ping'
      operationId: searchSiteWebhooksDeliveries
      parameters:
      - description: Filter webhook delivery results by error message
        in: query
        name: error
        schema:
          examples:
          - Webhook delivery failed
          type: string
      - description: Filter webhook delivery results by HTTP status code
        in: query
        name: status_code
        schema:
          examples:
          - 200
          type: integer
      - description: 'Webhook delivery status used to filter results. enum: `failure`, `success`'
        in: query
        name: status
        schema:
          $ref: '#/components/schemas/webhook_delivery_status'
      - description: 'Webhook topic used to filter results. enum: `alarms`, `audits`, `device-updowns`, `occupancy-alerts`, `ping`'
        in: query
        name: topic
        schema:
          $ref: '#/components/schemas/webhook_delivery_topic'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/search_after'
      responses:
        '200':
          $ref: '#/components/responses/WebhookDeliverySearch'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: searchSiteWebhooksDeliveries
      tags:
      - Sites Webhooks
  /api/v1/sites/{site_id}/webhooks/{webhook_id}/ping:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/webhook_id'
    post:
      description: Send a Ping event to the webhook
      operationId: pingSiteWebhook
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: pingSiteWebhook
      tags:
      - Sites Webhooks
components:
  examples:
    HTTP400WebhookRawDataWebhookalreadycreated:
      value:
        detail: Webhook already configured for special location topic
    HTTP400WebhookInvalidassetfilterid:
      value:
        detail: 'invalid field: assetfilter_ids'
    HTTP400WebhookMalformedassetfilterid:
      value:
        detail: 'invalid field: assetfilter_ids'
    HTTP400Example:
      value:
        detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
    WebhookDeliverySearchWebhookDeliveries:
      value:
        end: 1688035193
        limit: 10
        results:
        - error: string
          id: 55b0f02f-ebf6-4ad2-8b10-200508a97581
          org_id: fc7e2967-e7ef-41e6-b007-1217713de05a
          req_headers: '{\"Content-Type\":[\"application/json\"],\"User-Agent\":[\"Mist-webhook\"]}'
          req_payload: '{\"topic\":\"audits\",\"events\":[{\"admin_name\":\"John Doe john.doe@juniper.net\",\"after\":\"{\\"radio_config\\": {\\"band_24\\": {\\"disabled\\": false, \\"allow_rrm_disable\\": false, \\"power_min\\": null, \\"power_max\\": null, \\"power\\": 10, \\"preamble\\": \\"short\\", \\"channels\\": [1, 10], \\"bandwidth\\": 20}}}\",\"before\":\"{\\"radio_config\\": {\\"band_24\\": {\\"disabled\\": false, \\"allow_rrm_disable\\": false, \\"power_min\\": 8, \\"power_max\\": 18, \\"power\\": null, \\"preamble\\": \\"long\\", \\"channels\\": [1, 10], \\"bandwidth\\": 20}}}\",\"id\":\"737909a2-04ff-4aeb-b9da-cc924e74a4dd\",\"message\":\"Update Site Settings\",\"org_id\":\"fc7e2967-e7ef-41e6-b007-1217713de05a\",\"site_id\":\"256c3a35-9cb7-436e-bc6d-314972645d95\",\"site_name\":\"Test Site\",\"src_ip\":\"1.2.3.4\",\"timestamp\":1685956576.923601,\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36\"}]}'
          req_url: https://example.com
          resp_body: Ok
          resp_headers: string
          site_id: 256c3a35-9cb7-436e-bc6d-314972645d95
          status: success
          status_code: 200
          timestamp: 1687962508.583656
          topic: audits
          webhook_id: 7a11b901-f719-4c91-8aef-deb8699a6364
        start: 1687948793
        total: 0
    HTTP400WebhookRawDataWebhookmultipletopics:
      value:
        detail: Only one location topic can be configured per URL
    HTTP400Webhookorglevelfilterwebhook:
      value:
        detail: 'invalid field: topics'
        reason: filtered asset webhooks must be associated with a site
    WebhookExample:
      value:
        created_time: 0
        enabled: true
        headers: {}
        id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
        modified_time: 0
        name: string
        org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
        secret: string
        site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
        splunk_token: string
        topics:
        - location
        type: http-post
        url: string
        verify_cert: true
    HTTP429Example:
      value:
        detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
    HTTP400WebhookDuplicateassetfilterid:
      value:
        detail: 'invalid field: assetfilter_ids'
        reason: contains duplicate uuids
    HTTP403Example:
      value:
        detail: You do not have permission to perform this action.
    WebhooksArrayExample:
      value:
      - created_time: 0
        enabled: true
        headers: {}
        id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
        modified_time: 0
        name: string
        org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
        secret: string
        site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
        splunk_token: string
        topics:
        - location
        type: http-post
        url: string
        verify_cert: true
    HTTP401Example:
      value:
        detail: Authentication credentials were not provided.
    CountExample:
      value:
        distinct: string
        end: 0
        limit: 0
        results:
        - count: 0
          property: string
        start: 0
        total: 0
  schemas:
    webhook_type:
      default: http-post
      description: 'enum: `aws-sns`, `google-pubsub`, `http-post`, `oauth2`, `splunk`'
      enum:
      - aws-sns
      - google-pubsub
      - http-post
      - oauth2
      - splunk
      type: string
    response_http403:
      additionalProperties: false
      description: Standard HTTP 403 permission error response
      properties:
        detail:
          description: Human-readable explanation of the permission error
          examples:
          - You do not have permission to perform this action.
          type: string
      type: object
    webhook_delivery_topic:
      description: 'webhook topic. enum: `alarms`, `audits`, `device-updowns`, `occupancy-alerts`, `ping`'
      enum:
      - alarms
      - audits
      - device-updowns
      - occupancy-alerts
      - ping
      examples:
      - audits
      type: string
    org_id:
      description: Unique identifier of a Mist organization
      examples:
      - a97c1b22-a4e9-411e-9bfd-d8695a0f9e61
      format: uuid
      readOnly: true
      type: string
    response_http400:
      additionalProperties: false
      description: Standard HTTP 400 bad request error response
      properties:
        detail:
          description: Human-readable explanation of the bad request error
          examples:
          - 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
          type: string
      type: object
    webhook_delivery_distinct:
      description: 'webhook topic. enum: `status`, `status_code`, `topic`, `webhook_id`'
      enum:
      - status
      - status_code
      - topic
      - webhook_id
      examples:
      - webhook_id
      type: string
    response_count:
      additionalProperties: false
      description: Distinct count response for time-bounded search results
      properties:
        distinct:
          description: Field used to group the count results
          type: string
        end:
          description: Search window end timestamp for the count request, in epoch seconds
          type: integer
        limit:
          description: Maximum number of distinct count results requested
          type: integer
        results:
          $ref: '#/components/schemas/count_results'
          description: Count results grouped by the distinct field
        start:
          description: Search window start timestamp for the count request, in epoch seconds
          type: integer
        total:
          description: Number of distinct result buckets returned
          type: integer
      required:
      - distinct
      - end
      - limit
      - results
      - start
      - total
      type: object
    webhook_oauth2_scopes:
      description: Required when `type`==`oauth2`, if provided, will be used in the token request
      items:
        type: string
      type: array
    search_webhook_delivery_results:
      description: Webhook delivery records returned by a search response
      items:
        $ref: '#/components/schemas/webhook_delivery'
      type: array
    webhook_topics:
      description: List of supported webhook topics available with the API Call [List Webhook Topics](/#operations/listWebhookTopics)
      items:
        type: string
      type: array
    webhook:
      description: Webhook configuration for delivering selected Mist events to an external destination
      properties:
        assetfilter_ids:
          $ref: '#/components/schemas/webhook_assetfilter_ids'
          description: Asset filter identifiers used to restrict `asset-raw-rssi` webhook events
        created_time:
          $ref: '#/components/schemas/created_time'
          description: Epoch timestamp when the webhook was created
        enabled:
          default: true
          description: Whether webhook is enabled
          type: boolean
        for_site:
          description: Whether this webhook is scoped to a site rather than the organization
          readOnly: true
          type: boolean
        headers:
          additionalProperties:
            type: string
          description: If `type`=`http-post`, additional custom HTTP headers to add. The headers name and value must be string, total bytes of headers name and value must be less than 1000
          examples:
          - x-custom-1: your_custom_header_value1
            x-custom-2: your_custom_header_value2
          type:
          - object
          - 'null'
        id:
          $ref: '#/components/schemas/id'
          description: Unique identifier of the webhook
        modified_time:
          $ref: '#/components/schemas/modified_time'
          description: Epoch timestamp when the webhook was last modified
        name:
          description: Display name of the webhook
          type:
          - string
          - 'null'
        oauth2_client_id:
          description: Required when `oauth2_grant_type`==`client_credentials`; OAuth2 client identifier used to request an access token
          type: string
        oauth2_client_secret:
          description: Required when `oauth2_grant_type`==`client_credentials`; OAuth2 client secret used to request an access token
          format: password
          type: string
        oauth2_grant_type:
          $ref: '#/components/schemas/webhook_oauth2_grant_type'
          description: OAuth2 grant type used when `type`==`oauth2`
        oauth2_password:
          description: Required when `oauth2_grant_type`==`password`; password used for the OAuth2 token request
          format: password
          type: string
        oauth2_scopes:
          $ref: '#/components/schemas/webhook_oauth2_scopes'
          description: OAuth2 scopes included in the token request when `type`==`oauth2`
        oauth2_token_url:
          description: Required when `type`==`oauth2`; token endpoint URL used to obtain the OAuth2 access token
          type: string
        oauth2_username:
          description: Required when `oauth2_grant_type`==`password`; username used for the OAuth2 token request
          type: string
        org_id:
          $ref: '#/components/schemas/org_id'
          description: Organization that owns the webhook
        secret:
          description: "Only if `type`=`http-post` \n\nwhen `secret` is provided, two HTTP headers will be added: \n  * X-Mist-Signature-v2: HMAC_SHA256(secret, body)\n  * X-Mist-Signature: HMAC_SHA1(secret, body)"
          type:
          - string
          - 'null'
        single_event_per_message:
          default: false
          description: Some solutions may not be able to parse multiple events from a single message (e.g. IBM Qradar, DSM). When set to `true`, only a single event will be sent per message. this feature is only available on certain topics (see [List Webhook Topics](/#operations/listWebhookTopics))
          type: boolean
        site_id:
          $ref: '#/components/schemas/site_id'
          description: Site associated with this webhook when it is site-scoped
        splunk_token:
          description: Required if `type`=`splunk`. If splunk_token is not defined for a type Splunk webhook, it will not send, regardless if the webhook receiver is configured to accept it.
          type:
          - string
          - 'null'
        topics:
          $ref: '#/components/schemas/webhook_topics'
          description: Event topics delivered by this webhook
        type:
          $ref: '#/components/schemas/webhook_type'
          description: Delivery mechanism used by this webhook
        url:
          description: Destination URL that receives webhook deliveries
          type: string
        verify_cert:
          default: true
          description: When url uses HTTPS, whether to verify the certificate
          type: boolean
      type: object
    webhook_delivery_status:
      description: 'webhook delivery status. enum: `failure`, `success`'
      enum:
      - failure
      - success
      examples:
      - failure
      type: string
    webhook_assetfilter_ids:
      description: Only if `type`==`asset-raw-rssi`. List of ids to associated asset filters. These filters will be applied to messages routed to a filtered-asset-rssi webhook
      items:
        format: uuid
        type: string
      type: array
    count_results:
      description: List of count result rows
      items:
        $ref: '#/components/schemas/count_result'
      type: array
      uniqueItems: true
    timestamp:
      description: Epoch timestamp, in seconds
      format: double
      readOnly: true
      type: number
    count_result:
      additionalProperties:
        type: string
      description: Count result row with the matching distinct field values
      properties:
        count:
          description: Number of matching items for the distinct value or values in this result
          type: integer
      required:
      - count
      type: object
    modified_time:
      description: When the object has been modified for the last time, in epoch
      format: double
      readOnly: true
      type: number
    response_http400_webhook:
      additionalProperties: false
      description: Webhook-specific HTTP 400 bad request error response
      properties:
        detail:
          description: Human-readable explanation of the invalid webhook request
          examples:
          - 'invalid field: assetfilter_ids'
          type: string
        reason:
          description: Additional reason explaining why the webhook request was invalid
          examples:
          - contains duplicate uuids
          type: string
      type: object
    response_http404:
      additionalProperties: false
      description: Standard HTTP 404 not found error response
      properties:
        id:
          description: Missing resource identifier, when the API includes one
          type: string
      type: object
    response_http401:
      additionalProperties: false
      description: Standard HTTP 401 authentication error response
      properties:
        detail:
          description: Human-readable explanation of the authentication error
          examples:
          - Authentication credentials were not provided.
          type: string
      type: object
    response_http429:
      additionalProperties: false
      description: Standard HTTP 429 rate limit error response
      properties:
        detail:
          description: Human-readable explanation of the rate limit error
          examples:
          - Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
          type: string
      type: object
    id:
      description: Unique ID of the object instance in the Mist Organization
      examples:
      - 53f10664-3ce8-4c27-b382-0ef66432349f
      format: uuid
      readOnly: true
      type: string
    site_id:
      description: Unique identifier of a Mist site
      examples:
      - 441a1214-6928-442a-8e92-e1d34b8ec6a6
      format: uuid
      readOnly: true
      type: string
    created_time:
      description: When the object has been created, in epoch
      format: double
      readOnly: true
      type: number
    webhooks:
      description: Webhook configuration records returned by a list response
      items:
        $ref: '#/components/schemas/webhook'
      type: array
    search_webhook_delivery:
      additionalProperties: false
      description: Paginated response for webhook delivery searches
      properties:
        end:
          description: Upper bound timestamp of the webhook delivery search window, in epoch seconds
          examples:
          - 1688035193
          type: integer
        limit:
          description: Maximum number of webhook delivery records returned by this page
          examples:
          - 10
          type: integer
        next:
          description: URL for the next page of webhook delivery records, when more results are available
          type: string
        results:
          $ref: '#/components/schemas/search_webhook_delivery_results'
          description: Webhook delivery records returned by the search response
        start:
          description: Lower bound timestamp of the webhook delivery search window, in epoch seconds
          examples:
          - 1687948793
          type: integer
        total:
          description: Count of webhook delivery records matching the search
          type: integer
      type: object
    webhook_delivery:
      additionalProperties: false
      description: Record of a webhook delivery attempt and the destination response
      properties:
        error:
          description: Message returned for a failed delivery attempt, when available
          type: string
        id:
          $ref: '#/components/schemas/id'
          description: Unique identifier of the webhook delivery attempt
        org_id:
          $ref: '#/components/schemas/org_id'
          description: Organization associated with the webhook delivery attempt
        req_headers:
          description: HTTP headers sent with the webhook delivery request
          examples:
          - '{\"Content-Type\":[\"application/json\"],\"User-Agent\":[\"Mist-webhook\"]}'
          type: string
        req_payload:
          description: JSON payload sent in the webhook delivery request
          examples:
          - '{\"topic\

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