Push wird gerade aktualisiert

Push-Benachrichtigungen für iOS, Android und Web.

Token-management abstraction, per-device opt-in, native rich payloads, segment targeting. Same auth, same idempotency, same webhooks as every other Bird channel, because the same engineering team built them all.

push.ts
200 · 0.2s
import { BirdClient } from "@messagebird/sdk";

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

// Send by device token...
const { data, error } = await bird.push.send({
  to:    "token_aPa91Hb...XzQ",
  title: "Your driver is two minutes away",
  body:  "Tap to see the live map.",
  data:  { ride_id: "ride_2891" },
}).safe();

// ...or by user_id — we fan out to every opted-in device.
await bird.push.send({
  to:    { user_id: "usr_4hQ2m" },
  title: "Your code is 482917",
  body:  "Enter it on the login screen.",
  data:  { kind: "otp" },
});

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

5 Minuten von npm install bis zum ersten Versand

Senden Sie eine Benachrichtigung in der Sprache, die Sie bereits verwenden.

SDKs für jede gängige Laufzeitumgebung. Registrieren Sie ein Token über Ihren mobilen oder Web-Client; senden Sie per Token oder per user_id von Ihrem Backend.

1
2
3
4
5
6
7
8
9
10
import { BirdClient } from "@messagebird/sdk";

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

const { data, error } = await bird.push.send({
  to:    "token_aPa91Hb",
  title: "Hello",
  body:  "From Bird Push",
  data:  { kind: "demo" },
}).safe();

Zehn Primitive, die APNs und FCM in einen Endpunkt verwandeln.

Real APNs and FCM under the hood. No third-party push aggregator in the middle. We just hide the platform quirks behind one shape.

  1. 01

    iOS, Android und Web mit einem Aufruf

    Ein bird.push.send. Wir verteilen an APNs, FCM und das W3C Push Protocol pro registriertem Gerät.

  2. 02

    Token-Management-Abstraktion

    Registrieren Sie ein Token mit bird.push.tokens.register. Wir tracken Plattform, Sprache und letzten Zugriff – damit Sie es nicht müssen.

  3. 03

    Versand per Token oder per user_id

    Adressieren Sie ein einzelnes Gerät oder übergeben Sie { user_id } – wir verteilen die Nachricht an alle Geräte mit Opt-in.

  4. 04

    Gerätespezifischer Opt-in-Status

    Jedes registrierte Token hat seinen eigenen Opt-in-Status. Widerrufen Sie eines, ohne die anderen zu beeinflussen.

  5. 05

    Native Rich-Payloads

    Title, body, image, action buttons, deep-link URL, custom data: mapped to APNs alert and FCM notification correctly.

  6. 06

    Stille / Hintergrund-Benachrichtigungen

    Übergeben Sie content_available: true und wir routen korrekt über APNs-Background und FCM-Data-only – je nach Plattform.

  7. 07

    Segment-Targeting

    Taggen Sie Nutzer bei der Registrierung; adressieren Sie per Tag über bird.push.send. Keine Drittanbieter-CDP-Integration erforderlich.

  8. 08

    Zustellungs- und Öffnungsbestätigungen

    Events für push.delivered, push.opened, push.dismissed. Derselbe HMAC-Envelope wie bei jedem anderen Kanal.

  9. 09

    Token-Lifecycle automatisch verwaltet

    Wenn APNs / FCM ein nicht registriertes Token zurückgibt, markieren wir es als inaktiv und stoppen den Versand. Kein manuelles Aufräumen.

  10. 10

    Gleiche Authentifizierung, gleicher Error-Envelope

    Ein API-Key für Push, SMS, Email, WhatsApp, Voice. Ein einheitliches Fehlertyp-Register für alle.

Warum wir Push entwickeln

Weil Push nicht bei einem anderen Anbieter leben sollte als Ihre SMS, Ihre E-Mails und Ihre Verifizierungen.

Every product team ends up with the same stack: APNs for iOS, FCM for Android, a service worker for web, and a database table tracking which user has which tokens with which opt-in state. We built that table, then we built it again, then we exposed it as bird.push.tokens.register and bird.push.send. Same auth, same idempotency, same error envelope as Email and SMS, so the OTP that fails on push falls back to SMS in the same request.

push.ts
200 · 0.2s
import { BirdClient } from "@messagebird/sdk";

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

// Send by device token...
const { data, error } = await bird.push.send({
  to:    "token_aPa91Hb...XzQ",
  title: "Your driver is two minutes away",
  body:  "Tap to see the live map.",
  data:  { ride_id: "ride_2891" },
}).safe();

// ...or by user_id — we fan out to every opted-in device.
await bird.push.send({
  to:    { user_id: "usr_4hQ2m" },
  title: "Your code is 482917",
  body:  "Enter it on the login screen.",
  data:  { kind: "otp" },
});

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

Jede Statusänderung ist ein Webhook.

HMAC-signed payloads, replay-protected, idempotent. The same envelope on every Bird channel: learn one, you've learned them all.

POST /webhooks/bird
signed
{
  "type": "push.delivered",
  "id":   "evt_9pT81y...",
  "created_at": "2026-05-19T15:42:01.221Z",
  "data": {
    "push_id":   "push_2nQ81oP3",
    "user_id":   "usr_4hQ2m",
    "platform":  "ios",
    "device":    "iPhone15,2",
    "latency_ms": 218
  }
}

Retry-Intervalle: 5s, 30s, 5m, 30m, 2h, 6h, 12h. Dead-Letter nach dem letzten Versuch; jedes Dead-Letter-Event kann über das Dashboard oder die API erneut abgespielt werden.

  • push.queuedVon der API akzeptiert und zum Versand in die Warteschlange gestellt.
  • push.sentAn APNs / FCM / W3C Push Server übergeben.
  • push.deliveredProvider confirmed delivery to the device (when available: APNs is best-effort).
  • push.openedNutzer hat auf die Benachrichtigung getippt (wenn Ihre App dies instrumentiert).
  • push.dismissedNutzer hat die Benachrichtigung ohne Öffnen geschlossen (wenn Ihre App dies instrumentiert).
  • push.failedPermanenter Fehler (Token nicht registriert, App entfernt). Das Token wird automatisch deaktiviert.

Wenn Sie SMS integriert haben, haben Sie auch Push integriert.

Same auth, same idempotency contract, same error envelope, same webhook shape. The difference is the transport, not how you call it.

Push.

push
await bird.push.send({
  to:    { user_id: "usr_4hQ2m" },
  title: "Your code",
  body:  `Code: ${code}`,
});

Ein Aufruf. Wir verteilen an jedes Gerät des Nutzers mit Opt-in – über APNs, FCM und Web.

SMS.

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

Same envelope, same idempotency contract. Fall back when push fails, or address SMS directly.

0,0005 $ pro Benachrichtigung, jede Plattform.

Abrechnung pro zugestellter Benachrichtigung. Gleicher Preis auf iOS, Android und Web. APNs und FCM sind upstream kostenlos, daher berechnen wir das Routing und das Dashboard, nicht den Transport. Mengenrabatte greifen automatisch ab 10 Mio./Monat.

Starten Sie mit einem Kanal.
Fügen Sie die anderen hinzu, wenn Sie bereit sind.

Ein Test-API-Key steht Ihnen sofort zur Verfügung. Der Produktivzugang wird freigeschaltet, sobald Sie eine Zahlungsmethode hinzufügen und einen Absender verifizieren.

Sie nutzen Claude Code, Cursor oder Codex? Kopieren Sie einen Setup-Prompt und Ihr Agent installiert die Bird CLI und Skills für Sie. Wählen Sie Ihren:

Cursor