SparkPost Message Events API

Retrieve detailed per-message event data covering deliveries, bounces, clicks, opens, and other engagement events for individual messages.

OpenAPI Specification

sparkpost-events-openapi.yml Raw ↑
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