Migrating from Mailsac

Endpoint-by-endpoint map. The Authorization header is the only auth change you need.

What's different

  • One bearer token per request — no Mailsac-Key header.
  • Native long-poll via /wait — no client-side polling loops.
  • OTPs and magic links extracted server-side.
  • Signed, retried webhooks instead of fire-and-forget.

Endpoint map

OperationMailsacephemail
List addressesGET /api/addressesGET /v1/addresses
Create addressPOST /api/addresses/{addr}POST /v1/addresses
Delete addressDELETE /api/addresses/{addr}DELETE /v1/addresses/{addr}
List messagesGET /api/addresses/{addr}/messagesGET /v1/addresses/{addr}/messages
Get messageGET /api/text/{addr}/{id}GET /v1/messages/{id}
Get raw messageGET /api/raw/{addr}/{id}GET /v1/messages/{id}/raw
Wait for message(polling)GET /v1/addresses/{addr}/wait
Send messagePOST /api/outgoing-messagesPOST /v1/send
Validate addressPOST /api/validations/addressesPOST /v1/validate
WebhooksStateless POST per-inboxPersistent /v1/webhooks with signing + retries