scribase
Scribase Mail

A Resend alternative your resend SDK already works with

Scribase Mail serves the Resend REST API: emails, batch sends, domains, contacts, broadcasts, templates, inbound mail and Svix-signed webhooks. Keep the resend package, change the base URL and the key, and keep the option to run the whole thing yourself.

Last checked October 8, 2026.

Switch with two lines

The resend package reads its base URL from the RESEND_BASE_URL environment variable or a baseUrl option. Point it at Scribase Mail and use a Scribase Mail API key; the rest of your code stays.

ts
import { Resend } from 'resend'

const resend = new Resend(process.env.SCRIBASE_MAIL_KEY, {
  baseUrl: 'https://mail-api.scribase.com',
})

const { data, error } = await resend.emails.send({
  from: 'Acme <hello@mail.acme.com>',
  to: ['you@example.com'],
  subject: 'Your receipt',
  html: '<p>Thanks for your order.</p>',
})
Or with curlsh
curl -X POST https://mail-api.scribase.com/emails \
  -H "Authorization: Bearer $SCRIBASE_MAIL_KEY" \
  -H "Content-Type: application/json" \
  -d '{"from":"Acme <hello@mail.acme.com>","to":["you@example.com"],"subject":"Hi","html":"<p>Hi</p>"}'

What the API covers

Resend API routes served by mail-api.scribase.com
ResourceRoutes
EmailsPOST /emails, POST /emails/batch, GET /emails, GET /emails/:id, POST /emails/:id/cancel, attachments
InboundGET /emails/received, GET /emails/received/:id, attachments
DomainsPOST /domains, GET /domains, GET /domains/:id, POST /domains/:id/verify
API keysPOST /api-keys, GET /api-keys
Contacts and audiences/contacts, /audiences, /segments, /topics, /contact-properties
Broadcasts and templates/broadcasts (create, send, cancel, duplicate), /templates
WebhooksSvix-signed events (email.sent, email.delivered, email.received and more), verified with the svix library
Deliverability/suppressions, /logs, /emails/metrics

Pricing

Three plans, billed monthly. Abuse controls (warm-up caps for new senders, reputation auto-pause, content screening) apply on every plan.

Scribase Mail plans (USD a month)
PlanPriceEmails a monthDaily capDomainsOver the quota
Free$03,0001001Sending stops
Pro$2050,000None10$0.90 per 1,000
Scale$90100,000None1,000$0.90 per 1,000

What is different from Resend

  • The source is public under the AGPL-3.0 licence, so you can read how a send is processed and run your own copy.
  • Inbound mail is part of the same API: received emails, attachments and an email.received webhook.
  • Scribase Mail is a fork of useSend, an open-source email platform, with its own sending provider layer and a Resend compatibility layer added.
  • New accounts join a waitlist and are let in in batches, so a new sender cannot hurt everyone's reputation.
  • It is younger. Resend has SDKs in more languages, a longer track record and more integrations.
FAQ

Questions people ask

Do I need to change my email templates?

No. The same send payload is accepted: from, to, cc, bcc, reply_to, subject, html, text, attachments, tags, headers, scheduled_at and template with variables.

Do webhooks verify with the same code?

Yes. Events are signed with Svix headers, and the svix library (which the resend SDK uses for verification) accepts them. A tampered body is rejected.

Can I use my own domain?

Yes. Add it in the dashboard or with POST /domains, publish the DKIM and SPF records it shows, then verify.

Is Scribase Mail affiliated with Resend?

No. It implements the same public API so existing code works. Resend is a trademark of its owner.