Hootsuite · AsyncAPI Specification
Hootsuite Webhooks
Version
View Spec
View on GitHub
Social-MediaSocial Media ManagementMarketingContent SchedulingAnalyticsEngagementSocial ListeningEmployee AdvocacyCustomer ServiceSCIMAuthenticationWebhookAsyncAPIEvents
AsyncAPI Specification
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.
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.