Hootsuite · AsyncAPI Specification

Hootsuite Webhooks

Version

View Spec View on GitHub Social-MediaSocial Media ManagementMarketingContent SchedulingAnalyticsEngagementSocial ListeningEmployee AdvocacyCustomer ServiceSCIMAuthenticationWebhookAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: >-
  https://developer.hootsuite.com/docs/webhooks,
  https://developer.hootsuite.com/docs/webhooks-overview,
  openapi/hootsuite-inbox-api-openapi.yml (top-level `webhooks` block)
docs:
- https://developer.hootsuite.com/docs/webhooks
- https://developer.hootsuite.com/docs/webhooks-overview
description: >-
  Hootsuite ships an HTTP webhook event surface on two independent products, and NO AsyncAPI
  document for either. The REST platform documents four event types in prose; Inbox 2.0 declares
  six callbacks natively in its OpenAPI 3.1 `webhooks` block, which is the only machine-readable
  event contract Hootsuite publishes.
asyncapi:
  published: false
  note: >-
    No AsyncAPI specification exists on any Hootsuite host. Probed /asyncapi.yaml and the
    api-catalog linkset; neither names one. This catalog is the honest substitute, not a
    substitute AsyncAPI - nothing was generated on Hootsuite's behalf.
surfaces:
- id: rest-platform-webhooks
  name: Hootsuite Platform Webhooks
  transport: HTTP POST to a developer-registered callback URL
  registration: >-
    Callback URLs are registered per app in the Hootsuite developer portal
    (App directory -> Developer apps -> [app] -> Security). The portal can also test whether a
    callback URL has been registered.
  delivery:
    ordering: >-
      Each event carries a `seq_no`, a monotonically increasing sequence number per callback URL.
      Ping events do not carry a sequence number and do not increment it.
    failure_handling: >-
      A callback URL that fails consistently is DISABLED by Hootsuite. It is re-enabled by
      responding 200 OK to a subsequent com.hootsuite.ping.event.v1 probe.
    expected_response: 200 OK
    signing: null
    retries: not documented
  envelope: '{ "seq_no": "123", "type": "com.hootsuite.<domain>.event.v1", "data": { ... } }'
  events:
  - type: com.hootsuite.ping.event.v1
    description: >-
      Liveness probe sent by Hootsuite to test a callback URL, typically after consistent failures.
      Contents can be ignored; return 200 OK to re-enable the URL.
    fields: []
  - type: com.hootsuite.messages.event.v1
    description: Fired when a scheduled or sent message changes state.
    fields:
    - name: state
      type: string
    - name: organization.id
      type: string
      note: null when the message is not owned by an organization
    - name: message.id
      type: string
    - name: timestamp
      type: string
      note: ISO-8601
    states:
    - SCHEDULED
    - PENDING_APPROVAL
    - APPROVED
    - SUBMITTED
    - SENT
    - SEND_FAILED_PERMANENTLY
    - DELETED
    - REJECTED
    state_notes:
      SUBMITTED: Message has a video attached that is in the process of being uploaded to the network.
      SEND_FAILED_PERMANENTLY: Message failed to post to the social network.
  - type: com.hootsuite.comments.event.v1
    description: >-
      Fired when a comment moving through the approvals workflow changes state. Added 2019-03-20.
    fields:
    - name: state
      type: string
    - name: organization.id
      type: string
    - name: comment.id
      type: string
    - name: timestamp
      type: string
    states:
    - PENDING_APPROVAL
    - EXPIRED_APPROVAL
    - COMPLETED
    - FAILED
    - DELETED
    - REJECTED
  - type: com.hootsuite.apps.event.v1
    description: >-
      Fired when a registered application's installation state changes. Member apps carry a member
      object; organization apps carry an organization object.
    fields:
    - name: state
      type: string
    - name: app.id
      type: string
    - name: member.id
      type: string
      note: member apps only
    - name: organization.id
      type: string
      note: organization apps only
    states:
    - INSTALLED
    - UNINSTALLED
- id: inbox-2-0-webhooks
  name: Hootsuite Inbox 2.0 (Sparkcentral) Webhooks
  transport: HTTP POST to a customer-configured endpoint
  machine_readable: true
  spec: openapi/hootsuite-inbox-api-openapi.yml
  spec_location: top-level `webhooks` block (OpenAPI 3.1)
  signing:
    header: X-Hootsuite-Signature
    scheme: shared secret
    declared_as: components.securitySchemes.SharedSecret (type apiKey, in header)
    note: >-
      This is the only Hootsuite callback surface with a documented authenticity signal. The REST
      platform webhooks are unsigned.
  events:
  - name: crm-attribute-lookup
    domain: CRM API
  - name: crm-error-notifications
    domain: CRM API
  - name: crm-write-back
    domain: CRM API
  - name: vai-conversation-started
    domain: Virtual Agent API
  - name: vai-conversation-delegated
    domain: Virtual Agent API
  - name: vai-inbound-message-received
    domain: Virtual Agent API
    note: >-
      Carries the messageId required by POST /inbox/v1/virtual-agent/conversations/{conversationId}.
event_count: 10
standards:
  cloudevents: partial
  cloudevents_note: >-
    Platform event names follow the CloudEvents reverse-DNS versioned convention and the payload
    carries `type` and `data`, but the required CloudEvents attributes specversion, id, source and
    time are absent. Flavored, not conformant.
gaps:
- No AsyncAPI document for either surface.
- REST platform webhooks are unsigned - no HMAC, no signature header, no timestamp anti-replay.
- Retry policy and backoff are undocumented for both surfaces.
- >-
  The REST platform event payloads carry only IDs (message.id, comment.id, app.id). A consumer must
  call back into the REST API to learn anything about the object that changed.

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/hootsuite-webhooks"
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.