Skip to content
Esc
  • OverviewGuidesWhat exists today, and where to start.
  • QuickstartGuidesKey, domain, first send — in that order.
  • AuthenticationGuidesBearer keys, the mandatory User-Agent, and what each refusal means.
  • ErrorsGuidesThe whole vocabulary, with the status each name carries.
  • IdempotencyGuidesRetry a send without sending it twice.
  • PaginationGuidesCursors are item IDs, not page numbers.
  • Rate limitsGuidesTen a second per team, and the headers that tell you where you are.
  • EventsGuidesEvery event a webhook can carry, with one real payload each.
  • DomainsGuidesThe records, where they go at each registrar, and what the page does while you wait.
  • TrackingGuidesOpens and clicks: one record, two toggles, and what an open really means.
  • ReceivingGuidesInbound mail, and the Inbox: a webhook fires, you read it, you answer it.
  • InboxGuidesChannels, personal mailboxes and seats: who sees what, and where a reply goes.
  • Node SDKGuidesThe rasket package: typed from the API's own document, retries only what is safe.
  • Python SDKGuidesThe rasket package on PyPI: the Node client's methods, in snake_case, over httpx.
  • MCP serverGuidesConnect Claude, ChatGPT or any MCP client: your scopes, no key.
  • AI assistGuidesSubject lines, drafts and diagnosis — in the dashboard and over the API, off until you allow it.
  • AgentsGuidesLet an AI agent set Rasket up: the skill, the rules file, MCP, and the recipe they share.
  • OAuthGuidesLet another app act for a team: register, authorize with PKCE, exchange, refresh.
  • Single sign-onGuidesOIDC login for your team, a domain proved by DNS, enforcement and break-glass.
  • IntegrationsGuidesVercel, Netlify and Cloudflare, plus Zapier and n8n for workflows without code.
  • SMTPGuidesSend from anything that speaks SMTP: settings, setup guides, limits and replies.
  • ZapierGuidesSend email, add contacts and react to email events from a Zap, with no code.
  • n8nGuidesThe Rasket node and trigger for n8n workflows: install, connect, every operation.
  • VercelGuidesAdd Rasket on Vercel: a Sending key in each project as RASKET_API_KEY, no copying.
  • EmailsAPI referenceSend, batch, retrieve, list, reschedule, cancel, attachments.
  • DomainsAPI referenceAdd a domain, publish its records, verify it.
  • API keysAPI referenceCreate, list, rename and revoke credentials.
  • WebhooksAPI referencePayloads, signature verification, retries and replay.
  • SuppressionsAPI referenceAddresses we will not send to, and why.
  • LogsAPI referenceEvery request made with this team's credentials.
  • MetricsAPI referenceDelivery, bounce, complaint and engagement counts.
  • TemplatesAPI referenceVersioned email content with typed variables, addressed by ID or alias.
  • ContactsAPI referenceYour audience: contacts, their typed properties, segments and topic choices.
  • SegmentsAPI referenceAudiences defined by a filter, by hand, or both.
  • TopicsAPI referenceWhat contacts subscribe to, and the preference page's list.
  • CampaignsAPI referenceCampaigns, at /broadcasts: one message to a segment, from draft to results.
  • ImportsAPI referenceCSV uploads: column mapping, conflicts and counts.
  • AutomationsAPI referenceWorkflows that run per contact: the graph, its versions, and every run.
  • Custom eventsAPI referenceThe names your product fires, and what starts a workflow.
  • ReceivingAPI referenceMail sent to you: the message, its attachments, its raw source.
  • OAuthAPI referenceClient registration, the token endpoint, and the grants a team has given.
  • TeamAPI referenceThe team a credential belongs to: its plan, sender identity, AI flag and members.
  • BillingAPI referencePlan, usage, invoices and add-ons, and the hosted pages where a customer pays.
  • AI helpersAPI referenceSubject lines, a first draft, and why an email did what it did.

GuidesAgents

Agents

Hand Rasket to an AI agent and it can set up your account the way a person would: a key, a domain and its DNS, a first send, and on to campaigns and automations. There is one recipe of twelve steps, written once — this page, the skill, the rules file and the MCP server all read the same one.

Install it in your agent

Claude Code

The skill is a folder: SKILL.md with the recipe and its rules, three small Node scripts and the fetch client they share, and three references. Put it in the project and ask the agent to set Rasket up.

mkdir -p .claude/skills
cp -r rasket-setup .claude/skills/

Download SKILL.md; its scripts/ and references/ sit beside it under /skills/rasket-setup/.

Cursor

Save the rules file as .cursor/rules/rasket.mdc. It carries the same recipe as REST calls, with the rules for calling the API directly: the SDK is not published yet, so the file tells the agent to use fetch rather than install it.

Windsurf

The same file, saved as .windsurf/rules/rasket.mdc.

Or connect over MCP

An MCP client needs no key: it signs in with OAuth and holds only the scopes you approve. The toolset parameter below narrows the server to the tools setting up and sending need; leave it out for the full tool catalogue.

claude mcp add --transport http rasket "https://api.rasket.com/mcp?toolset=setup,send"
{
  "mcpServers": {
    "rasket": {
      "url": "https://api.rasket.com/mcp?toolset=setup,send"
    }
  }
}

Every script, sample and file here reads the key from RASKET_API_KEY. Export it in the agent's shell; never paste a key into a chat or a file.

The MCP server page covers the boundary, the budgets and every tool.

The recipe

Twelve steps, in order. Each names its call on every surface and what it needs: a scope for an MCP client, otherwise a key permission. What “done” looks like and the failure each step most often meets are in the skill.

The setup recipe
#StepRESTNode SDK (soon)MCP toolNeeds
1Create an API keyPOST /api-keysapiKeys.create—a full_access key
2Add a domainPOST /domainsdomains.createcreate_domaindomains:write
3Publish its DNS recordsGET /domains/{domain_id}domains.getget_domain_recordsdomains:read
4Verify the domainPOST /domains/{domain_id}/verifydomains.verifyverify_domaindomains:write
5Set the sender identityPATCH /teamteam.updateupdate_teamteam:write
6Send an emailPOST /emailsemails.sendsend_emailemails:send
7Add a webhook and check its signaturePOST /webhookswebhooks.createcreate_webhookwebhooks:write
8Create and publish a templatePOST /templates/{id}/publishtemplates.publishpublish_templatetemplates:write
9Add a contactPOST /contactscontacts.createcreate_contactcontacts:write
10Create a segmentPOST /segmentssegments.createcreate_segmentsegments:write
11Send a broadcastPOST /broadcasts/{id}/sendbroadcasts.sendsend_broadcastbroadcasts:write
12Create an automationPOST /automationsautomations.createcreate_automationautomations:write

The Python client names every method the same way in snake_case — api_keys.create for apiKeys.create. A step marked “not yet” names something still on its way; an agent skips it and says so.

Where an agent reads the docs

Machine-readable addresses on this site
AddressWhat it is
/openapi.jsonThe whole API as an OpenAPI document.
/llms.txtAn index of every docs page, written for a model to read.
/llms-full.txtEvery docs page, one after another, in one file.
/docs/<page>.mdAny docs page as Markdown — or request the page itself with Accept: text/markdown.
/skills/rasket-setup/The skill and the rules file on this page, as files.
/.well-known/mcp.jsonWhere the MCP server is, the transport it speaks and how it signs in.
/.well-known/agent-skills/index.jsonThe Agent Skills this site publishes.

All of these are served by this site, not the API origin. The API serves the same OpenAPI document at /openapi.json on its own host too.

The SDKs

Coming soon: the rasket package is not published yet.

Until the Node and Python clients are published, an agent uses the REST column above, the skill's scripts or MCP. The Node SDK page describes the client that is on its way.