Developer API

Send email. Collect money. One call.

A REST API that sends transactional email, marketing campaigns, and invoices with built-in payment collection. One POST request. Typed SDKs. Webhooks for delivery and payments. No Stripe. No payment pages. No glue code.

First email in 30 seconds.

Install
npm install @boredmails/sdk
send.ts
import { Boredmails } from '@boredmails/sdk';

const bm = new Boredmails('bm_live_your_api_key');

// Simple email
await bm.send({
  from: 'studio@boredmails.online',
  to: 'client@company.com',
  subject: 'Your project is ready',
  html: '<p>Take a look at the final deliverables.</p>',
});

// Email with payment collection (Boredmails-only)
const { id, payment_url } = await bm.send({
  from: 'studio@boredmails.online',
  to: 'client@company.com',
  subject: 'Invoice #047 — Brand Identity',
  html: invoiceHtml,
  payment: {
    amount: 2500.00,
    currency: 'USD',
    due_date: '2026-05-01',
    description: 'Brand identity package',
  },
});

// payment_url is auto-injected into the email template
// Webhook fires on email.payment.completed when client pays

Endpoints.

POST /v1/emails

Send an email. Optionally attach a payment request.

ParameterTypeDescription
from*stringSender address (must be verified domain or @boredmails.online)
to*string | string[]Recipient address(es)
subject*stringEmail subject line
htmlstringHTML body
textstringPlain text fallback
ccstring[]CC recipients
bccstring[]BCC recipients
reply_tostringReply-To address
headersobjectCustom email headers
tagsstring[]Tags for analytics grouping
paymentobjectPayment request (amount, currency, due_date, description). Injects a one-click Pay button into the email.
POST /v1/emails/batch

Send up to 100 emails in a single request. Supports per-recipient personalization and payment objects.

GET /v1/emails/:id

Retrieve email status, delivery info, and payment state.

POST /v1/domains

Add and verify a custom sending domain. Returns DNS records to configure.

GET /v1/domains

List all verified sending domains on your account.

GET /v1/analytics

Delivery stats, open rates, bounce rates, and payment conversion rates. Filterable by date range and tags.

Real-time events for everything.

Configure a single webhook URL. We POST JSON for every event. Retry with exponential backoff on failure.

webhook-payload.json
{
  "type": "email.payment.completed",
  "data": {
    "email_id": "em_7x9k2m...",
    "to": "client@company.com",
    "payment": {
      "amount": 2500.00,
      "currency": "USD",
      "reference": "pay_a8f3...",
      "completed_at": "2026-04-09T14:32:00Z"
    }
  }
}

Your language. Your framework.

Fully typed SDKs so your editor does the work. Or use the REST API directly.

Node.js / TypeScript

npm install @boredmails/sdk

Python

pip install boredmails

Go

go get github.com/boredmails/go

cURL / REST

POST https://api.boredmails.online/v1/emails

Start sending in 30 seconds.

Free tier. No credit card. 100 emails/month to start. Upgrade when your business does.

Get Your API Key Back to Boredmails