Amazon Pinpoint · AsyncAPI Specification
Amazon Pinpoint Events
Version
View Spec
View on GitHub
CampaignsCommunicationsEmailMarketingMessagingPush NotificationsSMSVoiceCustomer EngagementSegmentationJourneysAnalyticsAsyncAPIEvents
AsyncAPI Specification
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.
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.