Bring your own WhatsApp number

WhatsApp messages, without the ban risk

A REST API to send WhatsApp messages from your own number. Every send passes a trust and safety layer built to keep it alive: warmup ramps, health scoring, human pacing and automatic quarantine.

100 messages free for 14 days. No card required.

bash
curl -X POST https://api.wa-gateway.dev/v1/messages \
  -H "X-Api-Key: $WA_GATEWAY_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "to": "+201234567890", "body": "Your appointment is tomorrow at 3pm." }'
Trust & safety

The hard part isn't sending. It's not getting banned.

Anyone can push a message through an unofficial client. Keeping a number alive under real volume is the actual engineering problem, and it is what this gateway is built around.

Warmup ramps

A newly linked number starts at a low daily allowance and compounds toward full volume over two weeks. No cold number ever fires at full rate.

Health scoring

Every failure and disconnect moves a per-number score. Cross the threshold and the number is pulled from the pool automatically, before WhatsApp pulls it for you.

Human pacing

Sends are spaced by a randomized interval with a typing indicator sized to the message. A metronome-steady cadence is the easiest automation tell there is.

Recipient guards

Registry checks before sending, a per-recipient cooldown and daily cap, and automatic blocking when somebody replies STOP.

Number pooling

Traffic is distributed across your connected numbers by health and remaining headroom, so a struggling number sheds load instead of breaking.

Ban detection

A forbidden disconnect is treated as terminal. The number stops sending immediately and you get a webhook rather than a silent hole in delivery.

Live in an afternoon

01

Link your number

Scan a QR code in the dashboard. Your session credentials are encrypted at rest with AES-256-GCM.

02

Create an API key

Scope it to sending, reading, or both. Lock it to your server IPs and set a per-key rate limit.

03

Send a message

One endpoint. Pass a body or a named template. Delivery receipts and replies come back on webhooks.

Built to not lose messages

Durable by default

Sends go onto a persistent queue before they touch WhatsApp, so a deploy or a crash never drops a message. Retries use exponential backoff, and failures that can never succeed are failed fast instead of hammering your number.

  • ✓Idempotency keys so a retry storm sends one message
  • ✓Signed webhooks for delivery, replies and number health
  • ✓Delivery receipts tracked through to read
  • ✓Per-key scopes, IP allowlists and rate limits
webhook payload
POST /your/webhook
X-WA-Event: message.status
X-WA-Signature: t=1786406814,v1=8f3c...

{
  "id": "d5f1...",
  "event": "message.status",
  "data": {
    "messageId": "b71d...",
    "status": "delivered",
    "to": "201234567890"
  }
}

Ship WhatsApp sending this week

Link a number, grab a key, and make your first call in minutes.

Already have one? Sign in