Every channel.
One silly-simple API.
Your users live in four different inboxes. Your code shouldn't have to. One key, one POST request — notify-gateway routes it to WhatsApp, Telegram, SMS or email and owns the delivery: queued, retried, tracked.
Free: 300 sends/month · no credit card · no SDK to install
The old way vs. the obvious way
😵 Four SDKs deep
- A different client library per channel
- Four credential sets in your .env
- Hand-rolled retry loops (that you wrote at 2am)
- Four error formats to parse
- "Did it send?" — nobody knows
😎 One POST request
- Plain HTTP + JSON, any language
- One ngw_ key for everything
- Retries & backoff handled by the gateway
- Errors that say exactly what to fix
- Status by ID, webhook on delivery
Pick a channel. Same two fields.
to + message — Bring your own numbers, bots and inboxes — we do the wiring.
Text + media through your own connected numbers.
POST /api/v1/whatsappTelegram
Your bots, your tokens. Markdown welcome.
POST /api/v1/telegramSMS
Plain text, international numbers.
POST /api/v1/smsGmail, Outlook, Yahoo presets or custom SMTP.
POST /api/v1/emailIntegrate in minutes
curl -X POST https://api.notifygw.com/api/v1/messages/send \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"channel": "whatsapp",
"to": "+5511999999999",
"message": { "text": "Your order #1234 has shipped!" }
}'Response
{
"message_id": "msg_abc123def456",
"status": "queued",
"channel": "whatsapp"
}Fire-and-forget,
minus the forget.
Persisted before 202
Your message hits a durable outbox before we even answer. A crash can't eat it.
Retried until it lands
Provider blips are retried with exponential backoff. Permanent failures are dead-lettered and reported — never silently dropped.
Tracked to the end
Query any message by ID, or get a signed webhook the moment it's delivered or failed.
Simple, transparent pricing
Pro
For growing projects
- 10,000 notifications/mo
- 3 connected numbers
- Webhook callbacks
- Delivery webhooks
- Email support
Scale
For high-volume senders
- 100,000 notifications/mo
- 10 connected numbers
- Priority support
- Multiple API keys
- Higher rate limits
Fair questions
Do I really not need an SDK?
Really. It's HTTP + JSON. If your language can make a POST request, you're done. That includes no-code tools — drop it into an n8n, Make or Zapier HTTP node.
Whose WhatsApp number / Telegram bot sends the message?
Yours. You connect your own WhatsApp numbers, Telegram bot tokens and email accounts as instances in the dashboard, then send through them with one API key.
What happens if delivery fails?
Transient failures retry automatically with exponential backoff. Permanent ones are marked failed and reported via API + webhook. Nothing is ever silently dropped.
What does the free plan include?
300 notifications a month across all four channels, with one connected number. No credit card. Upgrade only when you outgrow it.
Can I schedule a message for later?
Yes — add scheduled_for with an ISO-8601 timestamp to POST /messages/send and we'll deliver it on time.
Can my code retry without double-sending?
Yes. Pass an Idempotency-Key header — the same key is accepted exactly once per account, so retry storms become no-ops.

Your first notification is
one curl away.
Grab a free key, paste the request, watch your phone buzz.
Get my free API key
