Skip to content

The email API that shows its work

Send transactional and marketing mail through a clean API. Inspect delivery, manage audiences, and operate domains from one console.

3,000 emails/month free. No credit card required.

Send, inspect, operate. One API call in, the whole delivery story out.

The console shows you everything that happens to a message after you send it, and keeps the domains underneath it healthy.

Send

REST, SMTP, templates, and broadcasts. Queue a message and watch it land through Amazon SES.

Inspect

Events, webhooks, and API logs for every message.

Operate

Domains, keys, contacts, and suppressions in one place.

Check any domain, free

SPF, DKIM, DMARC, and DNSBL checks, header analysis, and DNS lookups. No account needed, at tools.sendsignal.dev.

Send with three lines of code

First-class SDKs for TypeScript, Python (zero dependencies), and Go, plus a drop-in SMTP relay for anything that already speaks SMTP: set the password to your API key and you're done.

Prefer raw HTTP? The whole surface is a clean REST API with an OpenAPI spec and an interactive reference. Batch up to 100 messages per call, schedule sends, and retry safely with idempotency keys.

send.ts
import { SendSignal } from "@sendsignal/sdk";

const sendsignal = new SendSignal("ss_...");

await sendsignal.emails.send({
  from: "Acme <billing@acme.com>",
  to: ["sam@example.com"],
  template_id: "tpl_invoice",
  tags: { name: "Sam", amount: "$49.00" },
  scheduled_at: "2026-09-01T09:00:00Z",
});

See exactly what happened to every message

Open any message and read its life story: acceptance, delivery, opens, clicks, and every webhook attempt with its response code. A live SSE stream lets you tail events during development.

Webhooks are HMAC-signed with full attempt history, and per-request API logs mean "what did we send?" is a lookup, not an archaeology project.

Domains that stay healthy

Add a domain and SendSignal generates the DKIM, SPF, and tracking records for you; verification polls until DNS propagates. Bounces and complaints are suppressed automatically on every send path.

Pro accounts add dedicated IPs with managed warmup and BIMI logo records: the reputation work most teams put off, running by default.

And everything after hello-world

Broadcasts & automations

Target a segment or topic, schedule it, or trigger event-driven workflows: on contact created, delivered, opened, clicked, or received.

on:openedautomation queued

Inbound parsing

Point MX at us and received mail arrives parsed (headers, bodies, and attachments), ready to read via API or to trigger an automation.

MXparsed2 attachments

Verified domains

DKIM, SPF, and tracking records provisioned for you; verification polls until DNS is right. BIMI logos supported out of the box.

spf pass·dkim pass·dmarc pass

Suppression built in

Bounces and complaints are suppressed automatically, and every send is checked against the list before it leaves.

bouncesuppressedchecked on send

One-click unsubscribe

RFC 8058 List-Unsubscribe headers and signed unsubscribe links added to every marketing send: the Gmail/Yahoo requirement, handled.

List-Unsubscribe-Post: One-Click

SDKs & tooling

TypeScript, Python, and Go SDKs, a CLI, an MCP server for agents, and free deliverability tools at tools.sendsignal.dev.

npm i @sendsignal/sdk

Send your first email

The same send, in whatever your stack speaks. Anything that talks HTTP or SMTP works; pick yours for the exact setup.

index.ts
import { SendSignal } from "@sendsignal/sdk";

const sendsignal = new SendSignal("ss_...");

await sendsignal.emails.send({
  from: "Acme <hi@acme.com>",
  to: "user@example.com",
  subject: "Hello",
  html: "<p>Hi</p>",
});
Endpointhttps://api.sendsignal.dev

Free deliverability tools

The diagnostics we run for our own delivery, open to everyone. No account, no rate-limit games.

Start sending in minutes

3,000 emails a month free, a real test mode, and a console that shows you exactly what happened to every message.

No credit card required.