Transactional emails
The email API priced so every project can afford it: $15 a month sends 50,000 emails, and the free tier covers 3,000 a month. Sign up and a real email is delivered within 60 seconds, before you touch DNS.
# npm install pennypost import { PennyPost } from "pennypost"; const pp = new PennyPost("pp_live_<secret>"); await pp.emails.send({ from: "Receipts <receipts@yourdomain.com>", to: ["customer@example.com"], subject: "Your order shipped", text: "Tracking inside.", });
SDKs
npm install pennypostgo get github.com/pennypost-io/pennypost-gono install neededpip install pennypostcomposer require pennypost/pennypostcargo add pennypostMarketing emails
Newsletters, campaigns, and product announcements from the same API and the same logs. Send as often as you like, start free to 1,000 contacts, and unsubscribed contacts never appear on your bill.
Get startedMCP · Model Context Protocol
Point your MCP client at PennyPost and it can send email, check delivery, manage domains, and run broadcasts, all through your own account and API key. The tools map one to one to the REST API, so there is nothing new to learn. Test keys behave the same way, so an agent can build and verify before a domain goes live.
# Claude Code, Cursor, or any MCP client claude mcp add --transport http pennypost \ https://api.pennypost.io/mcp \ --header "Authorization: Bearer pp_live_..."
Hosted, nothing to install. Prefer to run it locally, or using a client without remote MCP? Bridge to the same endpoint with npx pennypost-mcp.
Free to start. Everything you read above is live right now.
Start sendingSee full pricing · questions to hello@pennypost.io, a human answers