Relayloft docsSign in

Reading emails

API base URL: https://api.relayloft.com

These need a Full access key; a Sending only key gets 401 restricted_api_key.

GET /emails/:id

curl https://api.relayloft.com/emails/<id> -H "Authorization: Bearer $RESEND_API_KEY"

Returns object ("email"), id, from, to, cc, bcc, reply_to, subject, html, text, tags, created_at, scheduled_at (ISO 8601, or null) and last_event (scheduled, queued, sent, delivered, delivery_delayed, bounced, complained, failed, suppressed or canceled; with tracking on, opened or clicked once the email was sent, unless it bounced or was marked as spam).

GET /emails

Newest first: { "object": "list", "has_more": true, "data": [...] }. limit is 1 to 100 (default 20). For the next page, pass after with the last id you got; to go back towards newer emails, pass before with the first id you got (not both).

curl "https://api.relayloft.com/emails?limit=50&after=<last id>" -H "Authorization: Bearer $RESEND_API_KEY"

Emails are kept for 30 days (a scheduled email, 30 days from when it was due).

GET /emails/:id/attachments

The email's attachments (resend.emails.attachments.list and .get, or GET /emails/:id/attachments/:attachment_id): id, filename, size (bytes), content_type, content_disposition (inline with a content_id, otherwise attachment), download_url and expires_at. limit is optional: without it, all of them.

The download_url works for an hour without an API key, so treat it like the file itself. It's signed for that one attachment; a changed or expired link gets 404. Once the email is past the 30 days (or a scheduled email is canceled), its attachments are gone.

GET /emails/metrics

Counts for your emails, as Resend's resend.emails.metrics(). Needs a Full access key. Without parameters: the last 7 days (today and the 6 before), every metric, totals only. At most 120 requests an hour and 20,000 emails per request (use a shorter range or a domain_id). Counting is per email: an email to several people where one bounced counts as both delivered and bounced. Canceled emails aren't counted; a scheduled email counts in the period it was accepted. A datetime without an offset is UTC.

curl "https://api.relayloft.com/emails/metrics?start_date=2026-09-01&end_date=2026-09-07&dimensions=period,domain&metrics=sent,delivered,bounce_rate&timezone=Europe/London" \
  -H "Authorization: Bearer $RESEND_API_KEY"