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

Raw ↑
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