API reference / Retrieve email events
GET /v1/events
Retrieve email events
What happened to your mail after you sent it. Everything is scoped to the sending domain your key belongs to, newest first.
Query parameters
All optional. Send none and you get the 25 most recent events.
- limit integer optional
- How many events to return. 1 to 100, default 25.
- offset integer optional
- How many to skip. Default 0. With
total, this is your pagination. - event string optional
- Return only this event type. One of the names below.
- message_id string optional
- Everything that happened to one message. Takes the
idfrom a send response, with or without themsg_prefix. - start string optional
- Earliest event to return. A Unix timestamp in seconds, or an ISO-8601 date.
- end string optional
- Latest event to return. Same formats.
Event types
A message usually produces several. The ones that name a stage are the useful ones when something goes wrong: a message rejected by the system never reached the network, while one rejected by the sending infrastructure did and was refused.
Paging
total is the number of events matching your filter, not the number returned. Ask
for the next page by adding your limit to offset until
offset reaches total.
Events arrive continuously, so a long page-through of a live filter can shift underneath you.
Pin end to the moment you started if you need a stable set.
Retention
Events are kept for 120 days, on every plan including the free one. A
start earlier than that returns what exists rather than an error.
Errors
The same shape and the same codes as the rest of the API: 400 names the parameter
it did not like, 401 means the key, 429 means slow down. See
errors and limits.
curl -G https://api.pharos.email/v1/events \
-H "Authorization: Bearer $PHAROS_API_KEY" \
-d "limit=50" \
-d "event=delivered" {
"total": 150,
"limit": 50,
"offset": 0,
"events": [
{
"event": "delivered",
"occurred_at": "2026-09-12T11:33:20.000Z",
"from": "receipts@yourapp.com",
"to": "customer@example.com",
"subject": "Your receipt from Acme"
}
]
} # everything that happened to one message
curl -G https://api.pharos.email/v1/events \
-H "Authorization: Bearer $PHAROS_API_KEY" \
-d "message_id=msg_2f8Kq1Zx"
# complaints in the last week
curl -G https://api.pharos.email/v1/events \
-H "Authorization: Bearer $PHAROS_API_KEY" \
-d "event=complained" \
-d "start=2026-09-05"