BIRD Email

API e-mail dla programistów, którzy wysyłają też resztę wiadomości.

Konfiguracja w:
Cursor

E-mail transakcyjny i marketingowy na tej samej infrastrukturze, która obsługuje Twoje SMS, połączenia głosowe i WhatsApp. Około 40% globalnej poczty komercyjnej przechodzi przez sieć Bird. Robimy to od dekady. W weekend Black Friday 2025 przetworzyliśmy 19,9 miliarda e-maili.

welcome.tsx
200 · 1.2s
import { BirdClient } from "@messagebird/sdk";
import { render } from "@react-email/render";
import { WelcomeEmail } from "./emails/welcome";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

const { data, error } = await bird.email.send({
  from:    "Bird <hello@bird.com>",
  to:      ["ada@example.com"],
  subject: "Your invite is ready",
  html:    await render(<WelcomeEmail name="Ada" />),
}).safe();

if (error) throw error;
console.log(data.id);
// → "em_2bX91Yk8h..."

5 minut od npm install do pierwszej wysyłki

Wyślij e-mail w języku programowania, którego już używasz.

SDK we wszystkich popularnych środowiskach uruchomieniowych. Pierwszą wiadomość możesz wysłać na dedykowany adres testowy (delivered@messagebird.dev), więc możesz budować na działającym API (wysyłki, webhooki, cały przepływ), zanim zweryfikujesz domenę.

1
2
3
4
5
6
7
const msg = await bird.email.send({
  from: { email: "onboarding@messagebird.dev", name: "Bird" },
  to: ["delivered@messagebird.dev"],
  subject: "Hello from Bird",
  html: "<p>My first Bird email.</p>",
});
console.log(msg.id, msg.status); // "em_…", "accepted"

Dziesięć elementów e-maila, które nie są już Twoim problemem.

Dostarczalność i podstawowe narzędzia operacyjne, nazwane i możliwe do audytu.

  1. 01

    Podpisywane na brzegu sieci.

    Trzy rekordy do opublikowania: DKIM, return-path CNAME i polityka DMARC. CNAME obejmuje też SPF, więc nic nie musi trafiać do rekordu apex Twojej domeny.

  2. 02

    Audyt, zanim wyślesz choćby bajt.

    Skieruj narzędzie audytu na dowolną domenę — rozwiąże aktualne rekordy DMARC, SPF, DKIM, BIMI i MX, oceni, jak współpracują ze sobą, i wskaże, co naprawić. Konto nie jest wymagane.

  3. 03

    Zarządzane dedykowane adresy IP.

    Przydzielane na konto i rozgrzewane automatycznie przez około 30 dni, zorganizowane w pule, które kontrolujesz.

  4. 04

    Dynamiczna lista wykluczeń.

    Odbicia, skargi i wypisania automatycznie i odwracalnie blokują odbiorcę.

  5. 05

    Żadnego odpytywania przy weryfikacji domeny.

    Dodaj domenę, opublikuj rekordy, a Bird sam sprawdza ponownie, aż zostaną rozwiązane — zwykle w ciągu kilku minut od propagacji DNS. Jeśli chcesz odpowiedź od razu, jest też wywołanie verify.

  6. 06

    Zapisane szablony lub własny HTML.

    Wskaż zapisany szablon, a Bird wyrenderuje go za pomocą Liquid, albo wyrenderuj React Email do HTML w swojej aplikacji i przekaż wynik.

  7. 07

    Przeszukiwalny dziennik emaili.

    Każda wysłana wiadomość jest rejestrowana wraz ze zdarzeniami dostarczenia i statusem. Każdy e-mail możesz odpytać po ID.

  8. 08

    Metryki dostarczalności w podziale na kategorie.

    Kody odbić, typy skarg oraz podział według dostawców i klientów poczty, rozbite na domenę, ISP i IP, w panelu i przez API statystyk.

  9. 09

    Parsowanie wiadomości przychodzących.

    Użyj wygenerowanego przez Bird adresu przekierowania lub opublikuj rekordy MX na własnej subdomenie. W obu przypadkach wiadomość trafia jako podpisany webhook, który możesz wątkować.

  10. 10

    Wysyłka wsadowa do 100.

    Do 100 niezależnych wiadomości na wywołanie, każda z własnym odbiorcą i zmiennymi. Jeden klucz idempotencji obejmuje całą partię.

Dlaczego budujemy e-mail

Bo Twoje kody weryfikacyjne nie powinny żyć u innego dostawcy niż potwierdzenia doręczenia.

E-mail nie jest osobnym produktem; to jeden kanał w przepływie. Kody uwierzytelniające zaczynają się jako e-mail i przechodzą na SMS. Potwierdzenia wysyłane są przez WhatsApp, gdy klient tak woli. Bird Email to ten, którego API, webhooki i kontrakt idempotencji pasują do każdego innego kanału, bo wszystkie zbudował ten sam zespół inżynierów w tej samej sieci.

welcome.tsx
200 · 1.2s
import { BirdClient } from "@messagebird/sdk";
import { render } from "@react-email/render";
import { WelcomeEmail } from "./emails/welcome";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

const { data, error } = await bird.email.send({
  from:    "Bird <hello@bird.com>",
  to:      ["ada@example.com"],
  subject: "Your invite is ready",
  html:    await render(<WelcomeEmail name="Ada" />),
}).safe();

if (error) throw error;
console.log(data.id);
// → "em_2bX91Yk8h..."

Każda zmiana stanu to webhook.

Ładunki podpisane HMAC, zabezpieczone przed powtórzeniem, idempotentne. Ta sama podpisana koperta na każdym kanale Bird, więc handler napisany dla e-maila już parsuje Twoje zdarzenia SMS i WhatsApp.

POST /webhooks/bird
signed
{
  "type": "email.delivered",
  "timestamp": "2026-05-19T15:42:01.221Z",
  "data": {
    "email_id":       "em_01krdgeqcxet5s7t44vh8rt9mg",
    "recipient_id":   "er_01krdgeqcxet5s7t44vh8rt9mg",
    "workspace_id":   "ws_01krdgeqcxet5s7t44vh8rt9mg",
    "recipient":      "ada@example.com",
    "recipient_role": "to",
    "tags":     [{ "name": "campaign", "value": "spring-2026" }],
    "metadata": { "order_id": "ord_5512" }
  }
}

Osiem prób w ciągu około 27,5 godziny z rosnącymi odstępami: 5 s, 5 min, 30 min, 2 godz., 5 godz., 10 godz., 10 godz. z 20% jitterem, aby ponowienia się nie synchronizowały. Każda próba używa tego samego webhook-id, dzięki czemu działa Twoja deduplikacja. Po ostatniej próbie dostarczenie jest trwale nieudane, a wywołanie replay pozwala je odzyskać.

  • email.acceptedWysyłka została zaakceptowana i jest przygotowywana do dostarczenia.
  • email.processedW kolejce do serwera pocztowego odbiorcy.
  • email.deliveredSerwer pocztowy odbiorcy zaakceptował wiadomość.
  • email.openedOdbiorca otworzył wiadomość. Może wystąpić więcej niż raz.
  • email.clickedOdbiorca kliknął śledzony link.
  • email.bouncedTrwałe niepowodzenie: typ odrzucenia i kod SMTP w ładunku.
  • email.complainedOdbiorca zgłosił wiadomość jako spam.
  • email.unsubscribedOdbiorca zrezygnował z subskrypcji za pomocą śledzonego linku rezygnacji.
  • email.list_unsubscribedOdbiorca użył funkcji rezygnacji jednym kliknięciem w swoim kliencie pocztowym.

Jeśli zintegrowałeś e-mail, zintegrowałeś SMS.

Ten sam model uwierzytelniania, ten sam kontrakt idempotencji, ta sama koperta błędu, ten sam kształt webhooka. Różnica polega na tym, co każdy z nich robi, a nie jak go wywołujesz.

Email

Zweryfikowana domena, podpis na brzegu sieci, obsługa list wykluczeń. Renderuj w React lub przekaż surowy HTML.

order-shipped.tsx
await bird.email.send({
  from:    "hello@bird.com",
  to:      ["ada@example.com"],
  subject: "Your code",
  html:    `<p>Code: ${code}</p>`,
});

SMS

Ta sama koperta, ta sama idempotentność, ten sam rejestr typów błędów. Jedyną różnicą jest transport.

order-shipped.tsx
await bird.sms.send({
  from:     "Bird",
  to:       "+14155550172",
  text:     `Your code is ${code}.`,
  category: "authentication",
});

Cennik

Od 0,30 USD za 1000 emaili

Zacznij za darmo: 1 000 e-maili miesięcznie, bez karty. Plany płatne zaczynają się od $15 za 50K, a stawka za wiadomość w planie Growth maleje wraz ze skalowaniem do 2,5M. Bez opłaty za platformę, bez opłaty za użytkownika, bez funkcji poziomu zablokowanych za rocznymi zobowiązaniami.

Codziennie zaufany przez zespoły tworzące oprogramowanie światowej klasy

Zacznij od jednego kanału.
Dodaj kolejne, gdy będziesz gotowy.

Testowy klucz API otrzymasz od razu. Dostęp produkcyjny odblokujesz po dodaniu metody płatności i weryfikacji nadawcy.

Używasz Claude Code, Cursor lub Codex? Skopiuj prompt konfiguracyjny, a Twój agent zainstaluje za Ciebie Bird CLI i umiejętności. Wybierz swój:

Cursor