Amazon Pinpoint · AsyncAPI Specification

Amazon Pinpoint Events

Version

View Spec View on GitHub CampaignsCommunicationsEmailMarketingMessagingPush NotificationsSMSVoiceCustomer EngagementSegmentationJourneysAnalyticsAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: >-
  https://docs.aws.amazon.com/pinpoint/latest/developerguide/event-streams.html,
  https://docs.aws.amazon.com/pinpoint/latest/developerguide/event-streams-data-app.html,
  https://docs.aws.amazon.com/pinpoint/latest/developerguide/event-streams-data-campaign.html,
  https://docs.aws.amazon.com/pinpoint/latest/developerguide/event-streams-data-email.html,
  https://docs.aws.amazon.com/pinpoint/latest/developerguide/event-streams-data-sms.html,
  https://docs.aws.amazon.com/pinpoint/latest/developerguide/channels-custom.html
spec_type: none
asyncapi_published: false
asyncapi_note: >-
  Amazon Pinpoint has a real, documented event surface but AWS publishes NO AsyncAPI document for
  it - not on the docs host, not in the aws GitHub org, not at any /asyncapi path. This file
  captures the event surface as AWS documents it. It is deliberately not an AsyncAPI: writing one
  on AWS's behalf would assert a contract AWS does not publish.
surfaces:
  - kind: event-stream
    name: Pinpoint event stream
    transport: Amazon Kinesis Data Streams or Amazon Data Firehose
    direction: outbound (Pinpoint -> your stream)
    configured_by:
      - openapi/amazon-pinpoint-apps-api-openapi.yml#PutEventStream
      - openapi/amazon-pinpoint-apps-api-openapi.yml#GetEventStream
      - openapi/amazon-pinpoint-apps-api-openapi.yml#DeleteEventStream
    envelope:
      fields: [event_type, event_timestamp, arrival_timestamp, event_version, application, client, device, session, attributes, metrics, awsAccountId]
      encoding: JSON, one record per event
    excluded:
      - transactional push notifications
      - transactional voice messages
    note: >-
      Pinpoint does not stream events for transactional push or voice - a documented gap in the
      event surface, stated by AWS.
  - kind: webhook
    name: Custom channel webhook
    direction: outbound (Pinpoint -> your HTTPS endpoint)
    trigger: A campaign whose delivery is configured as a custom channel with a webhook URL
    requirements:
      - URL must begin with https://
      - URL must comply with RFC 3986 and use only alphanumerics plus - . _ ~ ? / # :
      - >-
        Pinpoint first issues an HTTP HEAD to the URL; the response MUST carry an
        X-Amz-Pinpoint-AccountId header whose value equals your AWS account ID, or the campaign is
        rejected. This is the ownership handshake.
    payload_fields: [Message, Data, ApplicationId, CampaignId, TreatmentId, ActivityId, ScheduledTime, Endpoints]
    alternative: An AWS Lambda function receiving the same payload shape instead of an HTTPS endpoint
    source: https://docs.aws.amazon.com/pinpoint/latest/developerguide/channels-custom.html
event_catalog:
  app:
    version: '3.0'
    events:
      - {type: _session.start, description: An app session began}
      - {type: _session.stop, description: An app session ended}
      - {type: custom, description: Any custom event name recorded through PutEvents}
    source: https://docs.aws.amazon.com/pinpoint/latest/developerguide/event-streams-data-app.html
  campaign:
    version: '3.1'
    events:
      - {type: _campaign.send, description: Pinpoint executed the campaign}
      - {type: _campaign.opened_notification, description: Push recipient tapped the notification (AWS Amplify only)}
      - {type: _campaign.received_foreground, description: Push received as a foreground notification (AWS Amplify only)}
      - {type: _campaign.received_background, description: Push received as a background notification (AWS Amplify only)}
    source: https://docs.aws.amazon.com/pinpoint/latest/developerguide/event-streams-data-campaign.html
  email:
    version: '3.1'
    events:
      - {type: _email.send, description: Email accepted for sending}
      - {type: _email.delivered, description: Email delivered to the recipient}
      - {type: _email.hardbounce, description: Permanent bounce}
      - {type: _email.softbounce, description: Transient bounce}
      - {type: _email.complaint, description: Recipient marked the message as spam}
      - {type: _email.open, description: Recipient opened the message}
      - {type: _email.click, description: Recipient clicked a link}
      - {type: _email.rejected, description: Message rejected before sending}
      - {type: _email.unsubscribe, description: Recipient unsubscribed}
      - {type: _email.rendering_failure, description: Template rendering failed}
    source: https://docs.aws.amazon.com/pinpoint/latest/developerguide/event-streams-data-email.html
  sms:
    version: '3.1'
    events:
      - {type: _SMS.SUCCESS, description: Message delivered}
      - {type: _SMS.BUFFERED, description: Message accepted and queued by the carrier}
      - {type: _SMS.FAILURE, description: Delivery failed}
      - {type: _SMS.OPTOUT, description: Recipient opted out}
    record_status_note: >-
      SMS events carry a record_status (for example DELIVERED) alongside the event type.
    source: https://docs.aws.amazon.com/pinpoint/latest/developerguide/event-streams-data-sms.html
  journey:
    events_note: >-
      Journey event data is documented at
      https://docs.aws.amazon.com/pinpoint/latest/developerguide/event-streams-data-journey.html
      and shares the app/campaign envelope.
inbound_events:
  - name: PutEvents
    direction: inbound (your app -> Pinpoint)
    operation: openapi/amazon-pinpoint-apps-api-openapi.yml#PutEvents
    note: The write side of the same event model - how engagement events enter Pinpoint.
lifecycle_note: >-
  The event stream and custom-channel webhook go away with the service on 2026-10-30. AWS
  recommends Amazon Kinesis directly for event collection after that date.

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/amazon-pinpoint-events"
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.