Quickstart
Point an official Resend SDK at your sesameSend deployment and make a call.
You need a running deployment (see Local development or self-hosting) and an API key. Keys start with os_. scripts/bootstrap.mjs writes your first one to .env as OPENSEND_API_KEY.
The snippets below were run against a local deployment. Node resend 6.38.0, Python resend 2.53.2 and Go resend-go/v3 3.17.0 each listed domains, created a contact and deleted it, and got a 400 validation_error back for a bad key. Nothing was sent.
npm i resend
export RESEND_BASE_URL=https://mail.example.com # your deployment, no trailing slash neededimport { Resend } from "resend";
const resend = new Resend(process.env.OPENSEND_API_KEY); // an os_ key, not a Resend key
const { data, error } = await resend.emails.send({
from: "Acme <hello@yourdomain.com>",
to: ["delivered@resend.dev"],
subject: "Hello from sesameSend",
html: "<p>It works.</p>",
});The Node SDK reads RESEND_BASE_URL when it loads.
About the recipient
delivered@resend.dev, bounced@resend.dev, complained@resend.dev and suppressed@resend.dev are simulator addresses. sesameSend answers them locally and they never reach SES, so they are safe for tests. See Local development.
Before real mail works
- Add and verify a sending domain, or verify a single address while SES is in its sandbox. See Domains and DKIM.
- In the SES sandbox you can only send to verified addresses. See SES production access.
Other SDKs
PHP, Ruby, Java, .NET, Rust and other Resend SDKs were not tested here. If one lets you set the base URL, it should work. If it does not, call the HTTP API directly.