Send email from any stack. Then make sure it lands.
One key, one POST, and a message that is durably recorded before the response comes back. Start with the stack you write in, then read on: deliverability, webhooks, campaigns and agents, each in a guide of its own.
Send from your stack. A complete sample, the six steps to a delivered message, and how that runtime hands you a webhook's raw body.
12 guides
Node.js
JavaScript · TypeScript
Send email from Node.js with the fetch it already has: one POST with four headers, an id back, and every delivery event on a webhook.
Next.js
React · TypeScript
Send email from Next.js in a route handler or a server action: one fetch, the key read on the server, an id back for every message.
Python
Python
Send email from Python over HTTPS with httpx: post one message, read the id back and follow every delivery event on a signed webhook.
Django
Python
Send email from Django without an SMTP backend: one HTTPS call in a view or a task, an id back, and delivery reported on a webhook.
FastAPI
Python
Send email from FastAPI with one httpx client: build it once at startup, await it from a route, and get an id back for every message.
Ruby on Rails
Ruby
Send email from Ruby on Rails over HTTPS instead of SMTP: one Net::HTTP call from a service object, an id back, delivery on a webhook.
Laravel
PHP
Send email from Laravel with the Http facade instead of an SMTP mailer: one POST, an id back, and every delivery event on a webhook.
Go
Go
Send email from Go with net/http and encoding/json: one POST to the API, an id back, and delivery events on a signed webhook.
Bun
TypeScript
Send email from Bun with the fetch it already ships: one POST, four headers, an id back, and delivery reported on a signed webhook.
Deno
TypeScript
Send email from Deno with built-in fetch and Deno.env: one POST, no dependency, an id back and every delivery event on a webhook.
Cloudflare Workers
TypeScript · edge
Send email from Cloudflare Workers with one fetch: the key comes off env, not process.env, and every message returns an id you can follow.
Supabase Edge Functions
TypeScript · edge
Send email from Supabase Edge Functions with one fetch: set the key as a secret, read it with Deno.env, and take an id back per message.
Getting started. From an empty account to a delivered email, and the rules every request follows.
6 guides
Docs
Quickstart
From an empty account to a delivered email in six steps: create a key, add and verify a domain, send, then read the message back.
Docs
Authentication
Authenticate with a bearer API key and the required User-Agent header, and read what each refusal means before you retry it.
Docs
Idempotency
Retry a send without sending it twice: how an idempotency key is scoped, how long it is remembered, and what a replay answers.
Docs
Errors
Every error the Rasket API returns, the HTTP status each name carries, and what to do about it before you try the call again.
Docs
Node SDK
The rasket package for Node.js: typed from the API's own OpenAPI document, and retrying only the calls where a retry is safe.
Docs
Python SDK
The rasket package on PyPI: the Node client's methods in snake_case, over httpx, typed and under the same retry rules.
Sending, done properly. Retries that never send twice, limits you can plan around, and mail that goes out when you choose.
6 guides
Guide
Idempotent email sends: never send twice
A timeout does not tell you whether the send happened. What an idempotency key is, how the 24-hour window behaves, how to choose keys, and what a batch does.
Guide
Email API rate limits: headers and backoff
Email API rate limits at Rasket: 10 requests a second per team, the four headers, a 429 retried with the same key, and the quotas that are not rate limits.
Guide
Schedule email API: send at a time you choose
Schedule an email over the API: an ISO 8601 scheduled_at up to 30 days out, a PATCH to move it, a cancel, and the time-zone mistakes to avoid.
Guide
Email template variables done right
How email template variables should work: declared with a type and a fallback, checked at send, versioned so each email records what it said, and HTML-escaped.
Guide
Email API vs SMTP: which should you use?
SMTP is a conversation; an email API is one request. What each gives you on retries, idempotency, events and firewalls, and how to move from one to the other.
Guide
Transactional vs marketing email: how to send each
What separates transactional email from marketing email — the trigger, consent, unsubscribe headers and reputation — and how to send both from one API.
Deliverability. The records, the reputation and the list hygiene that decide whether a message reaches the inbox.
8 guides
Guide
Email deliverability guide for developers
Delivered is not the same as inboxed. Authentication, domain reputation, list hygiene, the headers bulk senders need, and the numbers worth watching every week.
Guide
DKIM, SPF and DMARC explained for developers
What SPF, DKIM and DMARC each prove, the records to publish, how alignment ties them together, and what the large mailbox providers now require of senders.
Guide
Email domain verification, step by step
What verifying a sending domain proves, which DNS records to publish, the name-suffix trap that catches everyone, and what to do when a record will not verify.
Guide
DMARC policy: none vs quarantine vs reject
What p=none, p=quarantine and p=reject each ask a receiver to do, how pct, sp and rua shape the policy, how to read reports, and the safe order to move up.
Guide
Custom return path: why your bounces need it
What the return path is, how it differs from the From header, why putting it on your own subdomain makes SPF align under DMARC, and the two records that do it.
Guide
Hard bounce vs soft bounce: what to do with each
A hard bounce is permanent, a soft bounce is temporary. What causes each, what the reply code tells you, when to retry, and when to suppress an address.
Guide
Email suppression list: what it is, how to use it
What an email suppression list holds, how bounces and complaints add to it, why a suppressed send still answers 200, and how to import a list from elsewhere.
Docs
Domains in the docs
Add a sending domain, publish its DNS records at any registrar with that registrar's own instructions, and watch them verify without pressing anything.
Webhooks and receiving. Follow every message after it leaves, and read the mail that comes back.
6 guides
Guide
Email webhooks explained: events and signatures
What an email webhook is, the delivery events and what fires each, the payload shape, verifying the signature, and handling retries and out-of-order events.
Guide
Receive email with a webhook: inbound parsing
Point a domain's MX record at Rasket and incoming mail arrives as a signed JSON event: publishing the record, reading the payload, attachments and routing.
Docs
Events
Every event a Rasket webhook can carry — delivered, bounced, complained, opened, clicked and the rest — with one real payload each.
Reference
Webhooks API reference
Register endpoints, read the payload of every event, verify a signature, and replay a delivery that failed.
Docs
Receiving
Receive mail at your own domain: a signed webhook fires, you read the message and its attachments, and you answer it.
Docs
Tracking
Open and click tracking: one record per email, two toggles, and an honest account of what an open actually tells you.
Marketing email. Consent first, then campaigns to the people who asked for them.
6 guides
Guide
Newsletter API: send campaigns from your code
Send a newsletter over an API in six calls: create a topic, add contacts with consent, build a segment, create the campaign, pass the gate and read the report.
Guide
Double opt in email: how it works and why
How a double opt in email flow works: sign a confirmation link, verify the click, record the consent on the contact, and never mail anyone who did not confirm.
Feature
Contacts, topics and campaigns
An audience you own: contacts with typed properties, segments, topics people subscribe to, and campaigns sent through the same pipeline as your other mail.
Reference
Campaigns API reference
Create a campaign draft for a segment, pass the gate, send it, and read the results back per recipient.
Reference
Contacts API reference
Your audience as data: contacts, their typed properties, the segments they fall into and the topics they chose.
Reference
Topics API reference
The subjects a contact can subscribe to, how a choice is recorded, and what the hosted preference page lists.
For AI agents. Let an assistant set Rasket up and send on your behalf, bounded by your own scopes.
4 guides
Guide
Let an AI agent send email with MCP
Connect an assistant to an email API over MCP: what the server exposes, the scopes it asks for, the first call it makes, and the guardrails that keep it safe.
Feature
The email API built for AI agents
An MCP server, a setup skill, Markdown at every docs URL and an OpenAPI document, so an assistant can set Rasket up and send for you with no key in the prompt.
Docs
Agents
Let an AI agent set Rasket up for you: the setup skill, the rules file, the MCP server, and the recipe all three share.
Docs
MCP server
Let an assistant act on your Rasket account over MCP: ten tools, bounded by your own scopes, with no API key in the prompt.
Reference. The words, the whole API, and how the options compare.
4 guides
Glossary
Email glossary
Plain definitions of the words that turn up in email infrastructure: DKIM, SPF, DMARC, bounces, complaints, suppressions, idempotency, webhooks and more.
Docs
The documentation
The Rasket API documentation: quickstart, authentication, idempotency, events, webhooks, receiving, the SDKs, the MCP server and the SMTP relay.
Reference
Emails API reference
Send, batch, retrieve, list, reschedule and cancel email, and attach files, with a request and a response for every call.
Guide
Best transactional email API: seven compared
Seven transactional email APIs compared on inbound, campaigns, webhooks, idempotency and price, with every competitor cell linked to the vendor's own page.
Start sending this morning
Create a key, verify a domain, and post one message from whatever you already write in.