Listrak · AsyncAPI Specification
Listrak Webhooks
Version
View Spec
View on GitHub
Email MarketingSMS MarketingMarketing AutomationCross-ChannelRetailPush NotificationsData ImportPrivacyE-CommerceCustomer DataTransactional MessagingSegmentationProduct ReviewsMedia ManagementTwo-Way SMSRCSAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-08-13'
method: searched
source: https://api.listrak.com/twowaysms/openapi.json
docs:
- https://api.listrak.com/twowaysms/docs
- https://api.listrak.com/crosschannel/v1/docs
spec_type: none
notes: >-
Listrak publishes NO AsyncAPI document. Probed /asyncapi.yaml and /asyncapi.json on api.listrak.com
and www.listrak.com, searched the listrak GitHub org, the developer page and the help center -
nothing. There is no event catalog, no message-schema registry, and no subscription API.
What Listrak DOES have is one real outbound webhook, documented in prose inside the Two-Way SMS
spec's info.description, plus an INBOUND custom-event surface (Cross Channel) that is frequently
mistaken for an event stream but runs the other direction. Both are captured below. `type:
Webhooks` is wired in apis.yml; `type: AsyncAPI` is NOT, because there is no AsyncAPI to point at.
Nothing here is fabricated - the payload example is copied verbatim from Listrak's own docs.
webhooks:
- name: two-way-sms-inbound-message
direction: outbound
api: Two-Way SMS Conversation API
transport: HTTP POST
content_type: application/json
endpoint_owner: consumer
configuration: >-
The endpoint is registered when the Two-Way SMS integration is created in the Listrak
application. It must be a publicly accessible HTTP endpoint. There is no API to register,
rotate or list webhook endpoints - configuration is UI-only.
triggers:
- An invalid MO (mobile-originated message) is received from a contact
- An MO is received for an open support ticket
payload_example: |
{
"SenderCode": 12345,
"CountryCode": "US",
"PhoneId": 15558675309,
"Text": "This is an invalid MO"
}
payload_fields:
- name: SenderCode
type: integer
description: The Listrak sender code (short/long code) the message arrived on.
- name: CountryCode
type: string
description: ISO country code for the originating number.
- name: PhoneId
type: integer
description: The Listrak identifier for the originating phone number.
- name: Text
type: string
description: The body of the inbound message.
signature_verification: not-documented
retry_policy: not-documented
ordering_guarantee: not-documented
related_operations:
- openapi/listrak-tickets-api-openapi.yml#openTicket
- openapi/listrak-tickets-api-openapi.yml#closeTicket
- openapi/listrak-messagestream-api-openapi.yml#getMessageStream
- openapi/listrak-tickets-api-openapi.yml#send
source: https://api.listrak.com/twowaysms/openapi.json
gaps:
- No signing secret, HMAC header, or replay-window is documented for the webhook. A consumer cannot
verify that a delivery came from Listrak.
- No retry/backoff behaviour, no delivery-log endpoint, and no dead-letter surface are documented.
- There is no webhook management API - endpoints are configured in the Listrak UI only.
- There is no webhook for the email/SMS engagement events (opens, clicks, bounces, unsubscribes).
Those are only readable by POLLING the reporting operations
(MessageActivity_GetMessageActivityCollection, MessageLinkClicker_GetMessageLinkClickerCollection,
ConversationMessageActivity_GetConversationMessageActivityCollection), which is the single
biggest event-surface gap for an agent or a real-time integration.
inbound_event_surface:
note: >-
Recorded separately because it is NOT a webhook - it flows INTO Listrak. Listed here so the
distinction is on the record rather than being conflated with an event stream.
api: Cross Channel REST API
base: https://api.listrak.com/crosschannel/v1
mechanism: >-
Custom Events are declared as Event Configurations in the Listrak application, each with a UID
and a JSON schema. Callers POST event payloads against the configuration's UID and Journey Hub
reacts. The schema for a configuration is retrievable at runtime, which is unusually good - an
agent can fetch the contract before posting.
operations:
- openapi/listrak-events-api-openapi.yml#postEvents
- openapi/listrak-eventconfigurations-api-openapi.yml#getEventConfigurations
- openapi/listrak-eventconfigurations-api-openapi.yml#getSchemaByEventUid
related:
- openapi/listrak-event-api-openapi.yml#Event_PostEventResource
probes:
- url: https://api.listrak.com/asyncapi.yaml
status: 404
- url: https://api.listrak.com/asyncapi.json
status: 404
- url: https://www.listrak.com/asyncapi.yaml
status: 404
summary:
asyncapi_documents: 0
webhooks_documented: 1
webhook_management_api: false
signature_verification: false
engagement_event_webhooks: false