BIRD Email

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

Konfiguracja w:
Cursor

Transactional and marketing email on the same infrastructure that carries your SMS, voice, and WhatsApp. About 40% of the world's commercial email transits the Bird network. We've been at this a decade. On Black Friday weekend 2025 we processed 19.9 billion emails.

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.

Deliverability and operational primitives, nazwane i możliwe do audytu.

  1. 01

    Podpisywane na brzegu sieci.

    Three records to publish: DKIM, a return-path CNAME, and a DMARC policy. The CNAME covers SPF too, so nothing has to go on your domain apex.

  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

    Dynamic suppression list.

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

  5. 05

    Żadnego odpytywania przy weryfikacji domeny.

    Add a domain, publish the records, and Bird re-checks on its own until they resolve, usually within minutes of DNS propagating. There's a verify call if you want an answer right now.

  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

    Batch send up to 100.

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

Why we build email

Because your verification codes shouldn't live in a different vendor than your delivery receipts.

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" }
  }
}

Eight attempts over roughly 27.5 hours, backing off 5s, 5m, 30m, 2h, 5h, 10h, 10h with 20% jitter so retries don't synchronize. Every attempt reuses the same webhook-id, which is what makes your deduplication check work. After the last one the delivery is permanently failed, and a replay call recovers it.

  • email.acceptedThe send was accepted and is being prepared for delivery.
  • 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

From $0.30 per 1,000 emails

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.

Trusted every day by teams that build world-class software

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.

Using Claude Code, Cursor, or Codex? Copy a setup prompt and your agent installs the Bird CLI and skills for you. Pick yours:

Cursor