---
title: "Developer features"
description: "Every developer feature in OpenEmail: the email API, webhooks, the typed SDK, the command line, MCP, scoped API keys and the move from Resend."
url: "https://openemail.uk/developers/features"
---

Developers

# Everything you can build, on the mailbox your team already reads.

21 features for your code: sending, timing, events, keys and the clients that call them. Each one links to how it works.

01 · 3 features

## Write one call. Delivery is on us.

Anything that speaks HTTP can send. TypeScript gets a typed client, and every message reports back as it is queued, sent and delivered.

Intro Invoice Follow-up

Hi Sarah, good to meet you at

### Email API

Send one message or a hundred per call, now or later, and retry without sending twice.

### Templates

A body written once, versioned, and sent many times: from the composer, from your own code, or by an agent.

### Attachments

Pick them with the paperclip or paste them in. A pasted image lands in the body rather than the file list, and a file dragged onto the composer is not attached at all. On an OpenEmail mailbox incoming files sit in object storage, one object each, and opening a thread pulls every one of them.

02 · 2 features

## Send once. Exactly when you meant to.

A retry never sends twice, a send can wait up to a year, and an undo window lasts up to fifteen minutes.

Tomorrow, 8:00

queued, not sent

### Scheduled send

Write it now, land it when they are awake.

### Undo send

A window to change your mind, and the composer comes back exactly as it was.

03 · 3 features

## Events as they happen

Webhooks tell your endpoint the moment mail arrives, is delivered, bounces or gets a reply.

deals@spammy.io blocked sender

anyone@spammy.io blocked domain

hr@recruit.co language filter

ci@acme.dev your rule → archive

### Webhooks

Tell your endpoint when mail arrives, instead of making you poll.

### See when mail you sent was opened

Whether a message you sent has been opened, when, how many times and which of its links were followed. Off until you turn it on, and plain about the readings it cannot get.

### Rules you write yourself

Your own conditions, and what should happen to anything that matches them.

04 · 4 features

## Every door, up close.

Use the typed SDK, script the CLI, connect an agent over MCP, or speak plain HTTP.

/threads?query=invoice

{ "threads": 12 }

Same mailbox, whether a person or a program is holding it.

### REST API

A documented HTTP API with issuable, scopable, revocable keys.

### Typed SDKs

A TypeScript client first, then the rest.

### Command line

Your mailbox and every API operation, from a terminal or a script.

### MCP server

Point Claude, or any MCP client, at your mailbox.

05 · 2 features

## Access you can narrow

A key carries its own scopes, a sending address and an expiry. An app signs in with OAuth and gets only what you approve.

Sarah support@

Alex billing@

Nina careers@

read, or read and send as it, with nothing else visible

### API keys

A key per job, limited to the scopes and senders it needs, with every call logged.

### OAuth for third-party clients

Apps register themselves and sign in with PKCE, and you choose the workspace, addresses and permissions each one gets.

06 · 6 features

## Everything the app does, your code does.

Threads, search, labels, drafts and contacts are calls too, on the mailbox your team already reads.

invoice from stripe

Stripe · Invoice #4021

Stripe · Receipt for Aug

### Full-text search

Forgiving words and operators like from: and has:, inside the folder you are reading.

### Labels

Name a label, pick a colour, and filter the list down to it.

### Drafts

Autosaved three seconds after you stop typing, and reopened from the Drafts folder with the recipients, the subject, the body and the From address intact. The attachments stay behind.

### Recipient suggestions

The people you already write to, offered as you type.

### Thread notes

Keep a private note attached to a thread.

### Files

Every attachment this mailbox holds, in one place you can search, download and clear out.

07 · 1 features

## Coming from Resend? Change two lines.

Point the Resend SDK at OpenEmail and keep your code, then bring contacts, templates and webhooks across.

hello@acme.com

me@acme.dev

support@acme.io

one inbox

### Move from Resend

Bring your suppressions, audiences, contacts, templates and webhooks across with one key, with a checklist for your domains and API keys.

## More features

Product features

The mail app itself: addresses and domains, search, writing, safety and privacy.

Agent features

MCP, temporary inboxes, safe sends and the approval that sets what an agent can reach.
