Programiści

Skrzynce nie robi różnicy,
kto ją obsługuje.

Wszystko, co robi aplikacja, robi Twój kod: 104 udokumentowane operacje w 68 ścieżkach, za dokumentem OpenAPI 3.1, który przeczytasz bez klucza. Klient TypeScript jest przy każdym buildzie trzymany w zgodzie z tym dokumentem.

Wklej do dowolnego klienta MCP. Rejestruje się sam.
{ "mcpServers": {
    "openemail": {
      "url": "https://api.openemail.uk/mcp"
    } } }

MCP nie wymaga wklejania klucza. Klient odnajduje serwer autoryzacji na podstawie endpointu, rejestruje się sam i odsyła Cię tutaj, żebyś się zalogował.

104

udokumentowanych operacji

68

ścieżek pod jednym hostem

116

metod SDK, pokrywających je wszystkie

20

zdarzeń webhooków, w trzech rodzinach

Dokument OpenAPI 3.1 jest pod GET /openapi.json, a jego odczyt nie wymaga klucza.

Interfejsy

Troje drzwi,
jedna skrzynka.

REST API

Klucz przestrzeni roboczej decyduje, co wolno wywołaniu i z jakich adresów może wysyłać. Unieważnienie to aktualizacja, a nie usunięcie, więc późniejsze wywołanie dostaje informację, że klucz został unieważniony.

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

Klucz wysyła z maksymalnie 25 całych domen i 50 pojedynczych adresów. GET /ping odczytuje zakresy, które ma, i zakresy, jakie zostawiła mu jego rola.

Serwer MCP

Wskaż klientowi endpoint i zaloguj się. Nie ma klucza do wklejenia, bo klient rejestruje się sam i odsyła Cię tutaj.

listThreads
threads:reademails:sendlabels:write

Narzędzia budowane są z tego, co wolno wywołującemu, więc klient ograniczony do czytania nie ma w sobie narzędzia do wysyłki. Token wciąż sięga całej skrzynki.

Webhooki

Zarejestruj endpoint https, a skrzynka będzie do niego wysyłać. Dostarczenia wywołuje sama skrzynka, a nie wywołanie API, więc napisanie wiadomości w aplikacji i wysłanie jej przez API powodują to samo.

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

20 zdarzeń w trzech rodzinach i dziesięć endpointów na skrzynkę.

Zgodność

Klient nie może zostać w tyle za
API.

Kontrola zgodności czyta dokument OpenAPI przy każdym buildzie i pada przy rozjeździe: metoda wskazująca na operację, której specyfikacja nie ma, udokumentowana operacja bez metody albo lista zakresów niezgodna z tym, czego operacja wymaga. Wypisuje, co udowodniła, i dziś brzmi to: 116 metod SDK na wszystkie 104 udokumentowane operacje.

Jedna wysyłka, trzy sposoby

Konfiguracja, żądanie i wywołanie to ta sama operacja, zapisana na trzy sposoby.

MCPAPISDK
{ "mcpServers": {
"openemail": {
"url": "https://api.openemail.uk/mcp"
} } }
01 · 5 funkcji, 1 w przygotowaniu

Agenci, API i MCP

OpenEmail ma być obsługiwany zarówno przez oprogramowanie, jak i przez ludzi. Skrzynka w obu przypadkach jest ta sama.

/threads?query=invoice
{ "threads": 12 }
Ta sama skrzynka, czy trzyma ją człowiek, czy program.

Serwer MCP

Skieruj Claude, albo dowolnego klienta MCP, na swoją skrzynkę.

/threads?query=invoice
{ "threads": 12 }
Ta sama skrzynka, czy trzyma ją człowiek, czy program.

OAuth dla klientów zewnętrznych

Wkrótce

Samodzielna rejestracja klienta z PKCE, żeby aplikacja mogła poprosić o dostęp jak należy.

Zgoda i cofnięcie dostępu są; zakres nie, więc token sięga całej skrzynki, a nie tej części, o którą poprosiła aplikacja.

/threads?query=invoice
{ "threads": 12 }
Ta sama skrzynka, czy trzyma ją człowiek, czy program.

REST API

Udokumentowane API HTTP z kluczami, które można wydawać, ograniczać zakresem i unieważniać.

/threads?query=invoice
{ "threads": 12 }
Ta sama skrzynka, czy trzyma ją człowiek, czy program.

Typowane SDK

Najpierw klient TypeScript, potem reszta.

/threads?query=invoice
{ "threads": 12 }
Ta sama skrzynka, czy trzyma ją człowiek, czy program.

Webhooki

Mówią twojemu endpointowi, że przyszła poczta, zamiast kazać ci odpytywać.

/threads?query=invoice
{ "threads": 12 }
Ta sama skrzynka, czy trzyma ją człowiek, czy program.

Szybki start

Od zera do wysłanej wiadomości.
Trzy kroki.

  1. 1

    Wygeneruj klucz

    Ustawienia, Klucze API, na skrzynce, którą posiadasz. Wybierz jego zakresy i zawęź adresy, z których może wysyłać, do całych domen lub pojedynczych adresów. Sekret pokazujemy raz, a przechowujemy jednokierunkowy hash.

    GET /ping odpowiada zakresami na kluczu i zakresami, jakie zostawiła mu jego rola.
    export OPENEMAIL_API_KEY=oe_live_9f2c1a4b7e05d3862c1f0a44_kX7… curl https://api.openemail.uk/ping \  -H "Authorization: Bearer $OPENEMAIL_API_KEY"
  2. 2

    Zainstaluj klienta

    Klient TypeScript bez zależności, publikowany jako ESM i CommonJS, czytający klucz z OPENEMAIL_API_KEY. Pomiń go, jeśli wolisz sam wysyłać JSON, bo każdy endpoint to zwykły HTTP.

    Node 18 wzwyż, Workers, Deno, Bun i przeglądarka.
    bun add @openemail/sdk
  3. 3

    Wyślij

    Odpowiedź niesie id. GET /emails/{id} je rozwiązuje, /events ma ślad dla każdego odbiorcy, a /tracking otwarcia i kliknięcia.

    Ponowienie z tym samym Idempotency-Key zwraca pierwszy wynik z 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)

Nieobecne

Czego jeszcze nie zrobi
za Ciebie.

Pięć rzeczy, które warto wiedzieć, zanim coś na tym zbudujesz, a nie potem.

Brak endpointu do wysyłki plików
Załączniki inline idą jako base64 z łącznym limitem 5 MB. Większy plik wysyła się, wskazując po id plik już obecny w przestrzeni roboczej — podróżuje wtedy jako link do pobrania.
Odbicia kończą się na skrzynce
Raport doręczenia jest parsowany, dopasowywany po Message-ID, oznaczany na wątku i wypychany jako webhook email.bounced. Nic nie zapisuje się z powrotem do wiersza wysyłki, więc przez GET /emails odbita wiadomość nadal czyta się jako wysłana.
Poczty z edytora nie ma w GET /emails
Poczta wysłana z edytora w aplikacji nie pojawia się na tej liście, bo edytor nie zapisuje przez tę samą ścieżkę wysyłki.
OAuth ma zgodę, nie zakres
Prośba jest pokazywana, zanim zostanie przyznana, a Połączone aplikacje ją cofają, ale token sięga całej Twojej skrzynki, a nie tej części, o którą aplikacja prosiła.
Brak procesu wydawniczego
Publikacja klienta to ręczne uruchomienie preflightu, builda i bun publish, więc wersja trafia do npm wtedy, gdy ktoś to uruchomi, a nie wtedy, gdy zmiana wyląduje.

Weryfikacja dostarczenia

Każde dostarczenie jest podpisane,
a każde ponowienie niesie jego id.

Podpis to HMAC-SHA-256 z sygnatury czasowej, kropki i surowego ciała żądania. Weryfikuj na bajtach w takiej postaci, w jakiej dotarły, bo parsowanie i ponowna serializacja zmieniają kolejność kluczy i to psują.

Nagłówki przy każdym dostarczeniu
X-OpenEmail-Signature: t=1758240000,v1=9f0c4b2e7d1a86c3X-OpenEmail-Event: email.deliveredX-OpenEmail-Delivery: evt_4b7e05d3862c1f0a
Okno powtórzeń
300 sekund, a ich egzekwowanie to zadanie odbiorcy. Weryfikator w SDK przyjmuje je domyślnie.
Idempotency-Key
Rezerwowany przez unikalny indeks na kluczu razem z Twoim kluczem API, więc ponowienie po przekroczeniu czasu zwraca pierwszy wynik z Idempotency-Replayed: true, zamiast wysyłać dwa razy.
Ponowienia
Pięć prób: w chwili zdarzenia, a potem po 1 minucie, 5, 25 i 2 godzinach. Powtarzane są tylko przekroczenie czasu, odrzucone połączenie, 408, 425, 429 lub 5xx.
X-OpenEmail-Delivery
Id zdarzenia powstaje raz i niesie je każda próba, więc odbiorca, który widzi to samo id dwa razy, może odrzucić drugie zamiast działać ponownie.

Dla kogo to jest

Jedna skrzynka.
Trzy drogi wejścia.

Osoby prywatne

Darmowy adres w openemail.uk, a za nim klient poczty.

acme.comacme.devstudio.acme.com
hello@acme.comdostarczono
billing@acme.comdostarczono
oct-2026-signup@acme.comdostarczono
anything-at-all@acme.comdostarczono
Firmy

Adresy dla wszystkich, bez liczenia członków jako stanowisk.

[email protected]udostępniony
SSarahAAliJJamieNNadia
Żadnego nowego stanowiska. Rachunek się nie zmienia.
Programiści

Ta sama skrzynka przez API, SDK i MCP.

/threads?query=invoice
{ "threads": 12 }
Ta sama skrzynka, czy trzyma ją człowiek, czy program.

Wygeneruj klucz.
Wyślij coś.

Full API, MCP and SDK access w każdym planie. Free niesie ze sobą 50 AI actions a day.

Przeczytaj szybki start API

Twoja skrzynka,
na Twoich zasadach.

Infrastruktura e-mail dla firm, AI, agentów i poczty osobistej. Zbudowana pod skalę, prywatność i kontrolę. Wszystko, co poczta powinna mieć od pierwszego dnia.

OpenEmail

Infrastruktura e-mail dla firm, AI, agentów i poczty osobistej. Zbudowana pod skalę, prywatność i kontrolę. Wszystko, co poczta powinna mieć od pierwszego dnia.

© 2026 OpenEmail. Wszelkie prawa zastrzeżone.
Status