Mist Orgs Webhooks API

An Org Webhook is a configuration that allows real-time events and data from the Org to be pushed to a provided url. It enables the collection of information about various topics such as device events, alarms, and audits updates at the org 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.

OpenAPI Specification

mist-orgs-webhooks-api-openapi.yml Raw ↑
openapi: 3.1.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 Admins Orgs 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: 'An Org Webhook is a configuration that allows real-time events and data from the Org to be pushed to a provided url.


    It enables the collection of information about various topics such as device events, alarms, and audits updates at the org 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: Orgs Webhooks
paths:
  /api/v1/orgs/{org_id}/webhooks:
    parameters:
    - $ref: '#/components/parameters/org_id'
    get:
      description: Get List of Org Webhooks
      operationId: listOrgWebhooks
      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: listOrgWebhooks
      tags:
      - Orgs Webhooks
    post:
      description: "**N.B**. For org webhooks, only alarms/audits/client-info/client-join/client-sessions/device_events/device-updowns/mxedge_events Infrastructure topics are supported.\n\n\nWebhook 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"
      operationId: createOrgWebhook
      requestBody:
        content:
          application/json:
            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: createOrgWebhook
      tags:
      - Orgs Webhooks
  /api/v1/orgs/{org_id}/webhooks/{webhook_id}:
    parameters:
    - $ref: '#/components/parameters/org_id'
    - $ref: '#/components/parameters/webhook_id'
    delete:
      description: Delete Org Webhook
      operationId: deleteOrgWebhook
      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: deleteOrgWebhook
      tags:
      - Orgs Webhooks
    get:
      description: Get Org Webhook Details
      operationId: getOrgWebhook
      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: getOrgWebhook
      tags:
      - Orgs Webhooks
    put:
      description: Update Org Webhook
      operationId: updateOrgWebhook
      requestBody:
        content:
          application/json:
            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: updateOrgWebhook
      tags:
      - Orgs Webhooks
  /api/v1/orgs/{org_id}/webhooks/{webhook_id}/events/count:
    parameters:
    - $ref: '#/components/parameters/org_id'
    - $ref: '#/components/parameters/webhook_id'
    get:
      description: 'Count Org Webhooks deliveries



        Topics Supported:

        - alarms

        - audits

        - device-updowns

        - occupancy-alerts

        - ping'
      operationId: countOrgWebhooksDeliveries
      parameters:
      - description: Filter webhook delivery results by error message
        in: query
        name: error
        schema:
          type: string
      - description: Filter webhook delivery results by HTTP status code
        in: query
        name: status_code
        schema:
          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: countOrgWebhooksDeliveries
      tags:
      - Orgs Webhooks
  /api/v1/orgs/{org_id}/webhooks/{webhook_id}/events/search:
    parameters:
    - $ref: '#/components/parameters/org_id'
    - $ref: '#/components/parameters/webhook_id'
    get:
      description: 'Search Org Webhooks deliveries



        Topics Supported:

        - alarms

        - audits

        - device-updowns

        - occupancy-alerts

        - ping'
      operationId: searchOrgWebhooksDeliveries
      parameters:
      - description: Filter webhook delivery results by error message
        in: query
        name: error
        schema:
          type: string
      - description: Filter webhook delivery results by HTTP status code
        in: query
        name: status_code
        schema:
          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: searchOrgWebhooksDeliveries
      tags:
      - Orgs Webhooks
  /api/v1/orgs/{org_id}/webhooks/{webhook_id}/ping:
    parameters:
    - $ref: '#/components/parameters/org_id'
    - $ref: '#/components/parameters/webhook_id'
    post:
      description: Send a Ping event to the webhook
      operationId: pingOrgWebhook
      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: pingOrgWebhook
      tags:
      - Orgs Webhooks
components:
  parameters:
    org_id:
      in: path
      name: org_id
      required: true
      schema:
        examples:
        - 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    start:
      description: Lower bound of the time range, as an epoch timestamp in seconds or a relative value such as `-1d` or `-1w`
      in: query
      name: start
      schema:
        type: string
    sort:
      description: On which field the list should be sorted, -prefix represents DESC order
      in: query
      name: sort
      schema:
        default: timestamp
        examples:
        - -site_id
        type: string
    duration:
      description: Time range duration for the query, using relative units such as `10m`, `7d`, or `2w`
      in: query
      name: duration
      schema:
        default: 1d
        examples:
        - 10m
        type: string
    limit:
      description: Maximum number of results to return per page
      in: query
      name: limit
      schema:
        default: 100
        minimum: 0
        type: integer
    page:
      description: Select the page number to return when using page-based pagination; starts at `1`
      in: query
      name: page
      schema:
        default: 1
        minimum: 1
        type: integer
    webhook_id:
      in: path
      name: webhook_id
      required: true
      schema:
        examples:
        - 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    end:
      description: Upper bound of the time range, as an epoch timestamp in seconds or a relative value such as `-1d`, `-2h`, or `now`
      in: query
      name: end
      schema:
        type: string
    search_after:
      description: Pagination cursor for retrieving subsequent pages of results. This value is automatically populated by Mist in the `next` URL from the previous response and should not be manually constructed.
      in: query
      name: search_after
      schema:
        type: string
  responses:
    HTTP429:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP429Example'
          schema:
            $ref: '#/components/schemas/response_http429'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP429Example'
          schema:
            $ref: '#/components/schemas/response_http429'
      description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
    OK:
      description: OK
    Count:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/CountExample'
          schema:
            $ref: '#/components/schemas/response_count'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/CountExample'
          schema:
            $ref: '#/components/schemas/response_count'
      description: Result of Count
    HTTP400:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP400Example'
          schema:
            $ref: '#/components/schemas/response_http400'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP400Example'
          schema:
            $ref: '#/components/schemas/response_http400'
      description: Bad Syntax
    WebhooksArray:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/WebhooksArrayExample'
          schema:
            $ref: '#/components/schemas/webhooks'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/WebhooksArrayExample'
          schema:
            $ref: '#/components/schemas/webhooks'
      description: OK
    HTTP403:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP403Example'
          schema:
            $ref: '#/components/schemas/response_http403'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP403Example'
          schema:
            $ref: '#/components/schemas/response_http403'
      description: Permission Denied
    WebhookDeliverySearch:
      content:
        application/json:
          examples:
            Webhook Deliveries:
              $ref: '#/components/examples/WebhookDeliverySearchWebhookDeliveries'
          schema:
            $ref: '#/components/schemas/search_webhook_delivery'
        application/vnd.api+json:
          examples:
            Webhook Deliveries:
              $ref: '#/components/examples/WebhookDeliverySearchWebhookDeliveries'
          schema:
            $ref: '#/components/schemas/search_webhook_delivery'
      description: Example response
    Webhook:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/WebhookExample'
          schema:
            $ref: '#/components/schemas/webhook'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/WebhookExample'
          schema:
            $ref: '#/components/schemas/webhook'
      description: OK
    HTTP400Webhook:
      content:
        application/json:
          examples:
            Duplicate_assetfilter_id:
              $ref: '#/components/examples/HTTP400WebhookDuplicateassetfilterid'
            Invalid_assetfilter_id:
              $ref: '#/components/examples/HTTP400WebhookInvalidassetfilterid'
            Malformed_assetfilter_id:
              $ref: '#/components/examples/HTTP400WebhookMalformedassetfilterid'
            RawDataWebhook_already_created:
              $ref: '#/components/examples/HTTP400WebhookRawDataWebhookalreadycreated'
            RawDataWebhook_multiple_topics:
              $ref: '#/components/examples/HTTP400WebhookRawDataWebhookmultipletopics'
            org_level_filter_webhook:
              $ref: '#/components/examples/HTTP400Webhookorglevelfilterwebhook'
          schema:
            $ref: '#/components/schemas/response_http400_webhook'
        application/vnd.api+json:
          examples:
            Duplicate_assetfilter_id:
              $ref: '#/components/examples/HTTP400WebhookDuplicateassetfilterid'
            Invalid_assetfilter_id:
              $ref: '#/components/examples/HTTP400WebhookInvalidassetfilterid'
            Malformed_assetfilter_id:
              $ref: '#/components/examples/HTTP400WebhookMalformedassetfilterid'
            RawDataWebhook_already_created:
              $ref: '#/components/examples/HTTP400WebhookRawDataWebhookalreadycreated'
            RawDataWebhook_multiple_topics:
              $ref: '#/components/examples/HTTP400WebhookRawDataWebhookmultipletopics'
            org_level_filter_webhook:
              $ref: '#/components/examples/HTTP400Webhookorglevelfilterwebhook'
          schema:
            $ref: '#/components/schemas/response_http400_webhook'
      description: Bad Syntax
    HTTP404:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/response_http404'
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/response_http404'
      description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
    HTTP401:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP401Example'
          schema:
            $ref: '#/components/schemas/response_http401'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP401Example'
          schema:
            $ref: '#/components/schemas/response_http401'
      description: Unauthorized
  schemas:
    timestamp:
      description: Epoch timestamp, in seconds
      format: double
      readOnly: true
      type: number
    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\":\"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\"}]}'
          type: string
        req_url:
          description: Destination URL used for the webhook delivery request
          examples:
          - https://example.com
          type: string
        resp_body:
          description: Response body returned by the webhook destination
          examples:
          - Ok
          type: string
        resp_headers:
          description: Response headers returned by the webhook destination
          type: string
        site_id:
          $ref: '#/components/schemas/site_id'
          description: Site associated with the webhook delivery attempt, when applicable
        status:
          $ref: '#/components/schemas/webhook_delivery_status'
          description: Delivery result for the webhook request
        status_code:
          description: HTTP status code returned by the webhook destination
          examples:
          - 200
          type: integer
        timestamp:
          $ref: '#/components/schemas/timestamp'
          description: Time when the webhook delivery attempt occurred, in epoch seconds
        topic:
          $ref: '#/components/schemas/webhook_delivery_topic'
          description: Webhook topic delivered in this request
        webhook_id:
          description: Unique identifier of the configured webhook used for this delivery attempt
          examples:
          - 7a11b901-f719-4c91-8aef-deb8699a6364
          format: uuid
          type: string
      type: object
    webhook_delivery_status:
      description: 'webhook delivery status. enum: `failure`, `success`'
      enum:
      - failure
      - success
      examples:
      - failure
      type: string
    id:
      description: Unique ID of the object instance in the Mist Organization
      examples:
      - 53f10664-3ce8-4c27-b382-0ef66432349f
      format: uuid
      readOnly: true
      type: string
    webhooks:
      description: Webhook configuration records returned by a list response
      items:
        $ref: '#/components/schemas/webhook'
      type: array
    org_id:
      description: Unique identifier of a Mist organization
      examples:
      - a97c1b22-a4e9-411e-9bfd-d8695a0f9e61
      format: uuid
      readOnly: true
      type: string
    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
    created_time:
      description: When the object has been created, in epoch
      format: double
      readOnly: true
      type: number
    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
    count_results:
      description: List of count result rows
      items:
        $ref: '#/components/schemas/count_result'
      type: array
      uniqueItems: true
    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_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_oauth2_grant_type:
      description: 'required when `type`==`oauth2`. enum: `client_credentials`, `password`'
      enum:
      - client_credentials
      - password
      type: string
    webhook_oauth2_scopes:
      description: Required when `type`==`oauth2`, if provided, will be used in the token request
      items:
        type: string
      type: array
    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
    search_webhook_delivery_results:
      description: Webhook delivery records returned by a search response
      items:
        $ref: '#/components/schemas/webhook_delivery'
      type: array
    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_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
    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
    site_id:
      description: Unique identifier of a Mist site
      examples:
      - 441a1214-6928-442a-8e92-e1d34b8ec6a6
      format: uuid
      readOnly: true
      type: string
    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
    modified_time:
      description: When the object has been modified for the last time, in epoch
      format: double
      readOnly: true
      type: number
    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
    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: s

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