You send the mail. We keep the record.

Every plan connects the mail server you already have — yours, or SES, Mailgun, Postmark. We never send as if the mail were ours. You keep the reputation. We keep the searchable log.

spoolway.com/panel/messageslive
Deliveredwebhook[email protected]Payment failed — card expiring12s
Handed to your server[email protected]Reset your Basalt password40s
Deferred5/8[email protected]Credit note #1144m
Bounced[email protected]Verify your email address9m
Suppressed[email protected]Your weekly digest11m
— complaints · feed quiet since 06:12Z · counts complete only to that moment
Transports: any SMTP server (Amazon SES over SMTP included), plus Mailgun and Postmark. Webhook evidence like Delivered appears only when the provider reports it. Plain SMTP reports to the handoff, and never shows a delivery it can’t prove.SMTP · nowMailgun · nowPostmark · now

“How long until this works?”

Under five minutes, honestly. No migration, no DNS change, no new sending domain — your mail server already works. Spoolway sits in front of it.

01Add your mail server — one test checks the host, the password and the encrypted connection.02Import or write a template — git-versioned, shared across your apps.03POST one message — that’s the whole integration. →
terminal — your first send
curl -X POST https://spoolway.com/api/v1/messages \
  -H "Authorization: Bearer spw_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pwreset-usr_8812-20260802T1402" \
  -d '{
        "template":    "auth/password-reset",
        "application": "auth-prod",
        "to":          { "email": "[email protected]", "name": "Casey Reid" },
        "variables":   {
          "reset_url":       "https://basalt.app/reset/tk_9f2a81",
          "expires_minutes": 30
        }
      }'
← 202 Accepted · queued, not yet sent
{
  "id": "2ee35675-6bae-42be-aa5e-6d4618d0c61d",
  "status": "queued",
  "application_id": 1,
  "over_monthly_quota": false,
  "attachments_captured": 0
}
USD · plus applicable taxes tax details
Free
Side projects, and proving it works before you pay us.
$0
forever · no card required
Start free — no card requiredno checkout · nothing to pay
3 Applications10k messages/mo · 1k/day7-day body retention2 seats · viewers freeDPA included
Compare all plans ↓
Pro
A team with one product in production.
$24.17
per month, billed annually — $290/yr
save $58/yr
Start on Profree account first · checkout from Billing
10 Applications250k messages/mo · 25k/day90-day body retention5 seats · viewers freeAttachment capture
Compare all plans ↓
MOST TEAMS
Scale
Several products, real volume, a compliance story to tell.
$65.83
per month, billed annually — $790/yr
save $158/yr
Start on Scalefree account first · checkout from Billing
50 Applications1M messages/mo · 100k/day365-day body retention15 seats · viewers freeAttachment capture
Compare all plans ↓
Team
Many products, many people, auditors asking questions.
$124.17
per month, billed annually — $1490/yr
save $298/yr
Start on Teamfree account first · checkout from Billing
Unlimited apps & seatsUnlimited messages · no daily cap365-day body retentionAudit log exportPer-app access scoping
Compare all plans ↓
Enterpriseannual invoice · custom terms
Custom caps & retention · custom DPA & SLA · procurement and security review · migration help. Bring your security team; we’ll answer to them.Talk to us

“Isn’t this more expensive than Postmark?”

Fair question — you pay us and your mail provider. That is not paying twice for the same thing. A bundled sender’s price includes delivery, which you are buying anyway. We charge for the layer they do not sell: one template set across every product, a tag on every email for which product sent it, and a log that does not belong to your sender.

Run the numbers at real volume and the gap mostly closes. What does not close is the exit: switch providers and you keep every template, every record, every integration. With a bundled sender, the log and the reputation live inside the vendor — leaving means starting the record over.

sending prices are the providers' own meters — check them, we did
SPOOLWAY + YOUR TRANSPORT · 250K MESSAGES/MO · BILLED MONTHLY
SES sending — 250k × $0.10/1k~$25
Spoolway Pro, billed monthly — the record layer$29
≈ $54/mo — and the transport is yours~$54
Switch ESPs any time — templates, records and integrations come with you. The archive survives the divorce.
BUNDLED ESP · SAME VOLUME
Delivery + templates + archive, one vendor$60–140
One bill, and often excellent delivery tooling. But the templates, the record and the reputation live inside the vendor — the price of leaving is the archive.

The honest parts are on every plan.

Not tiers — the terms of being trusted with your customers’ mail. Four of them, and each one is enforced by the product, not promised by a page.INCLUDED ON EVERY PLANFREE THROUGH ENTERPRISE · NO EXCEPTIONS
01Your transport, alwaysThere is no plan where we send for you. Your server, your reputation — we hold the queue and the record.ENFORCEDthe table has no "we send for you" row to sell — check it
02DPA — included freeA processor’s obligation under GDPR Art. 28. Charging extra would be selling you something we already owe.Data at rest in Canada means EU customers need no SCCs for it: the EU adequacy decision for Canada covers the transfer, as DPA §8 sets out.ENFORCEDpublished and free on every plan · applies through the Terms · countersigned copy by email — DPA §14
03Retention you set — even 0Set it for the whole account, then override it per template — down to storing nothing at all, which is what we recommend for password resets and one-time codes.ENFORCEDat 0 the record still answers — "body never stored · by design", never a 404
04Viewers never cost a seatRead-only access to the log and archive is free and unlimited everywhere — support can look things up without a licence question.ENFORCEDviewer seats: $0 × unlimited, on every card above — inviting one never asks for money
Shortening retention never deletes what you already have: it applies forward only. Bodies already stored keep the expiry they were given when they were written, and the change is recorded in your audit log. Cancelling works the same way — never a silent wipe.Details ↓

Everything, per plan

the dense part — for the person already decidingpans sideways →
PLAN →Free$0Pro$24.17/moScale$65.83/mo · most teamsTeam$124.17/moEnterprisetalk to us
USAGE
Applications31050UnlimitedCustom
Messages per month10k250k1MUnlimitedCustom
Daily send cap1k25k100kNo capCustom
Seats · read-only viewers free on all plans2515UnlimitedCustom
ARCHIVE
Body retention · max, configurable down to 07-day90-day365-day365-dayCustom
Envelope, headers & delivery record · kept on every plan — metadata outlives the body
Attachment capture
Data residencyCanadaCanadaCanadaCanadaCanada
Audit log export
TRANSPORT
Bring your own SMTP server
Provider adapters — Mailgun, Postmark · included on every plan
Webhook evidence — Delivered, complaints · Mailgun and Postmark only — plain SMTP, SES included, stops at the handoff
ACCESS & COMPLIANCE
DPA · GDPR Art. 28 — an obligation, not a perkCustom
Per-app access scoping
SSO (SAML) · not at launch — planned; we don't sell it until it ships
SLA✓ custom

The awkward questions, answered on the page

BILLING
One email you ask us to take = one message, counted when we accept it. If we retry or delay that same email, it is not counted again. A blocked address still counts (we did the work and wrote it down). A refused request does not.
YOUR DATA
The downgrade always proceeds. Caps clamp immediately so the next send, Application or invite is measured against the new plan. Rows already over the line stay — they remain usable and editable, and creating another is refused until you are under the new cap or you upgrade. Retention applies forward only: bodies already stored keep the expiry they were given when they were written. Cancelling returns you to Free the same way. Nothing is deleted because of a price change.

Your transport. Your record.
Running in five minutes.

connect your mail server → name the product → send a test
Start free — no card requiredFree forever tier · caps pause, never auto-upgrade