SparkPost Message Events API
Retrieve detailed per-message event data covering deliveries, bounces, clicks, opens, and other engagement events for individual messages.
Retrieve detailed per-message event data covering deliveries, bounces, clicks, opens, and other engagement events for individual messages.
openapi: 3.0.3
info:
title: SparkPost Events API
description: Retrieve detailed per-message event data covering deliveries, bounces, clicks, opens, and other engagement events for individual messages.
version: 1.0.0
contact:
name: SparkPost Developer Support
url: https://developers.sparkpost.com/api/events/
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://api.sparkpost.com/api/v1
description: SparkPost Production API
security:
- ApiKeyAuth: []
paths:
/events/message:
get:
operationId: searchMessageEvents
summary: Search Message Events
description: Search for message-level events with filtering, pagination, and cursor support. Returns deliveries, bounces, clicks, opens, spam complaints, and other engagement events. Data retention is 10 days.
tags:
- Events
parameters:
- name: from
in: query
required: false
description: Start datetime (YYYY-MM-DDTHH:MM:ssZ), defaults to 24 hours ago
schema:
type: string
format: date-time
- name: to
in: query
required: false
description: End datetime, defaults to 1 minute ago
schema:
type: string
format: date-time
- name: cursor
in: query
required: false
description: Pagination cursor (defaults to "initial")
schema:
type: string
default: initial
- name: per_page
in: query
required: false
description: Results per page (1-10,000)
schema:
type: integer
minimum: 1
maximum: 10000
default: 1000
- name: delimiter
in: query
required: false
description: List parameter separator (default comma)
schema:
type: string
default: ','
- name: events
in: query
required: false
description: Comma-delimited list of event types to filter
schema:
type: string
- name: event_ids
in: query
required: false
description: Comma-delimited list of event IDs
schema:
type: string
- name: recipients
in: query
required: false
description: Filter by recipient email addresses
schema:
type: string
- name: recipient_domains
in: query
required: false
description: Filter by recipient domains
schema:
type: string
- name: from_addresses
in: query
required: false
description: Filter by from addresses
schema:
type: string
- name: sending_domains
in: query
required: false
description: Filter by sending domains
schema:
type: string
- name: subjects
in: query
required: false
description: Filter by email subjects
schema:
type: string
- name: bounce_classes
in: query
required: false
description: Filter by bounce classification codes
schema:
type: string
- name: reasons
in: query
required: false
description: Filter by bounce or failure reasons
schema:
type: string
- name: campaigns
in: query
required: false
description: Filter by campaign IDs
schema:
type: string
- name: templates
in: query
required: false
description: Filter by template IDs
schema:
type: string
- name: sending_ips
in: query
required: false
description: Filter by sending IPs
schema:
type: string
- name: ip_pools
in: query
required: false
description: Filter by IP pool IDs
schema:
type: string
- name: subaccounts
in: query
required: false
description: Filter by subaccount IDs
schema:
type: string
- name: messages
in: query
required: false
description: Filter by message IDs
schema:
type: string
- name: transmissions
in: query
required: false
description: Filter by transmission IDs
schema:
type: string
- name: mailbox_providers
in: query
required: false
description: Filter by mailbox providers
schema:
type: string
- name: mailbox_provider_regions
in: query
required: false
description: Filter by mailbox provider regions
schema:
type: string
- name: ab_tests
in: query
required: false
description: Filter by A/B test IDs
schema:
type: string
- name: ab_test_versions
in: query
required: false
description: Filter by A/B test version numbers
schema:
type: string
responses:
'200':
description: Message events
content:
application/json:
schema:
$ref: '#/components/schemas/EventsResponse'
/events/message/documentation:
get:
operationId: getMessageEventsDocumentation
summary: Message Events Documentation
description: Retrieve field descriptions and metadata for event response objects.
tags:
- Events
responses:
'200':
description: Field definitions for message events
/events/message/samples:
get:
operationId: getMessageEventSamples
summary: Message Event Samples
description: Get example event payloads for specified event types.
tags:
- Events
parameters:
- name: events
in: query
required: false
description: Comma-delimited event types to get samples for
schema:
type: string
responses:
'200':
description: Sample event payloads
content:
application/json:
schema:
$ref: '#/components/schemas/EventsResponse'
/events/ingest:
get:
operationId: searchIngestEvents
summary: Search Ingest Events
description: Retrieve ingest events with optional filtering. Ingest events track data pipeline ingestion status.
tags:
- Events
parameters:
- name: from
in: query
required: false
description: Start datetime, defaults to 24 hours ago
schema:
type: string
format: date-time
- name: to
in: query
required: false
description: End datetime, defaults to 1 minute ago
schema:
type: string
format: date-time
- name: cursor
in: query
required: false
description: Pagination cursor (defaults to "initial")
schema:
type: string
- name: per_page
in: query
required: false
description: Results per page (1-10,000)
schema:
type: integer
minimum: 1
maximum: 10000
default: 1000
- name: delimiter
in: query
required: false
description: List separator (defaults to comma)
schema:
type: string
- name: events
in: query
required: false
description: Filter by event types
schema:
type: string
- name: event_ids
in: query
required: false
description: Filter by event IDs
schema:
type: string
- name: batch_ids
in: query
required: false
description: Filter by batch IDs
schema:
type: string
- name: subaccounts
in: query
required: false
description: Filter by subaccount IDs
schema:
type: string
- name: retryable
in: query
required: false
description: Filter by retryability
schema:
type: boolean
responses:
'200':
description: Ingest events
content:
application/json:
schema:
$ref: '#/components/schemas/EventsResponse'
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: Authorization
schemas:
EventsResponse:
type: object
properties:
results:
type: array
items:
type: object
additionalProperties: true
total_count:
type: integer
links:
type: object
properties:
next:
type: string
description: URL for next page of results