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 and over the API, 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.
- TeamThe team a credential belongs to: its plan, sender identity, AI flag and members.
- BillingPlan, usage, invoices and add-ons, and the hosted pages where a customer pays.
- AI helpersSubject lines, a first draft, and why an email did what it did.
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.