Skip to content
Docs menuCurrent page: Overview

Docs

Connect a product in three steps.

Create a key, verify a domain, change one line.

Tested with resend@6.30.0

Last reviewed

On this page (4)

Three steps

  1. Step 1: Create a key

    In your project, open API keys and start with a sandbox key. It captures messages without delivering them, so you can wire up your code before your DNS is ready. Sandbox keys start with lp_test_, live keys with lp_live_, and each key is shown once.

    Environments and permissions

  2. Step 2: Verify a domain

    Add your domain, or a dedicated subdomain, under Domains and publish the records it shows: ownership, DKIM, SPF, return path and DMARC, plus MX if you turn receiving on. The domain page checks them on its own (or select Check now). Live sending starts once the sending records match.

    The records, explained

  3. Step 3: Set baseUrl

    Keep the Resend SDK you already use and point it at Letterpier. That is the one line that changes.

    lib/mail.ts
    import { Resend } from 'resend';const mail = new Resend(process.env.LETTERPIER_API_KEY, {  baseUrl: 'https://app.letterpier.com',});

    Continue with the quickstart

Where to next

Compatibility at a glance

Letterpier answers the Resend HTTP API for the endpoints it covers, tested with the unmodified resend@6.30.0 SDK. Operations it doesn’t cover return an explicit error.

Supported

  • Send one message or a batch with emails.send and batch.send
  • List, retrieve, reschedule and cancel sent messages
  • Retrieve received mail and its attachments
  • Create, list, get and verify domains
  • Create, list and revoke API keys
  • Create, list and delete webhooks; verify their signatures with webhooks.verify

Not supported

  • Templates, contacts, audiences, segments, topics and broadcasts
  • Automations and other marketing APIs
  • Open and click tracking
  • Updating or deleting domains; getting or updating webhooks
  • API keys scoped to one domain
  • Forwarding received mail

The full compatibility matrix

Limits

recipients per message
50
messages per batch
100
furthest scheduling ahead
30 days
idempotency window
24 hours
API requests per minute, per project and environment
100
webhook attempts over about 27½ hours
8
Limits and windows. Not performance claims.

Every limit and window