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.

GuidesTracking

Open and click tracking

Both are off by default, both are per domain, and both need one extra DNS record. Turn them on when you want the numbers, and read what an open actually means before you do.

The record

Tracking links are served from a hostname of your own — links.send.acme.example for a domain sending as send.acme.example — so a reader sees your domain rather than ours. That takes one CNAME, published at the links label on your sending domain and pointing at links1.rasket-dns.com. It comes back in the domain's records array as the Tracking row, alongside the DKIM and return-path records.

  • The record is optional. Tracking works without it: until your hostname is ready, links and the pixel use our tracking address instead, and switch to yours once it verifies.
  • It is verified when the CNAME resolves and a certificate has been issued for the hostname, which is why it can sit at pending for a few minutes after the DNS is right.
  • If your provider proxies records — Cloudflare's orange cloud — leave this one unproxied. A proxy terminates TLS with its own certificate and the hostname stops working.

No CAA record is needed, from you or from us. A name holding a CNAME may hold nothing else, and certificate authorities follow the alias rather than climbing to your apex — so your domain's CAA policy never governs this hostname.

Turning it on

Set either flag on POST /domains or PATCH /domains/{domain_id}. They take effect on the next email you send. Until the Tracking record is verified, links use our tracking address; after that, your own hostname.

The tracking settings on a domain
FieldDoes
open_trackingInserts a 1×1 image before the closing body tag. Loading it records an open.
click_trackingRewrites every `http` and `https` link in the HTML body to a link on your tracking hostname, which redirects.
tracking_subdomainThe label the tracking hostname uses. Defaults to `links`. Changing it publishes a new record and re-verifies.

Rewriting happens when the message is assembled, and it is the one place a send changes your HTML. The plain-text part is never touched, and neither is a mailto: link, a tel: link, a fragment-only link, or any anchor carrying data-rasket-no-track.

What an open really is

Open tracking works by loading a tiny image. Some mail clients and image proxies load images on the reader's behalf, so opens can be recorded when no one has read the email, or missed when images are blocked. Treat open rates as a trend, not a count.

We record the user agent exactly as it arrives, proxy and all — a Google image proxy shows as … (via ggpht.com GoogleImageProxy) in the open.userAgent field of the email.opened event. It is never rewritten, hidden, or filtered out, so you can decide for yourself which opens to count.

  • An open is recorded at most once per email per minute, and at most 100 times.
  • Clicks are capped at 500 per email.
  • Past either cap the pixel and the redirect still work — the reader notices nothing; only the recording stops.
  • Neither event identifies which recipient acted when a message had several. There is no recipient field on an open or a click.

Where a click goes

A click redirects only to the URL stored for that link when the message was assembled. There is no url parameter on the tracking link and nothing in the request can change the destination, so a tracked link cannot be turned into an open redirect against your domain. A link whose token we do not recognise is a 404 with no body.