REST or SMTP, OpenAPI 3.1 spec, six SDKs, free tier with real DKIM. The shape of an API that respects your time.
GET /v1/openapi.json. Use it with any auto-gen tool. Postman collection on GitHub.
All open source. Same API shape across languages. Dependency-light — no transitive nightmare.
Existing code that speaks SMTP works without changes. Per-message metadata via X-Relayly-* headers.
3,000 sends/month forever. Real DKIM, real webhooks, real dashboard — not a hobbled trial.
Drop into CI without burning quota or spamming yourself. Sends are accepted, signed, and logged but never delivered.
DNS-record-based, validated in seconds. The dashboard polls every 10s and flips green when ready.
Three-line send.
import Relayly from "@relayly/node"; const r = new Relayly({ apiKey: process.env.RELAYLY_API_KEY }); await r.email.send({ to: [{ email: "u@example.com" }], from: { email: "hi@yourdomain.com" }, subject: "Hi", html: "<p>Hi.</p>" });
The honest answers to "but why not just X?".
You can. You'll then write the abstraction we wrote: domain verification UI, suppression list, bounce parser, webhook signing, idempotency, region pinning, reputation tracking, retry orchestration. We've already shipped it.
Twilio's account hierarchy bleeds through their SDK. Our SDK is one credential, one client, one method per resource. Easier to wrap, easier to mock in tests.
The /migrate hub has playbooks for SendGrid, Klaviyo, Resend, Mailgun, Postmark, Mailchimp, Constant Contact, ActiveCampaign, and HubSpot. Most teams complete the swap in an afternoon.
Free tier covers most pilot traffic. 5 minutes from signup to first email.
Start free Talk to a human first