Skip to main content
GET
Get Recipient Metrics
Returns a paginated list of recipients who received emails, along with their engagement events (opens, clicks, unsubscribes). Use this endpoint to sync engagement data to your own database or to look up how a specific person interacted with your emails. Test sends are excluded from recipient engagement results by default so previews do not skew results, but they still count toward send usage and quota. Open and click events also exclude detected email-security scanners and tracked brand assets by default.

Query Parameters

email
string
Filter to a single recipient by email address.
campaignId
string
Filter to recipients of a specific campaign. Cannot be combined with sequenceId.
sequenceId
string
Filter to recipients of a specific sequence. Cannot be combined with campaignId.
period
string
Sliding time window. One of: 1h, 24h, 7d, 30d, 90d. Ignored when start and end are provided.
start
string
Start of custom time range (ISO 8601). Must be used with end.
end
string
End of custom time range (ISO 8601). Must be used with start. Max range: 90 days.
page
number
default:"1"
Page number for pagination.
limit
number
default:"20"
Recipients per page (max 100).
includeMachineEngagement
boolean
default:"false"
Set to true to include detected scanner, preview, and tracked asset open/click events in each recipient’s engagement arrays.

Response Fields

Common Queries

How did a specific user interact with our emails?

Returns all opens, clicks, and unsubscribe status for that person. Useful for support conversations or CRM enrichment.

Who opened our latest campaign?

Page through the results to get all recipients. Check each recipient’s opened array — those with entries opened the campaign.
Check each recipient’s clicked array for entries. The url field shows which link they clicked.

Who engaged in the last 24 hours?

Sync engagement data to our database on a cron schedule

Pull yesterday’s engagement data with a fixed time range:
Increment page until page > totalPages to get all results. Fixed time ranges are idempotent — safe to retry.

Responses