OpenEvent interface represents a single email open event with detailed metadata including device information, geolocation, and duplicate/suppression status.
Fields
Auto-incrementing unique identifier for the open event. This is the primary key.
Identifier for the tracked email that was opened. References the
email_id from TrackedEmail.Identifier for the user or account that owns this tracking record. Used for data isolation.
Email address of the recipient who opened the email.
ISO 8601 timestamp indicating when the email was opened. Format:
YYYY-MM-DDTHH:mm:ss.sssZIP address from which the email was opened. May be
null if the IP address could not be determined. IPv6-mapped IPv4 addresses are normalized to standard IPv4 format.User agent string from the HTTP request. May be
null if not provided. Used for device type detection and duplicate detection.Country name derived from IP geolocation. May be
null if geolocation lookup failed or IP address was not available.Region or state name derived from IP geolocation. May be
null if not available.City name derived from IP geolocation. May be
null if not available.Latitude coordinate from IP geolocation. May be
null if not available.Longitude coordinate from IP geolocation. May be
null if not available.Type of device used to open the email, detected from the user agent string:
phone- Mobile devices and tabletscomputer- Desktop computers and laptopsother- Unknown or unrecognized devices
Flag indicating whether this open was classified as a duplicate:
0- Unique open event1- Duplicate open (same email opened multiple times from same IP/user agent within a time window)
open_count metric.Flag indicating whether this open was suppressed by the sender:
0- Normal open event1- Suppressed open (sender calledmark-suppress-nextbefore the open occurred)
open_count metric.Reason for suppression if
is_sender_suppressed is 1. Currently, the only value is:"mark_suppress_next"- Suppressed via the mark-suppress-next endpointnull- Not suppressed
Returned by
GET /dashboard/api/open-events- Returns an array ofOpenEventobjects- Without query params: Returns all non-duplicate, non-suppressed open events
- With
email_idquery param: Returns open events for a specific email
Database schema
Stored in theopen_events table with the following SQLite schema:
Example response
Related models
- TrackedEmail - Parent email record that open events belong to
- TrackingPayload - Initial data used to create the tracking record
Related APIs
- Get open events - Retrieve open events for emails
- Mark suppress next - Suppress the next open event for an email