How do APIs expose engagement data?

Still have a question, spotted an error, or have a better explanation or a source we should cite?

If your ESP has an API (most do), it can give your systems access to the same engagement data you see in the dashboard, plus often more. Instead of you logging in to export a CSV, your code asks the API and gets the data back in a structured format.

What ESP APIs typically expose

Campaign-level stats: delivery rate, open rate, click rate, bounce rate, unsubscribe count. Subscriber-level data: each contact's event history, what they opened, what they clicked, when they last engaged. Event logs: individual timestamped events per recipient. Some ESPs expose all of this. Others restrict certain data types by plan tier.

How the API request works (non-technical version)

An API is a way for software systems to talk to each other over the web. Your system sends a request to the ESP's server saying "give me the engagement stats for campaign ID 12345." The ESP sends back the data in a structured format (usually JSON), which your system then reads and uses. Authentication happens through an API key, a secret credential you generate in your ESP account settings.

Pulling data this way is useful for building custom dashboards, syncing engagement data to your CRM without manual exports, or running analysis that your ESP's native reporting doesn't support.

API vs. webhooks

There are two ways to get event data from your ESP. APIs are pull-based: your system asks for data when it needs it, on a schedule or on demand. Webhooks are push-based: the ESP sends data to your system the moment an event happens. For real-time use cases (immediate bounce suppression, instant complaint handling), webhooks are faster. For batch reporting and analysis, API polling works fine.

Most major ESPs (Mailchimp, Klaviyo, Brevo, SendGrid) have well-documented REST APIs. If you're not a developer, this is a conversation for your engineering team. If you are, check your ESP's API reference for authentication setup and rate limits before building anything.

Contributors

Who worked on this answer

Every name links to their profile. Every company links to their site. Real people, real accountability.

Ask an AI · tailored to your setup

Help Me Set Up ESP API Access

I just read the Email Almanac entry on how APIs expose email engagement data. Help me figure out what data I can pull from my ESP's API and how to use it. Walk me through: 1. What engagement data my ESP's API exposes vs. what's only in the dashboard 2. Whether I need API access or whether webhooks are a better fit for my use case 3. How to authenticate and make my first API request to pull campaign stats 4. What rate limits or plan restrictions I might hit --- My details (fill in what applies): - ESP or sending platform: Mailchimp / Klaviyo / Brevo / SendGrid / Postmark / other - What I want to do with the data: [CRM sync / custom dashboard / analysis / bounce suppression / other] - Whether I have developer resources: yes / no / limited - Current data access method: CSV exports / dashboard only / API already set up / other - Send volume per month: rough number

Edit the yellow boxes, then send to the AI of your choice.