Built for developers
Integrate email marketing into your application with our REST API. Full documentation, code examples and webhooks.
Token authentication
Secure Bearer token auth with scoped API keys per account.
JSON:API format
Consistent, predictable API responses following the JSON:API specification.
Real-time webhooks
Receive events for bounces, complaints, opens and clicks via configurable webhook endpoints.
Rate limiting
Fair rate limits per account with clear headers and retry-after information.
Get started quickly
Add a contact with a single API call.
curl -X POST https://euromailing.com/api/v1/contacts \
-H "Authorization: Bearer eml_live_..." \
-H "Content-Type: application/json" \
-d '{
"contact": {
"email": "jan@voorbeeld.nl",
"first_name": "Jan",
"last_name": "De Vries"
}
}'
{
"data": {
"id": "a1b2c3d4-...",
"type": "contact",
"attributes": {
"email": "jan@voorbeeld.nl",
"first_name": "Jan",
"last_name": "De Vries",
"subscribed_at": "2026-03-23T10:30:00Z"
}
}
}
Point Claude Code at your mailbox
The inbound API was written for agents. A local Claude Code session reads your mail, writes a draft and leaves it waiting — the send button stays yours.
Authorization: Bearer eml_live_…
GET /api/v1/messages?status=open&domain=voorbeeld.nl
PATCH /api/v1/messages/{id} {"handled": true}
PATCH /api/v1/messages/{id} {"draft": "<p>Dag Jan, dat kan zeker…</p>"}
Poll and claim
Filter by domain, address, status or time. Whoever claims a message keeps it, so two sessions never answer the same question.
Leave a draft
As one block of HTML, or as question-and-answer pairs that land under the paragraph each one responds to.
Never sends
The draft appears on the message, labelled with the key that wrote it. A person reads it, edits it and presses send.
Agents find the documentation themselves at /llms.txt — machine-readable, with scopes, error codes and examples.