Resend compatibility
API base URL: https://api.relayloft.com
Relayloft implements the part of Resend's API that sends email and reports on it, so Resend's SDKs work with its base URL. Resend's docs for those endpoints apply, with these differences. Moving over? See Switch from Resend.
Supported
- Emails:
POST /emails,POST /emails/batch(strict and permissive),GET /emails/:id,GET /emails(afterandbefore). - Scheduled send:
scheduled_aton send and batch,PATCH /emails/:idto reschedule,POST /emails/:id/cancel(resend.emails.update,resend.emails.cancel) and theemail.scheduledevent. - Domains: create, get, list, verify, update, delete (
resend.domains.*). - Open and click tracking:
open_trackingandclick_trackingon a domain, theemail.openedandemail.clickedevents, andlast_eventopened/clicked(see Tracking). - API keys: create, list, update, delete (
resend.apiKeys.*). - Webhooks: create, get, list, update, delete, rotate the signing secret, and their events (list, get, replay, attempts).
- Suppressions: add, get, list, remove, and batch add and remove (
resend.suppressions.*). - Templates: create, get, list, update, delete, publish, duplicate (
resend.templates.*), and sending withtemplate. See Templates. - Email metrics (
GET /emails/metrics) and attachments with download links (resend.emails.attachments.*). See Reading emails. - Idempotency keys, tags, attachments by content or URL, inline images, Svix-signed webhooks.
Management calls (domains, keys, webhooks, suppressions, templates) need a Full access key and act on that key's app. Every change is in your audit log, and your Owner is emailed when a key or webhook is created through the API.
Different
- 7 MB per email (Resend allows 40 MB).
- One sending region; other regions, enforced TLS and receiving are refused with a reason.
- Tracking goes through the shared host
relayloft.us. Open tracking works as soon as the domain is verified; click tracking once support has approved your account (turning it on in the sandbox is a422). A custom tracking subdomain (tracking_subdomain) is refused with a reason, sotracking_subdomainis alwaysnull. - A new key without
permissionis Sending only. - Removing a suppression that came from a spam complaint needs the header
x-mailroom-confirm-complaint: yes(or the portal). Sending to someone who complained is the fastest way to hurt your deliverability. - Rate-limit headers:
ratelimit-limitandratelimit-policyon responses to a valid key;retry-afteron every 429. - Timestamps are ISO 8601.
scheduled_ataccepts ISO 8601 and a fixed set of phrases (see Scheduling); anything else is a422. Rescheduling and canceling need a Full access key. Test addresses can't be scheduled.
Not supported (yet)
reacton the wire (the Node SDK renders it to HTML before sending, so that works).- Audiences, contacts, broadcasts, receiving email, SMTP.
Resend is a trademark of Resend, Inc. Relayloft is not affiliated with or endorsed by Resend; the name is used only to describe compatibility.