API Documentation

Complete reference for the euromail.dev transactional email API. 60 endpoints across 7 resource groups.

Quick Start

Send your first email with any of our official SDKs. All requests require an API key from the dashboard.

curl -X POST https://api.euromail.dev/v1/emails \
  -H "X-EuroMail-Api-Key: em_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "from": "[email protected]", "to": "[email protected]", "subject": "Hello from EuroMail", "html_body": "<h1>It works!</h1>" }'
import { EuroMail } from "@euromail/sdk";

const euromail = new EuroMail({ apiKey: "em_live_..." });

const result = await euromail.sendEmail({
    from: "[email protected]",
    to: "[email protected]",
    subject: "Hello from EuroMail",
    html_body: "<h1>It works!</h1>",
});
from euromail import EuroMail

client = EuroMail(api_key="em_live_...")

result = client.send_email(
    from_address="[email protected]",
    to="[email protected]",
    subject="Hello from EuroMail",
    html_body="<h1>It works!</h1>",
)
use euromail::{EuroMail, SendEmailParams};

let client = EuroMail::new("em_live_...");

let result = client.send_email(&SendEmailParams {
    from: "[email protected]".into(),
    to: "[email protected]".into(),
    subject: Some("Hello from EuroMail".into()),
    html_body: Some("<h1>It works!</h1>".into()),
    ..Default::default()
}).await?;
client := euromail.NewClient("em_live_...")

result, err := client.SendEmail(ctx, euromail.SendEmailParams{
    From:     "[email protected]",
    To:       euromail.Recipients("[email protected]"),
    Subject:  euromail.String("Hello from EuroMail"),
    HTMLBody: euromail.String("<h1>It works!</h1>"),
})
Install an SDK

Official SDKs for TypeScript, Python, Rust, and Go.

# TypeScript / Node.js
npm install @euromail/sdk

# Python
pip install euromail

# Rust (add to Cargo.toml)
euromail = "0.1"

# Go
go get github.com/kalle-works/euromail-go

Feature Guides

In-depth documentation for euromail's core capabilities.

Quickstart

Send your first email in 90 seconds

Sending Emails

The complete guide to sending transactional email with EuroMail. Single sends, batches, attachments, scheduling, idempotency, and tracking.

API Keys & Authentication

Create, use, rotate, and secure EuroMail API keys, and understand the two authentication schemes.

Send Email via SMTP

Send through EuroMail from WordPress, any framework, or any device that speaks SMTP -- authenticate with an API key.

WordPress Plugin

Install the official Euromail plugin to route wp_mail() through the EuroMail API, with an SMTP fallback, delivery log, and webhook-driven status updates -- no code changes.

EU Data Residency

How EuroMail ensures all data stays within the EU

Direct SMTP Engine

How EuroMail's custom Rust SMTP engine delivers email

Template Engine

Create and manage email templates with MiniJinja

Real-time Webhooks

Get instant delivery notifications via signed webhooks

Bounce & Feedback Loops

Automatic bounce handling and complaint processing

Domain Verification

Step-by-step DNS setup for SPF, DKIM, DMARC, and bounce routing

GDPR Tooling

Built-in tools for GDPR compliance and data subject rights

Dashboard

Full admin interface for managing your email infrastructure

IP Warm-up

Build sender reputation with automatic warm-up

Inbound Email Processing

Receive, route, and process incoming emails with EuroMail

Newsletters

Collect subscribers and send newsletters with EuroMail

Sub-Accounts

Create and manage multi-tenant sub-accounts with isolated quotas

Email Validation

Validate email addresses before sending to improve deliverability

DMARC Monitoring

Monitor DMARC alignment across your sending domains

Deliverability Insights

Monitor sending reputation and identify deliverability issues

Scheduled Sending

Schedule emails for future delivery up to 30 days ahead

Agent Mailboxes

Persistent email addresses for AI agents with at-least-once message delivery

Contact Lists & Contacts

Organise subscribers into contact lists, add and import contacts, attach metadata, and manage subscription status.

Signup Forms & Double Opt-In

Create embeddable signup forms, run the GDPR-compliant double opt-in confirmation flow, and customise the embed.

Suppression List

How EuroMail's suppression list protects your reputation: automatic bounce/complaint/unsubscribe suppression, plus manual entries.

Analytics & Reporting

Measure delivery, opens, clicks, bounces and complaints with EuroMail's analytics endpoints, per-tag breakdowns, and CSV export.

Dead Letter Queue

Inspect, retry, and clear emails that exhausted delivery retries, and diagnose why they failed.

Billing, Plans & Quotas

How EuroMail billing works: plans, sending quotas, Stripe checkout and customer portal, and tracking usage.

Official SDKs

Install and use the official EuroMail SDKs for TypeScript, Python, PHP, Rust, and Go.

MCP Server for AI Agents

Let AI assistants send and manage email through EuroMail using the Model Context Protocol server.

Migrate from Resend

Move transactional email from Resend to EuroMail: API field mapping, code before/after, SMTP cutover, DNS, webhooks, and a zero-downtime checklist.

Migrate from SendGrid

Move transactional email from SendGrid to EuroMail: API field mapping, code before/after, SMTP cutover, DNS, webhooks, and a zero-downtime checklist.

Migrate from Mailgun

Move transactional email from Mailgun to EuroMail: API field mapping, code before/after, SMTP cutover, DNS, webhooks, and a zero-downtime checklist.

Migrate from Postmark

Move transactional email from Postmark to EuroMail: API field mapping, code before/after, SMTP cutover, DNS, webhooks, and a zero-downtime checklist.

Migrate from Amazon SES

Move transactional email from Amazon SES to EuroMail: API differences, code before/after, SMTP cutover, DNS, event mapping, and a zero-downtime checklist.

Migrate WordPress & WooCommerce email

Move a live WordPress or WooCommerce site's email to EuroMail: SMTP plugin settings, safe testing, suppression import, parallel running, and what the first 24 hours look like.