Sõnumilüüsi API
Üks API kõigi sõnumikanalite jaoks
Saada WhatsApp Businessi, SMS-i, Telegrami, Messengeri, Instagrami ja TikToki sõnumeid ühe REST-lõpp-punkti kaudu. Ettemaksuga, arveldus väljamineva sõnumi kaupa, kohaletoimetamise veebihaagid ja testrežiim.
- Alates
- 0,0003 $
- väljamineva sõnumi kohta
- Registreerumisel
- 100
- tasuta sõnumit
- Kohustus
- Puudub
- ettemaks, lepingut pole
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
}Kanalid
Seitse kanalitüüpi, üks päringu kuju
Ühenda saatjad, mis sul juba olemas on. Igaühest saab kanali ID, mille edastad samale lõpp-punktile, ja igaüks annab tagasi samad olekud.
- 0,001 $WhatsApp BusinessMallid, interaktiivsed sõnumid ja meedia sinu enda Cloud API numbrilt.Tekst · Manused · Mall · Vastusenupud · Loend · URL-nupp · Asukoht · Kontaktid
- 0,0005 $SMSTeksti- ja meediasõnumid sinu enda Twilio numbrilt.Tekst · Manused
- 0,0005 $SMS OTPAinult tekstile mõeldud tee ühekordsete paroolide jaoks.Tekst
- 0,0003 $TelegramBotisõnumid nuppude, küsitluste, asukohtade ja meediaga.Tekst · Manused · Vastusenupud · Asukoht · Kontaktid · Küsitlus
- 0,0005 $MessengerVestlused inimestega, kes kirjutavad sinu Facebooki lehele.Tekst · Manused · Vastusenupud
- 0,0005 $InstagramOtsesõnumid Instagrami professionaalsele kontole.Tekst · Manused · Vastusenupud
- 0,0005 $TikTokOtsesõnumid TikToki ärikontole.Tekst · Manused · Vastusenupud
- Too oma kanalSinu numbrid ja botid jäävad sinu omaksVaata, mida iga kanal vajab
Kuidas see töötab
Registreerumisest kohale toimetatud sõnumini nelja sammuga
Müügikõnet ega miinimumkohustust pole. Esimese API-kutse saad testrežiimis teha minut pärast konto loomist.
- 01. samm
Loo konto
Registreeru, kinnita oma e-posti aadress ja loo konsoolis API võti. Testvõtmed töötavad kohe, enne kui ükski kanal on ühendatud.
- 02. samm
Ühenda kanal
Logi konsoolis sisse Facebooki või TikTokiga, et ühendada WhatsAppi number, leht või ärikonto. Telegrami boti või Twilio numbri saad lisada selle autentimisandmetega kas konsoolis või päringuga
POST /v1/channels. - 03. samm
Saada ühe lõpp-punkti kaudu
POST /v1/messagesvõtab vastu kanali ID, adressaadi ja tüübitud sisuobjekti. Päringu kuju on igas kanalis sama. - 04. samm
Jälgi iga kohaletoimetamist
Allkirjastatud veebihaagid annavad teada, kui sõnum on saadetud, kohale toimetatud, loetud või ebaõnnestunud. Sama ajalugu on näha konsoolis ja päringuga
GET /v1/messages.
Sõnumitüübid
Mida saadad, seda saaja ka näeb
Igal sõnumil on tüüp ja sisuobjekt selle tüübi nimelise võtme all. Vali tüüp, et näha päringu keha kõrvuti sõnumiga, mille see tekitab.
{
"channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
"to": "+971501234567",
"type": "text",
"text": {
"body": "Sinu tellimus #1042 on teele pandud. Jälgi seda aadressil https://example.com/t/1042",
"preview_url": true
},
"reference": "order-1042"
}Lihttekst, mille võtab vastu iga kanalitüüp. Määra preview_url, et kanal kuvaks lingi eelvaate.
KanalidWhatsApp Business, SMS, SMS OTP, Telegram, Messenger, Instagram ja TikTok
Konsool
Konsool kõige jaoks, mis ei ole kood
Loo võtmeid, ühenda kanaleid, otsi sõnumilogist, korda veebihaakide edastusi ja halda arveldust. Kõik, mida konsool näitab, on saadaval ka API kaudu.
Hinnad
Maksa sõnumi kaupa või osta sõnumeid hulgi
Lae ettemaksuga rahakotti alates 10 $ ja maksa iga kanali sõnumipõhist hinda või osta sõnumikrediitide pakett oma kõige kallimate kanalite mahu jaoks.
10 tuh sõnumit
8 $
0,0008 $ sõnumi kohta
- 10 000 väljaminevat sõnumit
- Kehtib ostuhetkest 3 kuud
- Kehtib kõigis kanalitüüpides
100 tuh sõnumit
Soovitatud60 $
0,0006 $ sõnumi kohta
- 100 000 väljaminevat sõnumit
- Kehtib ostuhetkest 6 kuud
- Kehtib kõigis kanalitüüpides
1 mln sõnumit
400 $
0,0004 $ sõnumi kohta
- 1 000 000 väljaminevat sõnumit
- Kehtib ostuhetkest 12 kuud
- Kehtib kõigis kanalitüüpides
Kasutuspõhine
| Kanal | Sõnumi kohta |
|---|---|
| WhatsApp Business | 0,001 $ |
| SMS | 0,0005 $ |
| SMS OTP | 0,0005 $ |
| Telegram | 0,0003 $ |
| Messenger | 0,0005 $ |
| 0,0005 $ | |
| TikTok | 0,0005 $ |
Mida hind katab
- TasulineAPI vastu võetud väljaminevad sõnumid, vastuvõtmise hetkel.
- TasutaSissetulevad sõnumid, testrežiimi sõnumid, veebihaagid ja konsool.
- TagastatakseIga ebaõnnestunuks jääv sõnum – tagasi paketti või rahakotti, kust tasu võeti.
- EraldiTasud, mida Meta, operaatorid või teised teenusepakkujad võtavad kanali enda eest.
Arendajakogemus
Loodud selleks, et integreerida üks kord ja rahule jätta
Allkirjastatud veebihaagid, ohutud korduskatsed, liivakast, mis käitub nagu töökeskkond, ja vead, mille järgi saad koodi hargnema panna.
Veebihaagid, mida saad kontrollida
Iga edastus allkirjastatakse HMAC-SHA256-ga üle ajatempli ja töötlemata keha ning allkiri on päises OmniMessage-Signature. Vasta 10 sekundi jooksul mis tahes 2xx-koodiga. Ebaõnnestunud edastusi proovitakse uuesti kaheksa korda kasvava intervalliga, 30 sekundist kuni 24 tunnini.
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"
}
}
}Testrežiim, mis ei maksa midagi
Testvõtmed kasutavad sisseehitatud liivakastikanaleid, seega pole vaja midagi ühendada. Adressaadi viimased numbrid määravad simuleeritud tulemuse ja sinu veebihaagid käivituvad nii, nagu töökeskkonnas.
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" }
}'Vead, millel on tüüp ja kood
Igal vastusel, mis pole 2xx, on sama keha: type tõrke liigi jaoks, stabiilne code, mille järgi hargneda, vea põhjustanud param, kui see on olemas, ja request_id toe jaoks.
{
"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"
}
}Idempotentsed POST-päringud
Saada päis
Idempotency-Keyja 24 tunni jooksul tehtud korduskatse tagastab salvestatud vastuse koos päisegaIdempotent-Replayed: true, ilma et midagi kaks korda saadetaks või arveldataks.Ettearvatavad piirangud
100 päringut sekundis võtme kohta lõpp-punktis
POST /v1/messages, mujal 20. Igas vastuses onRateLimit-Remainingja 429-vastusesRetry-After.Partiisaatmine
POST /v1/messages/batchvõtab vastu kuni 100 sõnumit. Iga kirje võetakse vastu, lükatakse tagasi ja arveldatakse eraldi ning 207-vastus esitab need indeksi järgi.Piiratud õigustega võtmed
Anna igale võtmele ainult need õigused, mida see vajab, näiteks
messages:writevõibilling:read, ja piira see lubatud IP-aadresside loendiga.
Küsimused
Enne integreerimist
Siin on lühikesed vastused. Pikad leiad dokumentatsioonist.
Kas mul on vaja oma WhatsAppi numbrit, botti või SMS-numbrit?
Jah. OmniMessage on lüüs, kuhu tood oma kanalid: ühendad oma WhatsApp Cloud API numbri, Telegrami boti, Twilio numbri või sotsiaalmeediakonto ja need jäävad sinu omandisse. Kanalite lehel on kirjas, mida iga tüüp vajab.
Mille eest täpselt tasu võetakse?
Üks tasu iga väljamineva sõnumi eest, mille API vastu võtab: paketikrediit, kui sul see on, muidu kanalitüübi sõnumipõhine hind sinu rahakotist. Sissetulevad sõnumid ja testrežiimi sõnumid on tasuta ning ebaõnnestunuks jääva sõnumi tasu tagastatakse automaatselt.
Kas Meta, operaatorite või teenusepakkujate tasud on hinna sees?
Ei. Lüüsitasu katab API, kohaletoimetamise jälgimise, veebihaagid ja konsooli. Tasud, mida Meta, Twilio või mõni teine teenusepakkuja võtab kanali enda eest, jäävad sinu ja selle teenusepakkuja vahele.
Kuidas testida ilma päris sõnumeid saatmata?
Kasuta võtit, mis algab märkidega om_test_. Igal kontol on iga tüübi jaoks liivakastikanal, näiteks ch_test_whatsapp. Midagi ei toimetata kohale ega arveldata ja olekud on simuleeritud: adressaat, mille lõpus on 0000, ebaõnnestub, 0001 jääb olekusse „saadetud“, 0002 märgitakse ka loetuks ja kõik muu toimetatakse kohale umbes kahe sekundiga.
Mis juhtub, kui mu saldo otsa saab?
API vastab 402 insufficient_balance ja midagi ei lisata järjekorda, nii et sa ei jää kunagi tagantjärele võlgu. Võid tellida sündmuse balance.low või lülitada sisse automaatse laadimise, mis laeb rahakotti, kui saldo langeb sinu valitud lävest allapoole.
Kas mul on vaja SDK-d?
Ei. API on JSON üle HTTPS-i koos bearer-autentimisega, seega sobib iga HTTP-klient. Dokumentatsioonis on näited cURL-i, Node’i, Pythoni ja PHP jaoks.
Saada oma esimene sõnum testrežiimis juba täna
Loo konto, kopeeri testvõti ja kutsu API-t enne, kui oled ühendanud ainsagi kanali. Iga uus konto saab alustuseks 100 tasuta sõnumit.