# Email Service — Transactional Email API on Runsite

> Transactional email from EU infrastructure: receipts, password resets and alerts, with SPF, DKIM and DMARC handled. 3,000 messages a month free, then €1 per 1,000.

1. [Home](/)
2. [Services](/services)
3. Email Service

Messaging EU · Germany

# EU Transactional Email API

Send receipts, password resets, and notifications. 3,000 emails included every month.

[Start with €5 credit](https://dashboard.runsite.app/login)[Read the docs](https://docs.runsite.app/services/email/)

Included Quota

3,000/mo

Rate

€1 / 1,000

API

REST + SMTP

curl — mail api

 202

 curl -X POST api.runsite.app/v1/emails \

 -d '{"to":"ada@acme.eu","tpl":"reset"}'

 202 Accepted · id=msg_7f3a91

 webhook  delivered   1.4s

 webhook  opened      00:02:11

 3,000 emails / month included 

Queued in Germany, sent from France, never outside the EU

Overview

Runsite Email is a transactional email API for the messages your app has to send: receipts, password resets, magic links, and alerts. Call the REST API or send over SMTP, and Runsite signs, queues, and delivers each one, then reports delivery, opens, clicks, bounces, and complaints back through webhooks.

The sending infrastructure runs entirely inside the European Union. Messages are processed and logged in the EU under GDPR-friendly retention, with a signed Data Processing Agreement on every plan. That matters when authentication and billing mail carries personal data.

It is built for transactional traffic only, not marketing or newsletters, so your messages never share sender reputation with bulk campaigns. Trigger it from your [web services](/services/web-services) on signup or checkout, or send scheduled digests from a [cron job](/services/cron-jobs). Every account includes 3,000 emails a month, then €1 per additional 1,000 with no monthly minimum. Sending to external recipients requires a one-time top-up of at least €5; before that, mail stays inside the sandbox.

Last reviewed: September 2026

At a glance

Included Quota

3,000/mo

Rate

€1 / 1,000

API

REST + SMTP

Region

EU only

Templates

HTML + Text

Webhooks

Opens · Clicks

Hosted in the EU · Germany

[Start with €5 credit](https://dashboard.runsite.app/login)

Features

## Everything to Send Transactional Mail

Built-in tools and capabilities to deploy and manage with confidence.

### Transactional-Only Sending

Built strictly for app-driven mail — receipts, password resets, magic links, alerts. No marketing, no newsletters, no shared-IP penalties.

Marketing mail and application mail share sender reputation when they share an IP, and the marketing volume is what damages it. Keeping campaigns off the platform is why a password reset arrives: the messages a user is actively waiting for are not competing with a newsletter for inbox placement.

### Templates with Variables

HTML and plain-text templates with placeholders. Render server-side via the API call — no template engine on your side.

HTML and plain-text bodies with placeholders, rendered on the server when you call the API. That keeps the template out of your deployment, so changing the wording of a receipt does not require a release, and it keeps both parts of a multipart message in step.

### Custom Sender Domains

Send from your own domain. DKIM, SPF, and DMARC are generated for you — paste two DNS records and you're verified.

SPF, DKIM and DMARC records are generated for you and verified once the DNS entries resolve. All three matter: SPF authorises the sending host, DKIM signs the message so it survives forwarding, and DMARC tells receivers what to do when either check fails.

### Webhooks for Every Event

Real-time webhooks for delivered, opened, clicked, bounced, and complained events. Reconcile state without polling.

Delivered, opened, clicked, bounced and complained events arrive as they happen, so your own records stay correct without polling. Bounces and complaints are the two worth acting on automatically: leaving a hard-bouncing address on the list is what turns a deliverability problem into a reputation one.

### Delivery Analytics

Per-message status and per-domain delivery, open, and click rates. Spot deliverability issues before users start complaining.

Per-message status plus delivery, open and click rates broken out by recipient domain. The per-domain view is the useful one, because deliverability rarely fails everywhere at once — it fails at one large provider first, and an aggregate number hides that until users start reporting it.

### EU-Sovereign by Default

Mail is processed and logged inside the EU. GDPR-friendly retention and a signed DPA included on every plan.

Messages are accepted, signed and queued in Germany and sent by our mail subprocessor in France, with nothing routed through non-EU infrastructure. Bodies are kept for seven days for delivery troubleshooting and then purged; headers and event logs are kept for thirty. A signed GDPR data processing agreement is included on every plan.

Sending Pipeline

## From API call to inbox

Each send goes through verification, signing, queueing, and delivery — with webhooks at every step.

1

### Verify Your Sender Domain

Add your domain in the dashboard. Runsite generates DKIM, SPF, and DMARC records — paste them into your DNS and the domain is verified within minutes.

2

### Queue & Sign the Message

Your API call hits the EU edge, the message is signed with your DKIM key, and it's enqueued for delivery. The API returns a message ID immediately.

3

### Deliver to the Recipient MTA

Runsite negotiates TLS with the recipient mail server, retries on transient failures, and respects per-domain throttling to keep your reputation clean.

4

### Track Events via Webhooks

Delivered, opened, clicked, bounced, and complained events are pushed to your webhook endpoint in real time — no polling, no log scraping.

Code

## Get Started in Minutes

Simple integration with your existing tools and workflows.

curl.sh

```
curl https://api.runsite.app/email/send \
  -H "Authorization: Bearer $RUNSITE_EMAIL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "hello@yourapp.com",
    "to": "user@example.com",
    "subject": "Welcome to YourApp",
    "html": "<h1>Hi there</h1><p>Thanks for signing up.</p>"
  }'
```

Use Cases

## Transactional Mail You Can Send

Common scenarios where this service shines.

### Welcome & Onboarding

Send welcome emails, verification links, and onboarding nudges as new users sign up — without piping through a marketing tool.

### Password Resets & Magic Links

Time-sensitive auth mail that has to land in the primary inbox. Dedicated transactional infrastructure keeps deliverability tight.

### Receipts & Invoices

Order confirmations, payment receipts, and PDF invoices triggered straight from your checkout or billing webhooks.

### Alerts & Notifications

System alerts, comment replies, and threshold notifications. Webhooks let you reconcile delivery state with your own database.

EU-Sovereign

## Your Mail Is Processed in the EU

Hosted in Germany — your data stays under EU jurisdiction.

Messages are accepted, signed, queued, and delivered from Runsite's German region, and nothing is routed through non-EU infrastructure. Message bodies are kept for 7 days for delivery troubleshooting, then purged; headers and event logs are retained for 30 days — all inside the EU.

Every account is GDPR-compliant by default and includes a signed Data Processing Agreement at no extra cost and with no sales call. You can review how we handle data in our [Privacy Policy and DPA terms](/privacy). That makes Runsite a fit when you handle EU customer data or fall under the GDPR or the EU Digital Services Act.

EU data residencyGDPR-readySigned DPA on every plan

Pricing

## Simple, transparent pricing

Pay only for the resources you actually use. Switch between monthly and hourly to see what you'll spend.

Runsite is in Public Beta

Every service listed here is live, and paid plans bill exactly as shown. Beta means the platform is young. Features still change, and parts of the roadmap are not built yet.

### Included

€0

* 3,000 emails / month
* Resets at start of each month
* Custom sender domain
* Templates, webhooks, analytics
* Sending to external recipients needs a €5 top-up
[Get Started](https://dashboard.runsite.app/login)

### Pay-as-you-go

€1 / 1,000

* Charged only above 3,000/mo
* 5,000 emails ≈ €2
* 10,000 emails ≈ €7
* 50,000 emails ≈ €47
[Get Started](https://dashboard.runsite.app/login)

### Every plan, side by side

__Email Service plans and what each includes__
| Plan          | Price      | What it includes                                                                                                                                            |
| ------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Included      | €0         | 3,000 emails / month. Resets at start of each month. Custom sender domain. Templates, webhooks, analytics. Sending to external recipients needs a €5 top-up |
| Pay-as-you-go | €1 / 1,000 | Charged only above 3,000/mo. 5,000 emails ≈ €2\. 10,000 emails ≈ €7\. 50,000 emails ≈ €47                                                                   |

[Compare all plans](/pricing)[Try the calculator](/pricing/calculator)

FAQ

## Frequently Asked Questions

Common questions about this service.

### How is sending billed?

Every account gets 3,000 emails per calendar month at no charge. Above that, you pay €1 per additional 1,000 emails — pro-rated, no rounding tricks. The included quota resets on the 1st of each month and there is no monthly minimum or subscription. Production sending is gated separately: until the account has topped up at least €5, mail is restricted to the sandbox — your own verified addresses only. The €5 starting credit does not lift that gate, because it is a credit and not a payment. One top-up of €5 unlocks it permanently.

### Can I send marketing or newsletter campaigns?

No. Runsite Email is strictly for transactional traffic — receipts, password resets, magic links, and alerts triggered by user actions. Bulk marketing, cold outreach, and unsolicited mail violate the terms and will get the account suspended. Use a dedicated marketing platform for those.

### How do I send from my own domain?

Add your domain in the dashboard. Runsite generates DKIM, SPF, and DMARC records you copy into your DNS provider. Verification usually completes in a few minutes. Until you verify, sends fall back to a runsite.email subdomain so testing isn't blocked.

### Are there rate limits?

New accounts send up to 10 messages per second. The rate scales automatically as your sending reputation builds. If you need a higher burst rate or dedicated IPs, contact support — we'll provision a sending pool that fits your volume.

### Where is mail processed and stored?

All sending infrastructure runs inside the EU. Message bodies are kept for 7 days for delivery troubleshooting, then purged. Headers and event logs are retained for 30 days. A signed DPA is included on every account, no negotiation required.

Guides

## Learn More About Email Service

Hands-on articles from the Runsite blog.

[Compliance10 min readData Processing Agreement for SaaS: What Article 28 RequiresA deal stalls because their legal team wants your DPA before signing. Here's what GDPR Article 28 requires inside a Data Processing Agreement, which side of it your SaaS is on, and how to keep it from becoming a bottleneck in your sales cycle.Read](/blog/what-is-a-data-processing-agreement-dpa)[Compliance9 min readWhere to Store EU User Data: What GDPR Actually RequiresA customer's security review asks where their data physically lives and whether it leaves the EU. GDPR has no hard rule that personal data must stay in Europe — but every transfer out needs a legal mechanism, and EU residency is the simplest way to skip that problem entirely.Read](/blog/gdpr-data-residency)[Compliance11 min readEU Hosting for Developers: Data Residency, GDPR, and DPAs in PracticeA customer asks where their data lives, or a deal stalls on a DPA request, and suddenly "we host in Europe" isn't a good enough answer. Here's what EU hosting actually means for developers: data residency, GDPR roles, DPAs, and how to build a stack that keeps data on EU soil.Read](/blog/eu-hosting-for-developers)[Compliance10 min readSchrems II and Data Transfers: Why an EU-Only Stack Is the Stable AnswerSchrems II struck down Privacy Shield in 2020 — the second EU-US data bridge to collapse in five years. Here's what the ruling actually said, why these frameworks keep failing, and why keeping data in the EU sidesteps the entire cycle.Read](/blog/schrems-ii-data-transfers)

Related

## You Might Also Need

Services that work great together.

[Web ServicesNode.js, Python, Go, Ruby, Rust, or your own Dockerfile — Runsite builds it, runs it, and keeps it online on European infrastructure.Learn more](/services/web-services)[PostgreSQLManaged PostgreSQL. Daily backups, one-click restore. Just connect and start querying.Learn more](/services/postgresql)[Cron JobsRun scheduled tasks automatically. Set a schedule, we run your code — with logs and retries built in.Learn more](/services/cron-jobs)

## Your app deserves to be online

€5 of credit on signup. Deploy in under a minute. No credit card needed.

[Start deploying](https://dashboard.runsite.app/login)[View documentation](https://docs.runsite.app)

---

Source: https://runsite.app/services/email
