WABridges

Your WhatsApp
number is now
a REST API.

Scan a QR, get an API. Messages in via webhook, replies out in one call. We keep it online 24/7. No Meta approval, no templates.

Start free trial
Any languageReal-time webhooksOnline 24/7
You build
Your app
any language,
any stack
We run
Bridge
session, REST,
webhooks
They use
WhatsApp
a real number,
any phone
INwebhook → your URL
{ "from": "15550123456",
  "body": "is my order shipped?" }
OUTPOST /send/text
{ "chat": "15550123456",
  "body": "Yes! Arrives Thu 📦" }
Meta Business approval2–4 weeks
Pre-approved templates onlyno free-form
24-hour reply windowbot goes mute
Per-conversation feeschatty bots pay
Pair a number, you're live~60s

Why WABridges exists

WhatsApp, without
the gatekeepers.

The official API was built for templated marketing blasts: weeks of approval, pre-approved templates, a 24-hour reply window, per-conversation fees. We run the WhatsApp side instead: a hosted session with a webhook and a REST API in front of it.

We handle
  • Pairing, QR and codes
  • Session and reconnects
  • Uptime, around the clock
  • Inbound webhooks
  • Media in and out
  • The send API
You handle
  • Your app
  • Your logic
  • Your data

Any language, any framework, any model. If it can receive a POST and make one, it works.

Not a developer? Set this up without code →

The loop

Webhook in.
Reply out.

A message arrives as JSON at your URL. Your code decides the answer. You POST it back. That's the whole integration, in any language.

Hear everythingMessages, media, voice notes, calls, read receipts and presence, all as webhook events.
Say anythingText, images, files, audio, polls, reactions, locations. One endpoint each.
Let your AI write itDocs ship as llms-full.txt and OpenAPI. Paste into Claude or Cursor, describe the bot, done.
Read the API docs →
// 1. WhatsApp message → your webhook
app.post("/hook", async (req, res) => {
  const { from, body } = req.body;

  // 2. your logic: a lookup, a model, anything
  const reply = await handle(body, { user: from });

  // 3. reply on WhatsApp
  await fetch(`${BASE}/send/text`, {
    method: "POST",
    headers: { Authorization: `Bearer ${KEY}` },
    body: JSON.stringify({ chat: from, body: reply }),
  });
  res.sendStatus(200);
});

How it works

Scan. Paired. Live.

Each number you connect gets a bridge: a hosted WhatsApp session we keep online for you. Your app talks to it over REST. WhatsApp just sees a linked device.

1
Create a bridge
Dashboard or one API call

Running and ready to pair immediately. Point the webhook at your app and every message will land there.

POST /api/instances
{ "customer_ref": "user-123",
  "webhook_url":
    "https://you.app/hook" }
2
Pair a number
Scan a QR or use a pairing code

The session persists across restarts. If WhatsApp drops it, your webhook hears about it and a re-scan brings the same bridge back.

Link a deviceWhatsApp › Linked devices › Link a device. Any number works, personal or business.0:58 to live
You reply
Webhooks in, REST out

Every inbound message hits your webhook. Your code decides the answer and sends it back in one call. Full technical walkthrough →

POST …/proxy/send/text
{ "chat": "15559876543",
  "body": "Arrives Thu 📦" }
← { "status": "sent" }

Recipes

What people build.
Pick one, ship it.

Each guide is a working loop you can paste into your stack. All of them are the same three calls underneath.

Building an agent? Start with the Claude guide above. All guides →

Pricing

Unlimited replies.
One flat price.

Chatty apps and bots send a lot, and per-conversation pricing punishes exactly that. Here every number is a flat fee with unlimited messages in and out. Your first bridge is free for 7 days: a card goes on file, nothing is charged until the trial ends. Cancel anytime and unused days are refunded.

If WhatsApp drops the session: your webhook gets a disconnected event, you re-scan the QR, and the same bridge is back in about a minute. Same API key, same webhooks. What if the number gets banned?

$5
per WhatsApp number / month
  • 7-day free trial, $0 until it ends
  • Unlimited messages, in and out
  • Real-time webhooks included
  • Only running bridges are billed
  • Prorated refund on cancel
Start free trial