Emails
List sent emails
List workspace emails with cursor pagination and delivery filters.
GET
/api/v1/emailsOn this page
Authentication
Send a RouteKite API key as a Bearer token. This endpoint requires the email:read or email:send scope.
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Required | Bearer API key with the required workspace scope.Example: Bearer rk_your_key |
Request body
| Name | Type | Requirement | Description |
|---|---|---|---|
limit | integer | Optional | Page size from 1 to 100. Defaults to 50. |
cursor | string | Optional | Opaque next_cursor from the previous page. |
status | message state | Optional | Match one normalized delivery state. |
from | Optional | Match the exact sender email. | |
to | Optional | Match the exact recipient email. | |
template_id | uuid | Optional | Match messages rendered from any published version of this template. |
created_after | date-time | Optional | Exclusive lower creation bound with a UTC offset. |
created_before | date-time | Optional | Exclusive upper creation bound with a UTC offset and later than created_after. |
Response
| Name | Type | Requirement | Description |
|---|---|---|---|
object | string | Always | Always list. |
data | email[] | Always | Emails ordered newest first. |
id | uuid | Always | The RouteKite message identifier. |
state | enum | Always | The normalized delivery state. |
purpose | enum | Always | Transactional for public API messages. |
from_email | Always | The Sending Address used for delivery. | |
from_name | string | null | Always | The configured sender name. |
reply_to_email | email | null | Always | The per-message reply address, or null when the Sending Address default is used. |
to_email | Always | The recipient address. | |
subject | string | Always | The submitted subject. |
queued_at | date-time | null | Always | When delivery processing began. |
submitted_at | date-time | null | Always | When the receiving delivery network accepted the message. |
delivered_at | date-time | null | Always | When delivery was confirmed. |
terminal_at | date-time | null | Always | When a final outcome was recorded. |
failure_code | string | null | Always | A stable failure category when available. |
failure_message | string | null | Always | A readable delivery explanation when available. |
created_at | date-time | Always | When the message was created. |
has_more | boolean | Always | Whether another page exists. |
next_cursor | string | null | Always | Opaque cursor for the next page. |
Filters
Filter by status, sender, recipient, template, or an exclusive creation-time range. Results are newest first.
Errors
| Status | Code | What it means | What to do |
|---|---|---|---|
| 400 | INVALID_REQUEST / INVALID_CURSOR | A filter or pagination cursor is invalid. | Correct the reported query value. |
| 401 | UNAUTHORIZED | The API key is missing, invalid, revoked, or expired. | Check the Bearer header and active key. |
| 403 | FORBIDDEN | The key lacks email:read and email:send access. | Use a key with one of the required scopes. |
| 404 | NOT_FOUND | The email is unavailable in this workspace. | Check the message ID and workspace. |
| 429 | RATE_LIMITED | Too many read requests were sent. | Honor Retry-After before retrying. |
| 500 / 503 | INTERNAL_ERROR / EMAIL_LIST_UNAVAILABLE | RouteKite could not load the requested email data. | Retry after a short delay. |