Разработчикам

Почтовому ящику безразличен
тот, кто им управляет.

Всё, что делает приложение, делает и ваш код: 104 документированные операции на 68 путях за документом OpenAPI 3.1, который можно прочитать без ключа. TypeScript-клиент сверяется с этим документом при каждой сборке.

Вставьте в любой MCP-клиент. Он зарегистрируется сам.
{ "mcpServers": {
    "openemail": {
      "url": "https://api.openemail.uk/mcp"
    } } }

Для MCP не нужно вставлять ключ. Клиент сам находит сервер авторизации по эндпоинту, регистрируется и отправляет вас сюда для входа.

104

документированных операций

68

путей на одном хосте

116

методов SDK, покрывающих их все

20

событий вебхуков, в трёх семействах

Документ OpenAPI 3.1 лежит по GET /openapi.json, и для чтения ключ не нужен.

Интерфейсы

Три двери,
один ящик.

REST API

Ключ рабочего пространства решает, что может сделать вызов и от каких адресов он может отправлять. Отзыв — это обновление, а не удаление, поэтому следующему вызову сообщат, что ключ отозван.

/threads?query=invoice
/emails
emails:sendthreads:readwebhooks:write

Ключ отправляет от имени до 25 целых доменов и 50 отдельных адресов. GET /ping возвращает области доступа, которые у него есть, и те, что оставила ему его роль.

MCP-сервер

Направьте клиент на эндпоинт и войдите. Вставлять ключ не нужно: клиент регистрируется сам и отправляет вас сюда.

listThreads
threads:reademails:sendlabels:write

Инструменты строятся из того, что разрешено вызывающему, поэтому у клиента, ограниченного чтением, инструмента отправки нет. Токен всё равно достаёт до всего ящика.

Вебхуки

Зарегистрируйте https-эндпоинт, и ящик будет слать на него запросы. Доставки порождает сам ящик, а не вызов API, поэтому письмо, написанное в приложении, и запрос к API вызывают одну и ту же.

/webhooks
email.receivedemail.sentemail.failedemail.openeddomain.verifiedsuppression.added

20 событий в трёх семействах и десять эндпоинтов на ящик.

Паритет

Клиенту не отстать
от API.

Проверка паритета читает документ OpenAPI при каждой сборке и падает при расхождении: метод указывает на операцию, которой нет в спецификации; документированная операция без метода; список областей доступа, не совпадающий с тем, что требует операция. Она печатает то, что доказала, и сегодня это 116 методов SDK на все 104 документированные операции.

Одна отправка, три способа

Конфигурация, запрос и вызов — это одна и та же операция, записанная тремя способами.

MCPAPISDK
{ "mcpServers": {
"openemail": {
"url": "https://api.openemail.uk/mcp"
} } }
01 · 5 возможностей, ещё 1 впереди

Агенты, API и MCP

OpenEmail рассчитан на то, что им управляют и программы, и люди. Ящик в обоих случаях один и тот же.

/threads?query=invoice
{ "threads": 12 }
Один и тот же ящик, держит его человек или программа.

MCP-сервер

Направьте Claude или любой другой MCP-клиент на свой ящик.

/threads?query=invoice
{ "threads": 12 }
Один и тот же ящик, держит его человек или программа.

OAuth для сторонних клиентов

Скоро

Самостоятельная регистрация клиента с PKCE, чтобы приложение могло запросить доступ как положено.

Согласие и отзыв есть; областей доступа нет, поэтому токен получает весь ваш ящик, а не ту часть, о которой просило приложение.

/threads?query=invoice
{ "threads": 12 }
Один и тот же ящик, держит его человек или программа.

REST API

Документированный HTTP API с ключами, которые можно выпускать, ограничивать и отзывать.

/threads?query=invoice
{ "threads": 12 }
Один и тот же ящик, держит его человек или программа.

Типизированные SDK

Сначала клиент на TypeScript, потом остальные.

/threads?query=invoice
{ "threads": 12 }
Один и тот же ящик, держит его человек или программа.

Вебхуки

Сообщаем вашему эндпоинту о приходе письма, вместо того чтобы заставлять вас опрашивать.

/threads?query=invoice
{ "threads": 12 }
Один и тот же ящик, держит его человек или программа.

Быстрый старт

От нуля до отправленного письма.
Три шага.

  1. 1

    Выпустите ключ

    Настройки, ключи API, в вашем собственном ящике. Выберите области доступа и сузьте, от чего он может отправлять, до целых доменов или отдельных адресов. Секрет показывается один раз, а хранится односторонний хеш.

    GET /ping отвечает областями доступа ключа и теми, что оставила ему его роль.
    export OPENEMAIL_API_KEY=oe_live_9f2c1a4b7e05d3862c1f0a44_kX7… curl https://api.openemail.uk/ping \  -H "Authorization: Bearer $OPENEMAIL_API_KEY"
  2. 2

    Установите клиент

    TypeScript-клиент без зависимостей, опубликованный как ESM и CommonJS, читает ключ из OPENEMAIL_API_KEY. Пропустите его, если предпочитаете слать JSON сами: каждый эндпоинт — это обычный HTTP.

    Node 18 и новее, Workers, Deno, Bun и браузер.
    bun add @openemail/sdk
  3. 3

    Отправьте

    В ответе приходит id. GET /emails/{id} его раскрывает, /events хранит историю по каждому получателю, а /tracking — открытия и клики.

    Повтор с тем же Idempotency-Key вернёт первый результат с Idempotency-Replayed: true.
    import { init, openemail } from '@openemail/sdk' init({ apiKey: process.env.OPENEMAIL_API_KEY }) const email = await openemail.emails.send({  from: 'Acme Billing <[email protected]>',  to: '[email protected]',  subject: 'Your September invoice',  html: '<p>Invoice attached.</p>',}) console.log(email.id, email.status)

Отсутствует

Чего он пока
для вас не сделает.

Пять вещей, которые лучше узнать до того, как начнёте на этом строить, а не после.

Нет эндпоинта загрузки
Встроенные вложения передаются в base64 с общим ограничением в 5 МБ. Файл побольше отправляют, назвав по id файл, уже лежащий в рабочем пространстве, — он уходит ссылкой на скачивание.
Возвраты не идут дальше ящика
Отчёт о доставке разбирается, сопоставляется по Message-ID, помечается в цепочке и уходит вебхуком email.bounced. В запись об отправке ничего не записывается обратно, поэтому через GET /emails отклонённое письмо по-прежнему выглядит отправленным.
Писем из редактора нет в GET /emails
Письма, отправленные из редактора в приложении, в этот список не попадают, потому что редактор пишет не через тот же путь отправки.
У OAuth есть согласие, но нет областей доступа
Запрос показывается до того, как его одобрят, и «Подключённые приложения» позволяют его отозвать, но токен получает доступ ко всему ящику, а не к той части, которую попросило приложение.
Нет процесса релиза
Публикация клиента — это ручной запуск предварительной проверки, сборки и bun publish, поэтому версия попадает в npm тогда, когда её кто-то запустит, а не когда изменение вливается.

Проверка доставки

Каждая доставка подписана,
и каждый повтор несёт её id.

Подпись — это HMAC-SHA-256 по метке времени, точке и сырому телу запроса. Проверяйте по байтам в том виде, в каком они пришли: разбор и повторная сериализация меняют порядок ключей и ломают подпись.

Заголовки в каждой доставке
X-OpenEmail-Signature: t=1758240000,v1=9f0c4b2e7d1a86c3X-OpenEmail-Event: email.deliveredX-OpenEmail-Delivery: evt_4b7e05d3862c1f0a
Окно повтора
300 секунд, и следить за ними — дело получателя. Верификатор в SDK берёт это значение по умолчанию.
Idempotency-Key
Занимается по уникальному индексу, объединяющему этот ключ и ваш ключ API, поэтому повтор после таймаута вернёт первый результат с Idempotency-Replayed: true, а не отправит письмо дважды.
Повторы
Пять попыток: в момент события, затем через 1 минуту, 5, 25 и 2 часа. Повторяются только таймаут, отказ в соединении, 408, 425, 429 или 5xx.
X-OpenEmail-Delivery
Id события создаётся один раз, и его несёт каждая попытка, поэтому получатель, увидевший один и тот же id дважды, может отбросить второй, а не обработать его снова.

Для кого это

Один почтовый ящик.
Три входа.

Частные лица

Бесплатный адрес на openemail.uk, и за ним клиент.

acme.comacme.devstudio.acme.com
hello@acme.comдоставлено
billing@acme.comдоставлено
oct-2026-signup@acme.comдоставлено
anything-at-all@acme.comдоставлено
Компании

Адреса для всех, участники никогда не считаются местами.

SSarahAAliJJamieNNadia
Место не добавлено. Счёт не меняется.
Разработчики

Тот же почтовый ящик через API, SDK и MCP.

/threads?query=invoice
{ "threads": 12 }
Один и тот же ящик, держит его человек или программа.

Выпустите ключ.
Отправьте что-нибудь.

Full API, MCP and SDK access — на всех тарифах. Free приносит с собой 50 AI actions a day.

Читать быстрый старт по API

Ваши входящие,
на ваших условиях.

Почтовая инфраструктура для бизнеса, ИИ, агентов и личной почты. Создана для масштаба, приватности и контроля. Всё, что должно было быть в почте с первого дня.

OpenEmail

Почтовая инфраструктура для бизнеса, ИИ, агентов и личной почты. Создана для масштаба, приватности и контроля. Всё, что должно было быть в почте с первого дня.

© 2026 OpenEmail. Все права защищены.
Статус