GET
/emails/metrics
Resend APIRetrieve account-level email metrics
- Base URL
- https://api.resend.com
- Auth
- Authorization: Bearer <RESEND_API_KEY>
- Last verified
- 2026-09-03 · upstream hash matched
Actions
Agents: curl -H "Accept: text/markdown" this URL
→ 211 tokens · Vary: Accept
→ 211 tokens · Vary: Accept
Critical gotchas
All requests must include a User-Agent header (e.g. User-Agent: my-app/1.0) or the API returns HTTP 403.
The to field is an array of strings, even when sending to a single recipient.
cURL
curl -X GET 'https://api.resend.com/emails/metrics?start_date=example-start-date&end_date=example-end-date&timezone=UTC&granularity=daily&metrics=example&dimensions=example&domain_id=example&email_id=example&broadcast_id=example' \ -H "Authorization: Bearer $RESEND_API_KEY" \ -H 'User-Agent: my-app/1.0'Get a free Resend API key → sponsored
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| start_date | query | string | No | The start of the date range, as an ISO 8601 date or datetime. Must be on or before `end_date`. Defaults to 6 days before `end_date`. |
| end_date | query | string | No | The end of the date range, as an ISO 8601 date or datetime. Values in the future are clamped to the current time. Defaults to now. |
| timezone | query | string | No | The IANA timezone (e.g. `America/New_York`) used to bucket periods when `period` is in `dimensions`. |
| granularity | query | string | No | The bucket size used when `period` is in `dimensions`. The date range can't produce more than 10,000 periods at the chosen granularity. |
| metrics | query | string[] | No | List of metrics to include in the response. Defaults to all metrics. Accepts a comma-separated value, the parameter repeated, or a mix of both. |
| dimensions | query | string[] | No | List of dimensions to break the response down by. `email` cannot be combined with `broadcast`. Defaults to `[]`, returning a single `totals` row for the whole range, with no `data`. Accepts a comma-separated value, the parameter repeated, or a mix of both. |
| domain_id | query | string[] | No | List of sending domain IDs to restrict the response to, up to 100. Accepts a comma-separated value, the parameter repeated, or a mix of both. |
| email_id | query | string[] | No | List of email IDs to restrict the response to, up to 100. Cannot be combined with the `broadcast` dimension or `broadcast_id`. Accepts a comma-separated value, the parameter repeated, or a mix of both. |
| broadcast_id | query | string[] | No | List of broadcast IDs to restrict the response to, up to 100. Cannot be combined with the `email` dimension or `email_id`. Accepts a comma-separated value, the parameter repeated, or a mix of both. |
Response 200 OK
{
"object": "metrics",
"start_date": "2026-07-01T00:00:00.000Z",
"end_date": "2026-07-08T00:00:00.000Z",
"metrics": [
"string"
],
"dimensions": [
"period"
],
"granularity": "hourly",
"totals": {},
"data": [
{
"period": "string",
"domain_id": "00000000-0000-4000-8000-000000000000",
"domain_name": "string",
"email_id": "00000000-0000-4000-8000-000000000000",
"broadcast_id": "00000000-0000-4000-8000-000000000000",
"broadcast_name": "string"
}
]
}