Email SDK
Adapters

Unosend

Send through the Unosend REST API — a single Bearer-authenticated endpoint with CC, BCC, tags, and attachments.

The Unosend adapter calls the Unosend REST API over fetch — no extra dependency. It is one of the simplest providers to wire up: one Bearer-authenticated /emails endpoint, one API key, no other configuration.

Unosend logo
Unosend
@opencoredev/email-sdk/unosend
OfficialNot API testedRequest tested
Open website

Configure

Create a server-side API key in your Unosend account and verify the domain you send from.

lib/email.ts
import { createEmailClient } from "@opencoredev/email-sdk";
import { unosend } from "@opencoredev/email-sdk/unosend";

export const email = createEmailClient({
  adapters: [unosend({ apiKey: process.env.UNOSEND_API_KEY! })],
});

Prop

Type

Send

Unosend maps cc, bcc, headers, tags, attachments, and a single replyTo address.

const result = await email.send({
  from: "Acme <hello@acme.com>",
  to: [{ email: "user@example.com", name: "Ada" }],
  replyTo: "support@example.com",
  subject: "You're invited to the Acme workspace",
  html: "<p>Grace invited you to join the Acme workspace.</p>",
  tags: [{ name: "type", value: "invite" }],
});

console.log(result.id); // Unosend email id, also exposed as result.messageId

The adapter checks success in the response body and throws an EmailProviderError when Unosend reports a failure, even on an HTTP 200.

No metadata, one reply-to

Unosend has no metadata field and accepts only one replyTo address. A message with metadata or multiple reply-to addresses throws an EmailValidationError before any request is made — use tags, or pick a metadata-capable adapter.

Verify from the CLI

UNOSEND_API_KEY="un_..." npx email-sdk doctor --adapter unosend
UNOSEND_API_KEY="un_..." npx email-sdk send \
  --adapter unosend \
  --from "Acme <hello@acme.com>" \
  --to user@example.com \
  --subject "Unosend smoke test" \
  --text "It works" \
  --dry-run

Drop --dry-run for one real send — that is the only check that proves the API key and sending domain are ready.

On this page