Most email APIs tell you your message was queued. Truncus tells you whether the receiving server accepted it — in the same call.
curl https://truncus.co/api/v1/emails/send_sync ...
→ { "status": "delivered" }Built for software that can’t afford to guess.
“Delivered” means the receiving mail server accepted the message — not inbox placement. Nobody can honestly promise the inbox. We tell you what actually happened.
Idempotency-Key is mandatory on every send — architecture, not a best-practices footnote. Replay a call, get the original message id back as duplicate. Try it twice and watch.
send_sync returns terminal delivery status in the response body. No endpoint to host, no polling loop to write. Takes longer than 25 seconds? You get an explicit pending and an id to poll — never silence.
claude mcp add truncus -- npx -y @vanmoose/mcp-server — send, validate, events, stats, domains, suppression. Idempotency keys injected automatically.
OpenAPI 3.1. llms.txt, current. Stable machine codes on every error — DOMAIN_TYPE_MISMATCH, MONTHLY_LIMIT_EXCEEDED, granular provider_code on failures. Your agent branches on codes, not prose.
Public. No login. No auth. Never cached. Point your monitoring at /api/status before you even have an account.
→ Verify it yourself. Replay the duplicate key. Trigger the 403. Fetch the status JSON. Every claim on this page has a curl.
Truncus halts a domain at 2.0% bounce or 0.07% complaint — tighter than the thresholds that get SES accounts suspended. Nobody’s bad list burns the pool. Including yours.
Total provider failure on the async path lands in a durable queue — retried at 30s, 2m, 8m, 30m, 2h, then dead-lettered, replayable, watchable. A published schedule, not a promise.
Cold outreach aimed at a transactional domain gets a hard 403 — not a warning, not a silent reroute. Stream isolation is enforced at the API, so your password resets never inherit anyone’s campaign reputation.
Flagged domains are born held — their first send is blocked before any provider sees it. Fingerprinting, burst detection, auto-pause. Boring infrastructure, on purpose.
Primary on AWS SES (Ireland); async sends fail over to Scaleway TEM (France).
See if your domain is ready to send email — SPF, DMARC, and MX in seconds.
→ Verify it yourself. The breaker thresholds, the backoff schedule, the 403 — all documented, all reproducible.
Your email content is processed in the EU: SES eu-west-1, Scaleway fr-par, Supabase Frankfurt. dig our SPF and see both providers yourself.
What we won’t claim: residency is not sovereignty. US-incorporated providers sit in the path and are CLOUD-Act reachable — our pricing page says so in plain text. If a vendor claims otherwise while running on AWS, ask them to put it in their DPA.
The sub-processor table in ours is complete — including the parts vendors usually omit.
99.5% uptime SLA, in writing, with the honest disclaimer no SLA can offer: inbox placement isn’t guaranteed by anyone.
→ Verify it yourself. Run the dig. Read the DPA. It’s all public.
Built on EU-hosted infrastructure
Free: 3,000/mo, 1 domain · Pro $19: 50,000, 10 domains · Scale $99: 300,000, up to 999 domains.
Caps enforced in code — the pricing page and the API agree.
Free tier, no card. Your first delivered is one curl away.