Skip to content

Developers

Switch in an afternoon. Keep the code you have.

Waymail speaks the Resend API: point the resend package at it with two environment variables, or install waymail and change one import.

import { Waymail } from "waymail";

const waymail = new Waymail(process.env.WAYMAIL_API_KEY);

const { id } = await waymail.emails.send({
  from: "Acme <hello@acme.com>",
  to: "user@example.com",
  subject: "Verify your account",
  html: "<p>Thanks for signing up.</p>",
});
// → { id: "em_eu_01K4…", status: "queued" }
Idempotent sends
A retry after a lost response never delivers twice.
Errors that name the field
A 422 says which and why; a 429 says how long to wait.
Typed end to end
The schemas that validate the API ship with the SDK.

Agents over MCP

Every region runs an MCP server with the whole platform behind it.

Send, add a domain and see which DNS records are missing, manage contacts and suppressions, send a broadcast, read analytics — the same operations as the API, under the same scopes. A connection only sees the tools its key or role allows, and every change lands in the same audit log.

  • Claude.ai and ChatGPT connect by signing you in (OAuth 2.1)
  • Claude Code, Cursor and your own agents connect with an API key
  • Every tool answers in the API's own words, so an agent can read the reason and act on it
terminal
claude mcp add --transport http waymail https://eu.mcp.waymail.app/mcp \
  --header "Authorization: Bearer $WAYMAIL_API_KEY"

What the agent sees

→ workspace_status { }

{ "ready": false,

"blockers": [

"acme.com: DKIM record 2 of 3 not published yet",

"This connection cannot send: it lacks email:send"

],

"recommended": ["acme.com: add a DMARC record"] }

→ domain_manage { action: "verify", domain_id: "dom_eu_01K5…" }

{ "status": "verified", "health": { "dkim": "ok", "spf": "ok", "dmarc": "ok" } }

Every tool answers in the API's own words, so an agent can read the reason and act on it.

Email your agents can run, from the region you chose.

Waymail is in private alpha. Leave your email and we will write when your seat is ready — on the Free plan if you like.

No card, no newsletter — one email when your seat is ready.