Your projects, organized.
Give each app its own project, with domains, API keys, and message history together.
We’re building a transactional email API for developers. Send password resets, receipts, and notifications, with templates and delivery tracking in one workspace.
The waitlist opens soon. For now, take a look around.
Choose a step in this sample welcome workflow.
Give each app its own project, with domains, API keys, and message history together.
Create email templates and choose when your app sends them.
See which messages are queued, accepted by the receiving server, or need attention.
Help people verify an account, recover access, or keep a receipt. Start with free HTML and plain-text templates you can adapt to your app.
An HTTP API for your backend, a durable queue for your messages, and delivery events you can follow back to your app.
202 Accepted means the message is queued. Delivery status comes later; acceptance by a receiving server doesn’t confirm inbox placement.
Send with POST /api/v1/emails from any server language, or use the server-side TypeScript SDK. Reuse an Idempotency-Key with the same payload to retry a request without creating another message.
Bearer API keys belong to a project and a Test or Live environment, with separate send and read permissions. Keep them on your server. Test sends are simulated and never reach real recipients.
PostgreSQL stores the message and queued event together. Workers check domain verification, sending limits, and suppressions before calling SES. An uncertain submission is flagged for review.
Look up a message by ID or receive signed webhooks with delivery updates. SES feedback flows through SNS and SQS; permanent bounces and complaints add recipients to suppression lists.
Preview HTML and plain-text email, validate workflow drafts, and simulate flows without sending. Published versions are immutable; existing runs keep their pinned workflow and template versions.
Stored message bodies use AES-256-GCM encryption. Verify domain ownership and configure SPF, DKIM, and DMARC. Rate limits, sending allowances, and recipient suppressions also apply.
These controls are implemented in the application architecture. Customer accounts, live sending, and hosted MCP access are still being prepared for launch.
The live service is in development. Try the local demo below today.
Download the local API fixture and run node email-mock-server.mjs with Node.js 22+. Then send the request below. The fixture keeps data in memory, needs no API key, and sends no email.
curl http://127.0.0.1:3027/api/v1/emails \
-H "Content-Type: application/json" \
-H "Idempotency-Key: receipt-42" \
-d '{"to":"reader@example.test","subject":"Your receipt","text":"A simulated receipt"}'It lets your backend request an email when something happens in your app, such as a signup, password reset, or payment. Your app sends the message details over HTTP and uses a message ID to follow its progress. How a transactional email API works →
Not yet. The live service and customer accounts are still in development, and we haven’t announced a launch date. You can use the free templates, guides, header analyzer, and simulated local API example now. Explore the free developer resources →
Yes—that’s part of the integration we’re building. MCP lets an assistant work with the tools and data you authorize. Stampwing’s connector includes template previews, workflow drafts, and run inspection, with separate permissions for reading, editing, and publishing. The hosted connection is coming soon. Explore the MCP integration preview →
Call the email API from your server, keep API keys out of browser code, and save the returned message ID. Our Next.js guide walks through this request flow with a local fixture that sends no real email. Try the Next.js email example →
Give each logical send an idempotency key and reuse it with the same payload when retrying. A timeout doesn’t prove that a request failed. Reconcile the original message before creating a new one. Learn about email retries and idempotency →
SPF identifies authorized sending servers, DKIM adds a verifiable signature, and DMARC checks alignment with the visible From domain and publishes a handling policy. They help authenticate email; they don’t guarantee an inbox placement. Understand sending-domain authentication →
No. Stampwing uses “accepted” for receiving-server acceptance. The recipient’s mail system may still filter or quarantine the message. Follow the delivery events and inspect the recipient-side evidence before sending again. Troubleshoot a missing transactional email →
Practical answers for the email behind your app.
Trace a missing message and find the next useful step.
Read the guideA repeatable checklist for domains, keys, and environments.
Get the checklistFour everyday templates, in HTML and plain text.
Browse templatesJoin the waitlist. We’ll let you know when you can get started.
Join the waitlist