Compare
SpacePost vs Resend
SpacePost implements the Resend API on top of Amazon SES at about half the price. It is not a full clone: here is exactly what works today, and what does not yet.
| Feature | Status | Notes |
|---|---|---|
| Sending | ||
| Send email (POST /emails) | Supported | Same body and response shape. |
| Batch send (up to 100) | Supported | |
| Scheduled send, reschedule, cancel | Supported | ISO 8601 or natural language. |
| Attachments (base64 or URL), tags, custom headers | Supported | |
| Idempotency-Key header | Supported | 24-hour window. |
| Retrieve and list emails | Supported | Cursor pagination with limit, after, before. |
| Test addresses | Supported | Use addresses at test.spacepost.dev instead of resend.dev. |
| Templates (stored, editable in a UI) | Planned | Send your own HTML or render with your own engine for now. |
| Inbound email (receiving) | Planned | |
| Domains and deliverability | ||
| Domain create, verify, update, delete | Supported | Easy DKIM (3 CNAMEs), custom MAIL FROM, DMARC guidance. |
| Open and click tracking | Supported | Per domain. |
| Automatic suppression of bounces and complaints | Supported | |
| Dedicated IPs | Partial | Offered on Enterprise by request, not self-serve. |
| Multi-region sending | Planned | Sending runs from eu-central-1 today. |
| Platform | ||
| API keys (full access, sending access, domain restricted) | Supported | Prefix sp_live_. Stored as SHA-256, shown once. |
| Webhooks (9 event types) | Supported | Standard Webhooks signatures, Svix-compatible verification. |
| Audiences, contacts, broadcasts | Supported | Unsubscribe link merge tag supported; one-click unsubscribe headers added. |
| SMTP relay | Supported | smtp.spacepost.dev, port 25976 (STARTTLS). |
| Rate limit | Supported | 10 requests per second per team (Resend: 2 on the default limit). |
| Official SDKs | Partial | Node (Resend-compatible). Other languages: use the Resend SDKs with a base URL or generate from the OpenAPI spec. |
| CLI and MCP server | Supported | |
Company and data
Who you contract with, and where your data lives
SpacePost is an EU company and keeps your data in the EU. Resend is a US company. The Resend column only states what Resend publishes on its own site.
| Topic | SpacePost | Resend |
|---|---|---|
| Company | Studio 404 d.o.o., Slovenia (EU) | Plus Five Five, Inc. (Resend), San Francisco, United States |
| Where account data is stored | EU: Railway in Amsterdam (Netherlands) | United States, including email metadata and logs, whichever sending region you choose |
| Sending region | eu-central-1 (Frankfurt) for every domain | us-east-1 (North Virginia) by default; eu-west-1 (Ireland), sa-east-1 or ap-northeast-1 can be chosen per domain |
| Billing currency | EUR, excluding VAT | USD |
| VAT invoices | EU VAT invoices from Slovenia; reverse charge for EU businesses with a valid VAT ID | You can add a VAT number or tax ID for invoicing |
| Governing law | Slovenia (Terms of Service, including the DPA) | Terms: State of California. DPA: no general clause; its EU Standard Contractual Clauses are governed by Irish law |
Resend details are taken from resend.com (Terms of Service, DPA, privacy policy, sending regions and billing documentation, pricing page) on October 28, 2026. They can change; tell us at support@spacepost.dev if something is out of date.
Price
What changes on the bill
| SpacePost (EUR) | Resend (USD) | |
|---|---|---|
| Pro | €9 / 50,000 | USD 20 / 50,000 |
| Pro overage per 1,000 | €0.25 | USD 0.90 |
| Scale | €35 / 200,000 | USD 90 / 100,000 |
SpacePost prices in EUR, excluding VAT. Resend's prices in USD as of October 23, 2026, from resend.com/pricing, not converted. See the calculator for your volume.
Where Resend is ahead
Pick the right tool
- Resend is more established and has first-party SDKs in more languages and a React Email ecosystem.
- If you need hosted templates or inbound email today, stay on Resend until those ship here.
- If you send transactional mail and care about price, rate limits and EU hosting, SpacePost is built for you.
Migration
Migrate in five steps
- 01
Create an account and verify your domain
Sign up, add your sending domain and publish the three DKIM CNAMEs plus the MAIL FROM records. Keep Resend's records in place until you cut over; DKIM selectors do not collide.
- 02
Create an API key
Keys start with sp_live_. Use a sending-access key restricted to your domain for production services.
- 03
Point your code at SpacePost
Change the base URL and the key. Request bodies, response bodies and error shapes stay the same.
- 04
Re-create webhooks
Add your endpoint in the dashboard. Signing uses the Standard Webhooks headers, so existing verification code keeps working with the new secret.
- 05
Cut over gradually
Route a small share of traffic first, watch the email log and your webhooks, then switch the rest. Your suppression list does not transfer automatically; import known bounces and complaints first.
- RESEND_BASE_URL=https://api.resend.com
- RESEND_API_KEY=re_xxxxxxxx
+ RESEND_BASE_URL=https://api.spacepost.dev
+ RESEND_API_KEY=sp_live_xxxxxxxx- import { Resend } from "resend";
+ import { SpacePost as Resend } from "@spacepost/node";
const resend = new Resend(process.env.SPACEPOST_API_KEY);
await resend.emails.send({
from: "Acme <hello@acme.com>",
to: ["ada@example.com"],
subject: "Hello",
html: "<p>Same call, different base URL.</p>",
});SpacePost is an independent product and is not affiliated with or endorsed by Resend. "Resend" is a trademark of its owner. Comparisons reflect our understanding at the time of writing; tell us at support@spacepost.dev if something is wrong.