API brány pro zprávy
Jedno API pro všechny komunikační kanály
Odesílejte zprávy přes WhatsApp Business, SMS, Telegram, Messenger, Instagram a TikTok jediným REST endpointem. Předplaceně, s účtováním za odchozí zprávu, s webhooky o doručení a testovacím režimem.
- Od
- 0,0003 $
- za odchozí zprávu
- Při registraci
- 100
- zpráv zdarma
- Závazek
- Žádný
- předplaceně, bez smlouvy
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ály
Sedm typů kanálů, jedna podoba požadavku
Připojte odesílatele, které už vlastníte. Z každého se stane ID kanálu, které předáváte stejnému endpointu, a každý hlásí zpět stejné stavy.
- 0,001 $WhatsApp BusinessŠablony, interaktivní zprávy a média na vlastním čísle Cloud API.Text · Přílohy · Šablona · Tlačítka odpovědí · Seznam · Tlačítko s URL · Poloha · Kontakty
- 0,0005 $SMSTextové a multimediální zprávy z vlastního čísla Twilio.Text · Přílohy
- 0,0005 $SMS OTPČistě textová trasa pro jednorázové kódy.Text
- 0,0003 $TelegramZprávy od bota s tlačítky, anketami, polohou a médii.Text · Přílohy · Tlačítka odpovědí · Poloha · Kontakty · Anketa
- 0,0005 $MessengerKonverzace s lidmi, kteří píšou vaší stránce na Facebooku.Text · Přílohy · Tlačítka odpovědí
- 0,0005 $InstagramSoukromé zprávy pro profesionální účet na Instagramu.Text · Přílohy · Tlačítka odpovědí
- 0,0005 $TikTokSoukromé zprávy pro firemní účet na TikToku.Text · Přílohy · Tlačítka odpovědí
- Přineste si vlastní kanálVaše čísla a boti zůstávají vašeCo jednotlivé kanály vyžadují
Jak to funguje
Od registrace k doručené zprávě ve čtyřech krocích
Žádný hovor s obchodníkem, žádný minimální závazek. První volání API v testovacím režimu zvládnete minutu po vytvoření účtu.
- Krok 01
Vytvořte si účet
Zaregistrujte se, ověřte e-mail a v konzoli vytvořte klíč API. Testovací klíče fungují okamžitě, ještě před připojením kanálu.
- Krok 02
Připojte kanál
Přihlaste se v konzoli přes Facebook nebo TikTok a připojte číslo WhatsApp, stránku nebo firemní účet. Bota na Telegramu nebo číslo Twilio přidejte pomocí přihlašovacích údajů, v konzoli nebo voláním
POST /v1/channels. - Krok 03
Odesílejte jedním endpointem
POST /v1/messagespřijímá ID kanálu, příjemce a typovaný objekt s obsahem. Podoba požadavku je na všech kanálech stejná. - Krok 04
Sledujte každé doručení
Podepsané webhooky hlásí stavy odesláno, doručeno, přečteno a selhalo. Stejnou historii najdete v konzoli i na
GET /v1/messages.
Typy zpráv
Co odešlete, to příjemce uvidí
Každá zpráva má typ a objekt s obsahem pod klíčem tohoto typu. Vyberte si některý a uvidíte tělo požadavku vedle zprávy, která z něj vznikne.
{
"channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
"to": "+971501234567",
"type": "text",
"text": {
"body": "Vaše objednávka #1042 byla odeslána. Sledovat ji můžete na https://example.com/t/1042",
"preview_url": true
},
"reference": "order-1042"
}Prostý text, který přijímají všechny typy kanálů. Nastavením preview_url umožníte kanálu zobrazit náhled odkazu.
KanályWhatsApp Business, SMS, SMS OTP, Telegram, Messenger, Instagram a TikTok
Konzole
Konzole pro všechno, co není kód
Vytvářejte klíče, připojujte kanály, hledejte v protokolu zpráv, opakujte doručení webhooků a spravujte fakturaci. Vše, co konzole zobrazuje, je dostupné i přes API.
Ceník
Plaťte za zprávu, nebo kupte zprávy ve velkém
Dobijte si předplacenou peněženku od 10 $ a plaťte cenu za zprávu podle kanálu, nebo si kupte balíček kreditů na zprávy pro větší objemy na svých nejdražších kanálech.
10 tis. zpráv
8 $
0,0008 $ za zprávu
- 10 000 odchozích zpráv
- Platí 3 měsíce od nákupu
- Platí pro všechny typy kanálů
100 tis. zpráv
Doporučujeme60 $
0,0006 $ za zprávu
- 100 000 odchozích zpráv
- Platí 6 měsíců od nákupu
- Platí pro všechny typy kanálů
1 mil. zpráv
400 $
0,0004 $ za zprávu
- 1 000 000 odchozích zpráv
- Platí 12 měsíců od nákupu
- Platí pro všechny typy kanálů
Průběžná platba
| Kanál | Za zprávu |
|---|---|
| WhatsApp Business | 0,001 $ |
| Telegram | 0,0003 $ |
| SMS | 0,0005 $ |
| SMS OTP | 0,0005 $ |
| Messenger | 0,0005 $ |
| 0,0005 $ | |
| TikTok | 0,0005 $ |
Co cena zahrnuje
- Účtuje seOdchozí zprávy přijaté rozhraním API, a to v okamžiku přijetí.
- ZdarmaPříchozí zprávy, zprávy v testovacím režimu, webhooky a konzole.
- Vrací seKaždá zpráva, která skončí jako neúspěšná, a to do balíčku nebo peněženky, odkud byla zaplacena.
- ZvlášťPoplatky, které si za samotný kanál účtuje Meta, operátoři nebo jiní poskytovatelé.
Pro vývojáře
Navrženo tak, abyste integrovali jednou a pak už na to nemuseli sahat
Podepsané webhooky, bezpečné opakování, sandbox, který se chová jako produkce, a chyby, podle kterých lze větvit kód.
Webhooky, které si můžete ověřit
Každé doručení je podepsáno pomocí HMAC-SHA256 nad časovým razítkem a nezpracovaným tělem, v hlavičce OmniMessage-Signature. Odpovězte libovolným kódem 2xx do 10 sekund. Neúspěšná doručení se opakují osmkrát s rostoucí prodlevou, od 30 sekund až po 24 hodin.
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"
}
}
}Testovací režim, který nic nestojí
Testovací klíče používají vestavěné sandboxové kanály, takže není co připojovat. O simulovaném výsledku rozhodují poslední číslice příjemce a vaše webhooky se spouštějí stejně jako v produkci.
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" }
}'Chyby s typem a kódem
Každá odpověď mimo 2xx má stejné tělo: type pro třídu selhání, stabilní code, podle kterého lze větvit, problematický param, pokud existuje, a request_id pro podporu.
{
"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"
}
}Idempotentní požadavky POST
Pošlete hlavičku
Idempotency-Keya opakovaný požadavek do 24 hodin vrátí uloženou odpověď sIdempotent-Replayed: true, aniž by se cokoli odeslalo nebo naúčtovalo dvakrát.Předvídatelné limity
100 požadavků za sekundu na klíč u
POST /v1/messages, jinde 20. Každá odpověď obsahujeRateLimit-Remaininga odpověď 429 obsahujeRetry-After.Dávkové odesílání
POST /v1/messages/batchpřijme až 100 zpráv. Každá položka se přijímá, odmítá a účtuje samostatně a odpověď 207 je uvádí podle indexu.Klíče s omezenými oprávněními
Každému klíči dejte jen oprávnění, která potřebuje, například
messages:writenebobilling:read, a omezte ho na seznam povolených IP adres.
Otázky
Než začnete s integrací
Krátké odpovědi. Ty dlouhé najdete v dokumentaci.
Potřebuji vlastní číslo WhatsApp, bota nebo číslo pro SMS?
Ano. OmniMessage je brána, ke které si přinášíte vlastní kanál: připojíte své číslo WhatsApp Cloud API, bota na Telegramu, číslo Twilio nebo účet na sociální síti a zůstáváte jeho vlastníkem. Na stránce kanálů najdete, co jednotlivé typy vyžadují.
Za co přesně platím?
Jedna platba za každou odchozí zprávu, kterou API přijme: kredit z balíčku, pokud nějaký máte, jinak cena za zprávu podle typu kanálu z vaší peněženky. Příchozí zprávy a zprávy v testovacím režimu jsou zdarma a zpráva, která skončí jako neúspěšná, se automaticky vrací.
Jsou v ceně poplatky společnosti Meta, operátorů nebo poskytovatelů?
Ne. Poplatek za bránu pokrývá API, sledování doručení, webhooky a konzoli. Poplatky, které si za samotný kanál účtuje Meta, Twilio nebo jiný poskytovatel, zůstávají mezi vámi a tímto poskytovatelem.
Jak mohu testovat bez odesílání skutečných zpráv?
Použijte klíč, který začíná na om_test_. Každý účet má pro každý typ jeden sandboxový kanál, například ch_test_whatsapp. Nic se nedoručuje ani neúčtuje a stavy jsou simulované: příjemce končící na 0000 selže, 0001 zůstane ve stavu odesláno, 0002 je navíc přečten a cokoli jiného je doručeno zhruba do dvou sekund.
Co se stane, když mi dojde zůstatek?
API odpoví 402 insufficient_balance a nic se nezařadí do fronty, takže nikdy nebudete zpětně nic dlužit. Můžete se přihlásit k odběru události balance.low nebo zapnout automatické dobíjení, které peněženku dobije, když klesne pod vámi zvolenou hranici.
Potřebuji SDK?
Ne. API používá JSON přes HTTPS s autentizací typu bearer, takže poslouží jakýkoli HTTP klient. Dokumentace obsahuje příklady v cURL, Node, Pythonu a PHP.
Odešlete první zprávu v testovacím režimu ještě dnes
Vytvořte si účet, zkopírujte testovací klíč a zavolejte API dřív, než připojíte jediný kanál. Každý nový účet dostane do začátku 100 zpráv zdarma.