Messaging-Gateway-API
Eine API für jeden Messaging-Kanal
Senden Sie WhatsApp-Business-, SMS-, Telegram-, Messenger-, Instagram- und TikTok-Nachrichten über einen einzigen REST-Endpunkt. Prepaid, abgerechnet pro ausgehender Nachricht, mit Zustell-Webhooks und Testmodus.
- Ab
- 0,0003 $
- pro ausgehender Nachricht
- Bei Registrierung
- 100
- kostenlose Nachrichten
- Vertragsbindung
- Keine
- Prepaid, ohne Vertrag
curl https://api.omnimessage.co/v1/messages \
-H "Authorization: Bearer om_live_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-1042-shipped" \
-d '{
"channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
"to": "+971501234567",
"type": "text",
"text": { "body": "Your order #1042 has shipped." },
"reference": "order-1042"
}'{
"id": "msg_2b1Xw9aQ3rT8yU0pL4kZ",
"object": "message",
"mode": "live",
"channel_id": "ch_7Hq2mN5vB8cX1zL0pK3j",
"channel_type": "whatsapp",
"direction": "outbound",
"to": "+971501234567",
"from": "+971800123456",
"type": "text",
"content": {
"text": { "body": "Your order #1042 has shipped." }
},
"status": "queued",
"error": null,
"reference": "order-1042",
"metadata": {},
"billing": {
"source": "wallet",
"amount_micros": 1000,
"package_grant_id": null,
"refunded": false
},
"created_at": "2026-10-05T09:30:00.000Z",
"sent_at": null,
"delivered_at": null,
"read_at": null,
"failed_at": null
}Kanäle
Sieben Kanaltypen, ein Request-Format
Verbinden Sie die Absender, die Sie bereits besitzen. Jeder wird zu einer Kanal-ID, die Sie an denselben Endpunkt übergeben, und jeder meldet dieselben Status zurück.
- 0,001 $WhatsApp BusinessVorlagen, interaktive Nachrichten und Medien auf Ihrer eigenen Cloud-API-Nummer.Text · Anhänge · Vorlage · Antwort-Buttons · Liste · URL-Button · Standort · Kontakte
- 0,0005 $SMSText- und Mediennachrichten von Ihrer eigenen Twilio-Nummer.Text · Anhänge
- 0,0005 $SMS OTPEine reine Textroute für Einmalcodes.Text
- 0,0003 $TelegramBot-Nachrichten mit Buttons, Umfragen, Standorten und Medien.Text · Anhänge · Antwort-Buttons · Standort · Kontakte · Umfrage
- 0,0005 $MessengerUnterhaltungen mit Personen, die Ihrer Facebook-Seite schreiben.Text · Anhänge · Antwort-Buttons
- 0,0005 $InstagramDirektnachrichten für ein professionelles Instagram-Konto.Text · Anhänge · Antwort-Buttons
- 0,0005 $TikTokDirektnachrichten für ein TikTok-Business-Konto.Text · Anhänge · Antwort-Buttons
- Ihre eigenen KanäleIhre Nummern und Bots bleiben IhreWas jeder Kanal voraussetzt
So funktioniert es
In vier Schritten von der Registrierung zur zugestellten Nachricht
Kein Vertriebsgespräch, keine Mindestabnahme. Ihren ersten API-Aufruf im Testmodus können Sie eine Minute nach dem Erstellen des Kontos absetzen.
- Schritt 01
Konto erstellen
Registrieren Sie sich, bestätigen Sie Ihre E-Mail-Adresse und erstellen Sie in der Konsole einen API-Schlüssel. Testschlüssel funktionieren sofort, noch bevor ein Kanal verbunden ist.
- Schritt 02
Kanal verbinden
Melden Sie sich in der Konsole mit Facebook oder TikTok an, um eine WhatsApp-Nummer, eine Seite oder ein Business-Konto zu verbinden. Einen Telegram-Bot oder eine Twilio-Nummer fügen Sie mit den zugehörigen Zugangsdaten hinzu, in der Konsole oder mit
POST /v1/channels. - Schritt 03
Über einen Endpunkt senden
POST /v1/messageserwartet eine Kanal-ID, einen Empfänger und ein typisiertes Inhaltsobjekt. Das Request-Format ist auf jedem Kanal dasselbe. - Schritt 04
Jede Zustellung nachverfolgen
Signierte Webhooks melden die Status gesendet, zugestellt, gelesen und fehlgeschlagen. Denselben Verlauf finden Sie in der Konsole und unter
GET /v1/messages.
Nachrichtentypen
Was Sie senden, ist, was ankommt
Jede Nachricht hat einen Typ und ein Inhaltsobjekt unter dem Schlüssel dieses Typs. Wählen Sie einen aus, um den Request-Body neben der Nachricht zu sehen, die er erzeugt.
{
"channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
"to": "+971501234567",
"type": "text",
"text": {
"body": "Ihre Bestellung #1042 wurde versandt. Verfolgen Sie sie unter https://example.com/t/1042",
"preview_url": true
},
"reference": "order-1042"
}Reiner Text, den jeder Kanaltyp akzeptiert. Setzen Sie preview_url, damit der Kanal eine Linkvorschau anzeigt.
KanäleWhatsApp Business, SMS, SMS OTP, Telegram, Messenger, Instagram und TikTok
Konsole
Eine Konsole für alles, was kein Code ist
Schlüssel erstellen, Kanäle verbinden, das Nachrichtenprotokoll durchsuchen, Webhook-Zustellungen wiederholen und die Abrechnung verwalten. Alles, was die Konsole zeigt, ist auch über die API verfügbar.
Preise
Pro Nachricht zahlen oder Nachrichten im Paket kaufen
Laden Sie ein Prepaid-Wallet ab 10 $ auf und zahlen Sie den Preis pro Nachricht des jeweiligen Kanals, oder kaufen Sie ein Paket mit Nachrichten-Credits für das Volumen auf Ihren teuersten Kanälen.
10.000 Nachrichten
8 $
0,0008 $ pro Nachricht
- 10.000 ausgehende Nachrichten
- Ab Kauf 3 Monate gültig
- Gültig für jeden Kanaltyp
100.000 Nachrichten
Empfohlen60 $
0,0006 $ pro Nachricht
- 100.000 ausgehende Nachrichten
- Ab Kauf 6 Monate gültig
- Gültig für jeden Kanaltyp
1 Mio. Nachrichten
400 $
0,0004 $ pro Nachricht
- 1.000.000 ausgehende Nachrichten
- Ab Kauf 12 Monate gültig
- Gültig für jeden Kanaltyp
Pay-as-you-go
| Kanal | Pro Nachricht |
|---|---|
| WhatsApp Business | 0,001 $ |
| Telegram | 0,0003 $ |
| SMS | 0,0005 $ |
| SMS OTP | 0,0005 $ |
| Messenger | 0,0005 $ |
| 0,0005 $ | |
| TikTok | 0,0005 $ |
Was der Preis abdeckt
- AbgerechnetAusgehende Nachrichten, die die API annimmt, im Moment der Annahme.
- KostenlosEingehende Nachrichten, Nachrichten im Testmodus, Webhooks und die Konsole.
- ErstattetJede Nachricht, die als fehlgeschlagen endet, zurück in das Paket oder Wallet, aus dem sie bezahlt wurde.
- SeparatGebühren, die Meta, Netzbetreiber oder andere Anbieter für den Kanal selbst erheben.
Developer Experience
Gebaut, um einmal integriert zu werden und dann einfach zu laufen
Signierte Webhooks, sichere Wiederholungen, eine Sandbox, die sich wie die Produktion verhält, und Fehler, auf die Ihr Code gezielt reagieren kann.
Webhooks, die Sie verifizieren können
Jede Zustellung wird mit HMAC-SHA256 über den Zeitstempel und den rohen Body signiert, im Header OmniMessage-Signature. Antworten Sie innerhalb von 10 Sekunden mit einem beliebigen 2xx-Status. Fehlgeschlagene Zustellungen werden achtmal mit Backoff wiederholt, von 30 Sekunden bis zu 24 Stunden.
import { createHmac, timingSafeEqual } from 'node:crypto';
// header is "t=<unix seconds>,v1=<hex hmac-sha256>"
export function verifySignature(rawBody, header, secret) {
const parts = header.split(',').map((part) => part.split('='));
const { t, v1 = '' } = Object.fromEntries(parts);
const expected = createHmac('sha256', secret)
.update(`${t}.${rawBody}`)
.digest('hex');
const fresh = Math.abs(Date.now() / 1000 - Number(t)) < 300;
const matches =
v1.length === expected.length &&
timingSafeEqual(Buffer.from(v1), Buffer.from(expected));
return fresh && matches;
}{
"id": "evt_8Kd2pQ7wN4xB1zR6mT3c",
"object": "event",
"type": "message.delivered",
"mode": "live",
"created_at": "2026-10-05T09:30:02.900Z",
"data": {
"object": {
"id": "msg_2b1Xw9aQ3rT8yU0pL4kZ",
"object": "message",
"status": "delivered",
"reference": "order-1042",
"delivered_at": "2026-10-05T09:30:02.871Z"
}
}
}Ein Testmodus, der nichts kostet
Testschlüssel nutzen integrierte Sandbox-Kanäle; es gibt also nichts zu verbinden. Die letzten Ziffern des Empfängers bestimmen das simulierte Ergebnis, und Ihre Webhooks werden wie in der Produktion ausgelöst.
curl https://api.omnimessage.co/v1/messages \
-H "Authorization: Bearer om_test_..." \
-H "Content-Type: application/json" \
-d '{
"channel": "ch_test_whatsapp",
"to": "+971501230002",
"type": "text",
"text": { "body": "Hello from the sandbox" }
}'Fehler mit Typ und Code
Jede Antwort außerhalb von 2xx hat denselben Body: einen type für die Fehlerklasse, einen stabilen code für Fallunterscheidungen, gegebenenfalls den betroffenen param und eine request_id für den Support.
{
"error": {
"type": "billing_error",
"code": "insufficient_balance",
"message": "Not enough wallet balance or package credits.",
"request_id": "req_5Vn1cH8jL3qW6yD9sF2k",
"doc_url": "https://omnimessage.co/docs/errors#insufficient_balance"
}
}Idempotente POSTs
Senden Sie einen
Idempotency-Key-Header, und eine Wiederholung innerhalb von 24 Stunden liefert die gespeicherte Antwort mitIdempotent-Replayed: true, ohne doppelt zu senden oder abzurechnen.Vorhersehbare Limits
100 Anfragen pro Sekunde und Schlüssel auf
POST /v1/messages, sonst 20. Jede Antwort enthältRateLimit-Remaining, und eine 429 enthältRetry-After.Batch-Versand
POST /v1/messages/batchnimmt bis zu 100 Nachrichten entgegen. Jedes Element wird einzeln angenommen, abgelehnt und abgerechnet, und die 207-Antwort meldet sie nach Index.Schlüssel mit Scopes
Geben Sie jedem Schlüssel nur die Scopes, die er braucht, etwa
messages:writeoderbilling:read, und beschränken Sie ihn auf eine IP-Allowlist.
Fragen
Bevor Sie integrieren
Hier die kurzen Antworten. Die langen stehen in der Dokumentation.
Brauche ich eine eigene WhatsApp-Nummer, einen eigenen Bot oder eine eigene SMS-Nummer?
Ja. OmniMessage ist ein Gateway, zu dem Sie Ihre eigenen Kanäle mitbringen: Sie verbinden Ihre eigene WhatsApp-Cloud-API-Nummer, Ihren Telegram-Bot, Ihre Twilio-Nummer oder Ihr Social-Media-Konto und bleiben deren Inhaber. Die Kanalseite führt auf, was jeder Typ voraussetzt.
Wofür genau wird mir etwas berechnet?
Eine Belastung pro ausgehender Nachricht, die die API annimmt: ein Paket-Credit, wenn Sie einen haben, andernfalls der Preis pro Nachricht des Kanaltyps aus Ihrem Wallet. Eingehende Nachrichten und Nachrichten im Testmodus sind kostenlos, und eine Nachricht, die als fehlgeschlagen endet, wird automatisch erstattet.
Sind Gebühren von Meta, Netzbetreibern oder Anbietern enthalten?
Nein. Die Gateway-Gebühr deckt die API, die Zustellverfolgung, Webhooks und die Konsole ab. Gebühren, die Meta, Twilio oder ein anderer Anbieter für den Kanal selbst erheben, bleiben eine Sache zwischen Ihnen und diesem Anbieter.
Wie teste ich, ohne echte Nachrichten zu senden?
Verwenden Sie einen Schlüssel, der mit om_test_ beginnt. Jedes Konto hat pro Typ einen Sandbox-Kanal, etwa ch_test_whatsapp. Nichts wird zugestellt oder abgerechnet, und Status werden simuliert: Ein Empfänger, der auf 0000 endet, schlägt fehl, 0001 bleibt bei gesendet, 0002 wird zusätzlich gelesen, und alles andere wird innerhalb von etwa zwei Sekunden zugestellt.
Was passiert, wenn mein Guthaben aufgebraucht ist?
Die API antwortet mit 402 insufficient_balance, und nichts wird in die Warteschlange gestellt; Sie schulden also nie nachträglich Geld. Sie können das Ereignis balance.low abonnieren oder die automatische Aufladung aktivieren, damit das Wallet aufgeladen wird, sobald es unter einen von Ihnen gewählten Schwellenwert fällt.
Brauche ich ein SDK?
Nein. Die API ist JSON über HTTPS mit Bearer-Authentifizierung, daher funktioniert jeder HTTP-Client. Die Dokumentation enthält Beispiele in cURL, Node, Python und PHP.
Senden Sie Ihre erste Nachricht noch heute im Testmodus
Erstellen Sie ein Konto, kopieren Sie einen Testschlüssel und rufen Sie die API auf, bevor Sie auch nur einen Kanal verbinden. Jedes neue Konto startet mit 100 kostenlosen Nachrichten.