// product · email api

The send API your code can trust.

One REST endpoint, one key, and your mail is queued in milliseconds. Idempotent, batchable, fully typed, and tracked end to end — the boring reliability you want under a product.

one call · request & response
# POST /v1/emails
curl https://api.drin.run/v1/emails \
  -H "Authorization: Bearer $DRIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "hello@drin.run",
    "to": "user@acme.com",
    "subject": "Welcome aboard",
    "html": "<p>You are in.</p>"
  }'

# → 202 Accepted
{ "id": "msg_8fK2q1", "status": "queued" }
// what you get[01/03]

Everything a transactional API should do.

01

Idempotent sends

Pass an Idempotency-Key and retry safely — a duplicate request never sends twice.

02

Batch sending

Up to 100 messages in a single call, each with its own recipients and content.

03

Attachments & inline

File attachments and inline images (cid:), size-validated at the edge before send.

04

Scheduled send

Queue a message for a future timestamp and cancel it any time before it leaves.

05

Opens & clicks

Optional open and click tracking, off by default — you choose what to measure.

06

Signed webhooks

Eleven delivery, bounce, complaint and engagement events, signed and retried.

// at a glance[02/03]

Built like infrastructure.

Predictable verbs, predictable errors, predictable limits. Send over REST, SMTP, the SDKs, the CLI or the MCP tools — however you call it, behaviour is identical.

Browse the SDKs →

Base URLhttps://api.drin.run/v1
AuthBearer API key · X-Drin-Product selects the project
InterfacesREST · SMTP · TypeScript & Python SDKs · CLI · MCP
Body formatsHTML, plain text, attachments, inline images
IdempotencyIdempotency-Key header, 24h dedupe window
Events11 signed webhook types, multi-endpoint
// pairs well with[03/03]
// ship it

Send your first email in three minutes.

Grab a key, call one endpoint, and watch it land. Test in the sandbox; production starts at $3 a month.