Introduction
CamelMailer is a transactional email platform for the mail your product must send: receipts, password resets, magic links, alerts. A JSON API and an SMTP port, backed by one Rust binary and one PostgreSQL. Run it yourself, or use the EU cloud.
The three API surfaces
Everything is JSON over HTTPS. The full contract lives in the OpenAPI specification. Import it into Postman or Insomnia, or generate a typed client.
| Surface | Base path | Auth |
|---|---|---|
| Messaging: send, read, templates, stats | /api/v2/server | X-Server-API-Key |
| Management: orgs, servers, domains, … | /api/v2/admin | X-Admin-API-Key or Authorization: Bearer |
| Accounts: login, 2FA, SSO | /api/v2/auth | Authorization: Bearer |
For application integration you only need one credential: create an API credential for your mail server in the dashboard (Server → Credentials) and put it in X-Server-API-Key.
How it behaves
- Every response uses one envelope:
{ status, time, data | error }. Branch onerror.code, not on prose. - Error codes are stable:
Unauthorized,Forbidden,NotFound,ValidationError,ParameterMissing, plus the auth-specific ones documented in the spec. - List endpoints paginate with
page/per_page(capped at 100). - The cloud runs the exact open-source code. Your exit path is
git clone+docker compose up.
Where to go next
- Quickstart: send your first mail in five minutes.
- Sending email: the send API, SMTP submission, attachments and headers.
- Message streams: keep transactional and marketing mail on separate reputations.
- Broadcast streams: one-click unsubscribe, opt-in subscribers and the CAN-SPAM footer.
- Campaigns: plan, schedule and measure a send to your subscribers.
- Self-hosting: run the whole platform on your own hardware.
- API reference: sending, querying, stats.
- Templates: the 20-template library and the render API.
