Rasket API
A JSON API for transactional email: one endpoint to send, a webhook to hear what happened, and a dashboard to look when you need to.
Base URL
https://api.rasket.com/emailsHTTPS only. Every path on this site is written relative to that origin, so POST /emails means https://api.rasket.com/emails.
Until that hostname is attached to the deployment, the identical routes answer on the deployment's own host with the /api/v1 prefix spelled out. That form works today:
https://<deployment-host>/api/v1/emailsSame code, same behaviour, same responses — only the origin differs, because api.<domain> is a rewrite onto this deployment rather than a separate service.
Start here
If you have not sent anything yet, the quickstart takes you from an empty account to a delivered email.
Guides
- OverviewWhat exists today, and what does not.
- QuickstartKey, domain, first send — in that order.
- AuthenticationBearer keys, the mandatory User-Agent, and what each refusal means.
- ErrorsThe whole vocabulary, with the status each name carries.
- IdempotencyRetry a send without sending it twice.
- PaginationCursors are item IDs, not page numbers.
- Rate limitsTen a second per team, and the headers that tell you where you are.
- EventsEvery event a webhook can carry, with one real payload each.
- TrackingOpens and clicks: one record, two toggles, and what an open really means.
- ReceivingInbound mail: a webhook fires, you read the message, you delete it.
- Node SDKThe rasket package: typed from the API's own document, retries only what is safe.
- Python SDKThe rasket package on PyPI: the Node client's methods, in snake_case, over httpx.
- MCP serverLet an assistant act on your account: ten tools, your scopes, no key.
- AI assistSubject lines, drafts and diagnosis — in the dashboard only, and off until you allow it.
- AgentsLet an AI agent set Rasket up: the skill, the rules file, MCP, and the recipe they share.
- OAuthLet another app act for a team: register, authorize with PKCE, exchange, refresh.
- Single sign-onOIDC login for your team, a domain proved by DNS, enforcement and break-glass.
- IntegrationsVercel, Netlify and Cloudflare: a key in the environment, or an OAuth app.
API reference
- EmailsSend, batch, retrieve, list, reschedule, cancel, attachments.
- DomainsAdd a domain, publish its records, verify it.
- API keysCreate, list, rename and revoke credentials.
- WebhooksPayloads, signature verification, retries and replay.
- SuppressionsAddresses we will not send to, and why.
- LogsEvery request made with this team's credentials.
- MetricsDelivery, bounce, complaint and engagement counts.
- TemplatesVersioned email content with typed variables, addressed by ID or alias.
- ContactsYour audience: contacts, their typed properties, segments and topic choices.
- SegmentsAudiences defined by a filter, by hand, or both.
- TopicsWhat contacts subscribe to, and the preference page's list.
- BroadcastsOne message to a segment: the draft, the gate, the send and the report.
- ImportsCSV uploads: column mapping, conflicts and counts.
- AutomationsWorkflows that run per contact: the graph, its versions, and every run.
- Custom eventsThe names your product fires, and what starts a workflow.
- ReceivingMail sent to you: the message, its attachments, its raw source.
- OAuthClient registration, the token endpoint, and the grants a team has given.
What this release does not do
An SMTP gateway is not part of this release and will come later, on its own host, calling this same API — there is nothing to configure for it today.
Reading inbound mail over the API is not here either. A few /emails/receiving routes exist for it and answer 501 not_implemented, which means "ours, not built yet" rather than "wrong id". They are not documented until they do something.