SurveyMonkey · AsyncAPI Specification

SurveyMonkey Webhooks

Version 1.0.0

AsyncAPI 2.6 description of the SurveyMonkey v3 webhook surface. SurveyMonkey delivers events as HTTP POST requests to a `subscription_url` that the consumer registers via the REST endpoint `POST /v3/webhooks`. Every callback carries two verification headers — `Sm-Apikey` (the application Client ID / API key) and `Sm-Signature` (a base64-encoded HMAC-SHA1 digest computed over the raw request body using the key `&`). The `Content-Type` of each callback follows the pattern `application/vnd.surveymonkey..v1+json`. This document is sourced directly from the SurveyMonkey API documentation at https://api.surveymonkey.com/v3/docs and is intended for consumer-side modelling of inbound webhook traffic.

View Spec View on GitHub SurveysMarket ResearchFeedbackNPSFormsAuthenticationAsyncAPIEventsWebhooks

Channels

webhook/response_created
subscribe receiveResponseCreated
Receive a response_created callback.
Fires when a respondent begins a survey response. Registered with `event_type=response_created` and an `object_type` of `survey` or `collector`.
webhook/response_updated
subscribe receiveResponseUpdated
Receive a response_updated callback.
Fires when a survey response is updated. One event is emitted per page of the survey.
webhook/response_completed
subscribe receiveResponseCompleted
Receive a response_completed callback.
Fires when a survey response is completed.
webhook/response_disqualified
subscribe receiveResponseDisqualified
Receive a response_disqualified callback.
Fires when a survey response is disqualified.
webhook/response_overquota
subscribe receiveResponseOverquota
Receive a response_overquota callback.
Fires when a response exceeds a survey's quota.
webhook/response_deleted
subscribe receiveResponseDeleted
Receive a response_deleted callback.
Fires when a response is deleted.
webhook/collector_created
subscribe receiveCollectorCreated
Receive a collector_created callback.
Fires when a collector is created. NOTE: per SurveyMonkey docs, do not set `object_type` to `collector` when subscribing to `collector_created`.
webhook/collector_updated
subscribe receiveCollectorUpdated
Receive a collector_updated callback.
Fires when a collector is updated.
webhook/collector_deleted
subscribe receiveCollectorDeleted
Receive a collector_deleted callback.
Fires when a collector is deleted.
webhook/survey_created
subscribe receiveSurveyCreated
Receive a survey_created callback.
Fires when a survey is created. `object_type` is optional for this event; if provided it must be `survey`.
webhook/survey_updated
subscribe receiveSurveyUpdated
Receive a survey_updated callback.
Fires when a survey is updated. Requires `object_type=survey`.
webhook/survey_deleted
subscribe receiveSurveyDeleted
Receive a survey_deleted callback.
Fires when a survey is deleted. Requires `object_type=survey`.
webhook/app_installed
subscribe receiveAppInstalled
Receive an app_installed callback.
Fires when the application is installed. Used with `object_type=app`.
webhook/app_uninstalled
subscribe receiveAppUninstalled
Receive an app_uninstalled callback.
Fires when the application is uninstalled. Used with `object_type=app`.

Messages

ResponseCreatedEvent
Response Created
A respondent has begun a survey response.
ResponseUpdatedEvent
Response Updated
A survey response was updated (fires once per page of the survey).
ResponseCompletedEvent
Response Completed
A survey response was completed.
ResponseDisqualifiedEvent
Response Disqualified
A survey response was disqualified.
ResponseOverquotaEvent
Response Over Quota
A response exceeded the survey's quota.
ResponseDeletedEvent
Response Deleted
A response was deleted.
CollectorCreatedEvent
Collector Created
A collector was created.
CollectorUpdatedEvent
Collector Updated
A collector was updated.
CollectorDeletedEvent
Collector Deleted
A collector was deleted.
SurveyCreatedEvent
Survey Created
A survey was created.
SurveyUpdatedEvent
Survey Updated
A survey was updated.
SurveyDeletedEvent
Survey Deleted
A survey was deleted.
AppInstalledEvent
App Installed
The application was installed.
AppUninstalledEvent
App Uninstalled
The application was uninstalled.

Servers

https
subscriber {subscription_url}
The consumer-hosted HTTPS endpoint registered as `subscription_url` on a SurveyMonkey webhook. SurveyMonkey POSTs callback payloads to this URL.

AsyncAPI Specification

Raw ↑
asyncapi: '2.6.0'
id: 'urn:com:surveymonkey:webhooks'
info:
  title: SurveyMonkey Webhooks
  version: '1.0.0'
  description: >-
    AsyncAPI 2.6 description of the SurveyMonkey v3 webhook surface. SurveyMonkey
    delivers events as HTTP POST requests to a `subscription_url` that the consumer
    registers via the REST endpoint `POST /v3/webhooks`. Every callback carries
    two verification headers — `Sm-Apikey` (the application Client ID / API key)
    and `Sm-Signature` (a base64-encoded HMAC-SHA1 digest computed over the raw
    request body using the key `<client_id>&<api_secret>`). The `Content-Type` of
    each callback follows the pattern
    `application/vnd.surveymonkey.<object_type>.v1+json`.
    This document is sourced directly from the SurveyMonkey API documentation at
    https://api.surveymonkey.com/v3/docs and is intended for consumer-side
    modelling of inbound webhook traffic.
  contact:
    name: API Evangelist
    url: https://apievangelist.com
    email: kin@apievangelist.com
  license:
    name: SurveyMonkey API Terms of Use
    url: https://www.surveymonkey.com/mp/policy/api-terms-of-use/
  x-apis-json:
    aid: surveymonkey:asyncapi-webhooks
    humanURL: https://api.surveymonkey.com/v3/docs#webhooks
defaultContentType: application/json
servers:
  subscriber:
    url: '{subscription_url}'
    protocol: https
    description: >-
      The consumer-hosted HTTPS endpoint registered as `subscription_url` on a
      SurveyMonkey webhook. SurveyMonkey POSTs callback payloads to this URL.
    variables:
      subscription_url:
        description: The fully-qualified HTTPS URL the consumer registered with SurveyMonkey.
        default: https://example.com/webhooks/surveymonkey
channels:
  webhook/response_created:
    description: >-
      Fires when a respondent begins a survey response. Registered with
      `event_type=response_created` and an `object_type` of `survey` or
      `collector`.
    bindings:
      http:
        type: request
        method: POST
        bindingVersion: '0.3.0'
    subscribe:
      operationId: receiveResponseCreated
      summary: Receive a response_created callback.
      bindings:
        http:
          type: request
          method: POST
          bindingVersion: '0.3.0'
      message:
        $ref: '#/components/messages/ResponseCreatedEvent'
  webhook/response_updated:
    description: >-
      Fires when a survey response is updated. One event is emitted per page of
      the survey.
    bindings:
      http:
        type: request
        method: POST
        bindingVersion: '0.3.0'
    subscribe:
      operationId: receiveResponseUpdated
      summary: Receive a response_updated callback.
      message:
        $ref: '#/components/messages/ResponseUpdatedEvent'
  webhook/response_completed:
    description: Fires when a survey response is completed.
    bindings:
      http:
        type: request
        method: POST
        bindingVersion: '0.3.0'
    subscribe:
      operationId: receiveResponseCompleted
      summary: Receive a response_completed callback.
      message:
        $ref: '#/components/messages/ResponseCompletedEvent'
  webhook/response_disqualified:
    description: Fires when a survey response is disqualified.
    bindings:
      http:
        type: request
        method: POST
        bindingVersion: '0.3.0'
    subscribe:
      operationId: receiveResponseDisqualified
      summary: Receive a response_disqualified callback.
      message:
        $ref: '#/components/messages/ResponseDisqualifiedEvent'
  webhook/response_overquota:
    description: Fires when a response exceeds a survey's quota.
    bindings:
      http:
        type: request
        method: POST
        bindingVersion: '0.3.0'
    subscribe:
      operationId: receiveResponseOverquota
      summary: Receive a response_overquota callback.
      message:
        $ref: '#/components/messages/ResponseOverquotaEvent'
  webhook/response_deleted:
    description: Fires when a response is deleted.
    bindings:
      http:
        type: request
        method: POST
        bindingVersion: '0.3.0'
    subscribe:
      operationId: receiveResponseDeleted
      summary: Receive a response_deleted callback.
      message:
        $ref: '#/components/messages/ResponseDeletedEvent'
  webhook/collector_created:
    description: >-
      Fires when a collector is created. NOTE: per SurveyMonkey docs, do not set
      `object_type` to `collector` when subscribing to `collector_created`.
    bindings:
      http:
        type: request
        method: POST
        bindingVersion: '0.3.0'
    subscribe:
      operationId: receiveCollectorCreated
      summary: Receive a collector_created callback.
      message:
        $ref: '#/components/messages/CollectorCreatedEvent'
  webhook/collector_updated:
    description: Fires when a collector is updated.
    bindings:
      http:
        type: request
        method: POST
        bindingVersion: '0.3.0'
    subscribe:
      operationId: receiveCollectorUpdated
      summary: Receive a collector_updated callback.
      message:
        $ref: '#/components/messages/CollectorUpdatedEvent'
  webhook/collector_deleted:
    description: Fires when a collector is deleted.
    bindings:
      http:
        type: request
        method: POST
        bindingVersion: '0.3.0'
    subscribe:
      operationId: receiveCollectorDeleted
      summary: Receive a collector_deleted callback.
      message:
        $ref: '#/components/messages/CollectorDeletedEvent'
  webhook/survey_created:
    description: >-
      Fires when a survey is created. `object_type` is optional for this event;
      if provided it must be `survey`.
    bindings:
      http:
        type: request
        method: POST
        bindingVersion: '0.3.0'
    subscribe:
      operationId: receiveSurveyCreated
      summary: Receive a survey_created callback.
      message:
        $ref: '#/components/messages/SurveyCreatedEvent'
  webhook/survey_updated:
    description: Fires when a survey is updated. Requires `object_type=survey`.
    bindings:
      http:
        type: request
        method: POST
        bindingVersion: '0.3.0'
    subscribe:
      operationId: receiveSurveyUpdated
      summary: Receive a survey_updated callback.
      message:
        $ref: '#/components/messages/SurveyUpdatedEvent'
  webhook/survey_deleted:
    description: Fires when a survey is deleted. Requires `object_type=survey`.
    bindings:
      http:
        type: request
        method: POST
        bindingVersion: '0.3.0'
    subscribe:
      operationId: receiveSurveyDeleted
      summary: Receive a survey_deleted callback.
      message:
        $ref: '#/components/messages/SurveyDeletedEvent'
  webhook/app_installed:
    description: >-
      Fires when the application is installed. Used with `object_type=app`.
    bindings:
      http:
        type: request
        method: POST
        bindingVersion: '0.3.0'
    subscribe:
      operationId: receiveAppInstalled
      summary: Receive an app_installed callback.
      message:
        $ref: '#/components/messages/AppInstalledEvent'
  webhook/app_uninstalled:
    description: >-
      Fires when the application is uninstalled. Used with `object_type=app`.
    bindings:
      http:
        type: request
        method: POST
        bindingVersion: '0.3.0'
    subscribe:
      operationId: receiveAppUninstalled
      summary: Receive an app_uninstalled callback.
      message:
        $ref: '#/components/messages/AppUninstalledEvent'
components:
  messageTraits:
    SurveyMonkeyCallback:
      headers:
        type: object
        required:
          - Sm-Apikey
          - Sm-Signature
          - Content-Type
        properties:
          Sm-Apikey:
            type: string
            description: >-
              The application Client ID (or legacy API key) that owns the
              webhook subscription. Used together with the application's API
              secret to verify the `Sm-Signature` header.
          Sm-Signature:
            type: string
            description: >-
              Base64-encoded HMAC-SHA1 digest of the exact raw request body.
              The HMAC key is the UTF-8 string `<client_id>&<api_secret>`.
              Consumers MUST validate this header using a constant-time
              comparison (e.g. `hmac.compare_digest` or `crypto.timingSafeEqual`).
          Content-Type:
            type: string
            description: >-
              Follows the pattern
              `application/vnd.surveymonkey.<object_type>.v1+json` — for
              example `application/vnd.surveymonkey.response.v1+json`.
            pattern: '^application/vnd\.surveymonkey\.[a-z_]+\.v1\+json$'
            examples:
              - application/vnd.surveymonkey.response.v1+json
              - application/vnd.surveymonkey.survey.v1+json
              - application/vnd.surveymonkey.collector.v1+json
      bindings:
        http:
          headers:
            type: object
            properties:
              Sm-Apikey:
                type: string
              Sm-Signature:
                type: string
          bindingVersion: '0.3.0'
  messages:
    ResponseCreatedEvent:
      name: ResponseCreatedEvent
      title: Response Created
      summary: A respondent has begun a survey response.
      contentType: application/vnd.surveymonkey.response.v1+json
      traits:
        - $ref: '#/components/messageTraits/SurveyMonkeyCallback'
      payload:
        allOf:
          - $ref: '#/components/schemas/WebhookCallbackEnvelope'
          - type: object
            properties:
              event_type:
                const: response_created
              object_type:
                const: response
              resources:
                $ref: '#/components/schemas/ResponseResources'
      examples:
        - name: example
          payload:
            name: My Webhook
            filter_type: collector
            filter_id: '123456789'
            event_type: response_created
            event_id: '123456789'
            object_type: response
            object_id: '123456'
            event_datetime: '2026-05-30T12:00:00+00:00'
            resources:
              respondent_id: '123456789'
              recipient_id: '123456789'
              collector_id: '123456789'
              survey_id: '123456789'
              user_id: '123456789'
    ResponseUpdatedEvent:
      name: ResponseUpdatedEvent
      title: Response Updated
      summary: A survey response was updated (fires once per page of the survey).
      contentType: application/vnd.surveymonkey.response.v1+json
      traits:
        - $ref: '#/components/messageTraits/SurveyMonkeyCallback'
      payload:
        allOf:
          - $ref: '#/components/schemas/WebhookCallbackEnvelope'
          - type: object
            properties:
              event_type:
                const: response_updated
              object_type:
                const: response
              resources:
                $ref: '#/components/schemas/ResponseResources'
    ResponseCompletedEvent:
      name: ResponseCompletedEvent
      title: Response Completed
      summary: A survey response was completed.
      contentType: application/vnd.surveymonkey.response.v1+json
      traits:
        - $ref: '#/components/messageTraits/SurveyMonkeyCallback'
      payload:
        allOf:
          - $ref: '#/components/schemas/WebhookCallbackEnvelope'
          - type: object
            properties:
              event_type:
                const: response_completed
              object_type:
                const: response
              resources:
                $ref: '#/components/schemas/ResponseResources'
      examples:
        - name: collector-event-data
          summary: Example Collector Event Data (from SurveyMonkey docs).
          payload:
            name: My Webhook
            filter_type: survey
            filter_id: '123456789'
            event_type: response_completed
            event_id: '123456789'
            object_type: response
            object_id: '123456'
            event_datetime: '2016-01-01T21:56:31.182613+00:00'
            resources:
              collector_id: '123456789'
              survey_id: '123456789'
              user_id: '123456789'
        - name: response-event-data
          summary: Example Response Event Data (from SurveyMonkey docs).
          payload:
            name: My Webhook
            filter_type: collector
            filter_id: '123456789'
            event_type: response_completed
            event_id: '123456789'
            object_type: response
            object_id: '123456'
            event_datetime: '2016-01-01T21:56:31.182613+00:00'
            resources:
              respondent_id: '123456789'
              recipient_id: '123456789'
              collector_id: '123456789'
              survey_id: '123456789'
              user_id: '123456789'
    ResponseDisqualifiedEvent:
      name: ResponseDisqualifiedEvent
      title: Response Disqualified
      summary: A survey response was disqualified.
      contentType: application/vnd.surveymonkey.response.v1+json
      traits:
        - $ref: '#/components/messageTraits/SurveyMonkeyCallback'
      payload:
        allOf:
          - $ref: '#/components/schemas/WebhookCallbackEnvelope'
          - type: object
            properties:
              event_type:
                const: response_disqualified
              object_type:
                const: response
              resources:
                $ref: '#/components/schemas/ResponseResources'
    ResponseOverquotaEvent:
      name: ResponseOverquotaEvent
      title: Response Over Quota
      summary: A response exceeded the survey's quota.
      contentType: application/vnd.surveymonkey.response.v1+json
      traits:
        - $ref: '#/components/messageTraits/SurveyMonkeyCallback'
      payload:
        allOf:
          - $ref: '#/components/schemas/WebhookCallbackEnvelope'
          - type: object
            properties:
              event_type:
                const: response_overquota
              object_type:
                const: response
              resources:
                $ref: '#/components/schemas/ResponseResources'
    ResponseDeletedEvent:
      name: ResponseDeletedEvent
      title: Response Deleted
      summary: A response was deleted.
      contentType: application/vnd.surveymonkey.response.v1+json
      traits:
        - $ref: '#/components/messageTraits/SurveyMonkeyCallback'
      payload:
        allOf:
          - $ref: '#/components/schemas/WebhookCallbackEnvelope'
          - type: object
            properties:
              event_type:
                const: response_deleted
              object_type:
                const: response
              resources:
                $ref: '#/components/schemas/ResponseResources'
    CollectorCreatedEvent:
      name: CollectorCreatedEvent
      title: Collector Created
      summary: A collector was created.
      contentType: application/vnd.surveymonkey.collector.v1+json
      traits:
        - $ref: '#/components/messageTraits/SurveyMonkeyCallback'
      payload:
        allOf:
          - $ref: '#/components/schemas/WebhookCallbackEnvelope'
          - type: object
            properties:
              event_type:
                const: collector_created
              object_type:
                const: collector
              resources:
                $ref: '#/components/schemas/CollectorResources'
    CollectorUpdatedEvent:
      name: CollectorUpdatedEvent
      title: Collector Updated
      summary: A collector was updated.
      contentType: application/vnd.surveymonkey.collector.v1+json
      traits:
        - $ref: '#/components/messageTraits/SurveyMonkeyCallback'
      payload:
        allOf:
          - $ref: '#/components/schemas/WebhookCallbackEnvelope'
          - type: object
            properties:
              event_type:
                const: collector_updated
              object_type:
                const: collector
              resources:
                $ref: '#/components/schemas/CollectorResources'
    CollectorDeletedEvent:
      name: CollectorDeletedEvent
      title: Collector Deleted
      summary: A collector was deleted.
      contentType: application/vnd.surveymonkey.collector.v1+json
      traits:
        - $ref: '#/components/messageTraits/SurveyMonkeyCallback'
      payload:
        allOf:
          - $ref: '#/components/schemas/WebhookCallbackEnvelope'
          - type: object
            properties:
              event_type:
                const: collector_deleted
              object_type:
                const: collector
              resources:
                $ref: '#/components/schemas/CollectorResources'
    SurveyCreatedEvent:
      name: SurveyCreatedEvent
      title: Survey Created
      summary: A survey was created.
      contentType: application/vnd.surveymonkey.survey.v1+json
      traits:
        - $ref: '#/components/messageTraits/SurveyMonkeyCallback'
      payload:
        allOf:
          - $ref: '#/components/schemas/WebhookCallbackEnvelope'
          - type: object
            properties:
              event_type:
                const: survey_created
              object_type:
                const: survey
              resources:
                $ref: '#/components/schemas/SurveyResources'
    SurveyUpdatedEvent:
      name: SurveyUpdatedEvent
      title: Survey Updated
      summary: A survey was updated.
      contentType: application/vnd.surveymonkey.survey.v1+json
      traits:
        - $ref: '#/components/messageTraits/SurveyMonkeyCallback'
      payload:
        allOf:
          - $ref: '#/components/schemas/WebhookCallbackEnvelope'
          - type: object
            properties:
              event_type:
                const: survey_updated
              object_type:
                const: survey
              resources:
                $ref: '#/components/schemas/SurveyResources'
    SurveyDeletedEvent:
      name: SurveyDeletedEvent
      title: Survey Deleted
      summary: A survey was deleted.
      contentType: application/vnd.surveymonkey.survey.v1+json
      traits:
        - $ref: '#/components/messageTraits/SurveyMonkeyCallback'
      payload:
        allOf:
          - $ref: '#/components/schemas/WebhookCallbackEnvelope'
          - type: object
            properties:
              event_type:
                const: survey_deleted
              object_type:
                const: survey
              resources:
                $ref: '#/components/schemas/SurveyResources'
    AppInstalledEvent:
      name: AppInstalledEvent
      title: App Installed
      summary: The application was installed.
      contentType: application/vnd.surveymonkey.app.v1+json
      traits:
        - $ref: '#/components/messageTraits/SurveyMonkeyCallback'
      payload:
        allOf:
          - $ref: '#/components/schemas/WebhookCallbackEnvelope'
          - type: object
            properties:
              event_type:
                const: app_installed
              object_type:
                const: app
              resources:
                $ref: '#/components/schemas/AppResources'
    AppUninstalledEvent:
      name: AppUninstalledEvent
      title: App Uninstalled
      summary: The application was uninstalled.
      contentType: application/vnd.surveymonkey.app.v1+json
      traits:
        - $ref: '#/components/messageTraits/SurveyMonkeyCallback'
      payload:
        allOf:
          - $ref: '#/components/schemas/WebhookCallbackEnvelope'
          - type: object
            properties:
              event_type:
                const: app_uninstalled
              object_type:
                const: app
              resources:
                $ref: '#/components/schemas/AppResources'
  schemas:
    WebhookCallbackEnvelope:
      type: object
      description: >-
        Shared shape of every SurveyMonkey webhook callback body, per the
        "Callback Event" table in the v3 docs.
      required:
        - name
        - event_type
        - event_id
        - object_type
        - object_id
        - event_datetime
        - resources
      properties:
        name:
          type: string
          description: Webhook name (as configured at registration time).
        filter_type:
          type: string
          description: >-
            Which kind of object the webhook is set to filter events by —
            mirrors the `object_type` set on the webhook subscription.
          enum:
            - survey
            - collector
            - app
        filter_id:
          type: string
          description: The id of the object the webhook was filtered against.
        event_type:
          type: string
          description: Event type that triggered the callback.
          enum:
            - response_completed
            - response_updated
            - response_disqualified
            - response_created
            - response_deleted
            - response_overquota
            - collector_created
            - collector_updated
            - collector_deleted
            - survey_created
            - survey_updated
            - survey_deleted
            - app_installed
            - app_uninstalled
        event_id:
          type: string
          description: Unique id of the event.
        object_type:
          type: string
          description: Type of object the event occurred for.
          enum:
            - response
            - collector
            - survey
            - app
        object_id:
          type: string
          description: Id of the object the event occurred for.
        event_datetime:
          type: string
          format: date-time
          description: ISO 8601 timestamp of when the event occurred.
        resources:
          type: object
          description: >-
            Ids associated with the event. The set of keys present depends on
            the webhook configuration and event type — may include
            `respondent_id`, `recipient_id`, `collector_id`, `survey_id`, and
            `user_id`.
    ResponseResources:
      type: object
      description: >-
        Resource ids carried on `response_*` callbacks. `respondent_id` and
        `recipient_id` may be omitted when the webhook is filtered at the
        survey level rather than at the collector level.
      properties:
        respondent_id:
          type: string
        recipient_id:
          type: string
        collector_id:
          type: string
        survey_id:
          type: string
        user_id:
          type: string
    CollectorResources:
      type: object
      description: Resource ids carried on `collector_*` callbacks.
      properties:
        collector_id:
          type: string
        survey_id:
          type: string
        user_id:
          type: string
    SurveyResources:
      type: object
      description: Resource ids carried on `survey_*` callbacks.
      properties:
        survey_id:
          type: string
        user_id:
          type: string
    AppResources:
      type: object
      description: >-
        Resource ids carried on `app_installed` / `app_uninstalled` callbacks.
      properties:
        user_id:
          type: string
    WebhookSubscription:
      type: object
      description: >-
        Out-of-band reference to the webhook resource registered via
        `POST /v3/webhooks`. Included here to document the producer-side
        configuration that determines which events will be delivered to the
        subscriber.
      required:
        - name
        - subscription_url
        - event_type
      properties:
        id:
          type: string
          description: Webhook id (server-assigned).
        name:
          type: string
          description: Friendly name for the webhook.
        subscription_url:
          type: string
          format: uri
          description: The HTTPS URL SurveyMonkey will POST callbacks to.
        authorization:
          type: string
          description: >-
            Optional string echoed back in the `Authorization` request header
            on every callback. Useful as a coarse shared-secret check in
            addition to `Sm-Signature` validation.
        verify_ssl:
          type: boolean
          description: Whether SurveyMonkey should verify the subscriber's TLS certificate.
          default: true
        bypass_ping:
          type: boolean
          description: Skip the ping of `subscription_url` at registration time.
          default: false
        event_type:
          type: string
          description: Event the webhook listens to.
          enum:
            - response_completed
            - response_updated
            - response_disqualified
            - response_created
            - response_deleted
            - response_overquota
            - collector_created
            - collector_updated
            - collector_deleted
            - survey_created
            - survey_updated
            - survey_deleted
            - app_installed
            - app_uninstalled
        object_type:
          type: string
          description: >-
            Object type to filter events by. Required for every event type
            except `survey_created` (for which it is optional). Must be `app`
            for `app_installed`/`app_uninstalled`. Do not use `collector` with
            `collector_created`.
          enum:
            - survey
            - collector
            - app
        object_ids:
          type: array
          description: >-
            Object ids to filter on. Required whenever `object_type` is set.
          items:
            type: string
  securitySchemes:
    smSignature:
      type: symmetricEncryption
      description: >-
        Verify each callback by recomputing the base64-encoded HMAC-SHA1 digest
        of the raw request body with the key `<client_id>&<api_secret>` and
        comparing it (constant-time) to the `Sm-Signature` request header. The
        `Sm-Apikey` header carries the application Client ID so the consumer
        knows which secret to use when multiple apps share the subscriber.

Work with this as data

Every AsyncAPI spec 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 asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • 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 AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/surveymonkey-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?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.