Liigu sisu juurde

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"
  }'
202 Accepted
{
  "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
}
  • Kanalitüübid7 ühe lõpp-punkti taga
  • Sõnumitüübid9, tekstist interaktiivsete loenditeni
  • Hind alates0,0003 $ väljamineva sõnumi kohta
  • Päringulimiit100 päringut sekundis võtme kohta
  • Partii suurusKuni 100 sõnumit päringu kohta
  • Veebihaakide korduskatsed8, kasvava intervalliga 30 sekundist 24 tunnini
  • Idempotentsuse aken24 tundi
  • TestrežiimTasuta, kanalit pole vaja
  • Ebaõnnestunud sõnumidRaha tagastatakse automaatselt
  • Sissetulevad sõnumidTasuta

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.

  1. 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.

  2. 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.

  3. 03. samm

    Saada ühe lõpp-punkti kaudu

    POST /v1/messages võtab vastu kanali ID, adressaadi ja tüübitud sisuobjekti. Päringu kuju on igas kanalis sama.

  4. 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.

POST /v1/messages
{
  "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.

Ülevaade. Rahakoti saldo, allesjäänud paketikrediidid ja viimase 30 päeva väljaminev maht konto ja režiimi kaupa. Selle lehe vaated on joonistatud näidisandmetega.
Sõnumilogi. Filtreeri kanali, oleku, adressaadi või omaenda viite järgi ning ava mis tahes sõnum, et näha selle olekuajalugu ja seda, mis selle eest võeti.
Arveldus. Lae rahakotti, osta pakette, seadista automaatne laadimine ja laadi alla kviitungeid. Paketikrediidid näitavad, kui palju on alles ja millal need aeguvad.

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
Alusta paketiga 10 tuh

100 tuh sõnumit

Soovitatud

60 $

0,0006 $ sõnumi kohta

  • 100 000 väljaminevat sõnumit
  • Kehtib ostuhetkest 6 kuud
  • Kehtib kõigis kanalitüüpides
Alusta paketiga 100 tuh

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
Alusta paketiga 1 mln

Kasutuspõhine

Kasutuspõhine hind väljamineva sõnumi kohta kanalitüüpide kaupa, USA dollarites
KanalSõnumi kohta
WhatsApp Business0,001 $
SMS0,0005 $
SMS OTP0,0005 $
Telegram0,0003 $
Messenger0,0005 $
Instagram0,0005 $
TikTok0,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.

verify-signature.js
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;
}
Sündmus message.delivered
{
  "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.

Liivakastipäring, lõpeb olekuga „loetud“
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.

402 Payment Required
{
  "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-Key ja 24 tunni jooksul tehtud korduskatse tagastab salvestatud vastuse koos päisega Idempotent-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 on RateLimit-Remaining ja 429-vastuses Retry-After.

  • Partiisaatmine

    POST /v1/messages/batch võ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:write või billing: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.