SendpositoryDocs

Introduction

Send transactional email from your application with one HTTP request - domain setup, API keys, webhooks and delivery logs.

Updated

Sendpository is transactional email infrastructure. You verify a domain you own, create an API key, and send email with a single HTTP request - no SMTP server, no DKIM keys to manage, no bounce parsing.

Using an AI coding agent?

npx sendpository@latest agents teaches Claude Code, Codex, Cursor and Copilot how Sendpository works - then just ask it to add email, or to move you off Resend, SendGrid, Postmark, Mailgun or SES. See AI coding agents.

What it's for

Transactional email is mail your product sends because a person did something:

One-time passcodesPassword resets
Welcome messagesReceipts and invoices
Order confirmationsSecurity alerts
Shipping updatesAccount notifications

If you need to send the same message to thousands of people at once, that's marketing email. It's on the roadmap, not shipping today.

How it fits together

Your application
      │  POST /v1/emails
      ▼
Sendpository          checks your key, quota and suppression list,
      │             signs the message with your domain's DKIM key
      ▼
Recipient's mailbox
      │
      ▼
Delivery event ──▶ your webhook endpoint

You call one endpoint. Everything after that - signing, queueing, retries, bounce handling, suppression - happens for you, and every step shows up in the dashboard.

Before you start

Start by signing up and confirming your account email. To send email, you need:

A domain you control

You must be able to add DNS records to it. A subdomain like mail.yourdomain.com is the usual choice - see Domains.

A verified domain

Publish four DNS records so mailbox providers trust mail from you. This is the only part that takes real-world time - DNS can take a few minutes to propagate.

An API key

Created in the dashboard, and kept there until you close the tab. See API keys.

New to sending email?

Start with the Quickstart. It walks the whole path from signing up to a delivered message, and explains the DNS parts in plain terms.

Base URL

All requests go to:

https://api.sendpository.com/v1

Every request needs an Authorization header:

Authorization: Bearer sp_your_api_key

Two ways to call it

Node.js and TypeScript have an official client:

npm install sendpository
import { Sendpository } from "sendpository";

const sendpository = new Sendpository(process.env.SENDPOSITORY_API_KEY);
await sendpository.emails.send({ from, to, subject, html });

It adds typed errors, automatic retries and webhook signature verification. See the SDK guide.

Everything else talks to the API directly. Every example in these docs is a plain HTTP call. Your language runtime must be installed; individual examples list any extra dependency (such as Python's requests or PHP's cURL extension).

On this page