The operating platform for WhatsApp Business
Wabi connects your own WhatsApp Business Account to Meta's Cloud API and runs everything around it: managed webhooks, a live team inbox, localized templates through Meta approval, and AI agents that answer routine questions with sources and hand the rest to your team.
For support teams, SaaS products and operators who talk to customers on WhatsApp, and the developers and agents who automate it.
Free plan, no card. Meta bills its own message fees to your account, at cost; we never mark them up.
The problem
Meta's APIs are powerful. Running a business on them is a project.
The Cloud API sends and receives messages. Everything a team needs around it, you build and operate yourself.
How it works
From a sandbox number to a live support line
- 1
Start in the sandbox, connect your number
Every organization gets a simulated number to try everything. When you are ready, connect your own WhatsApp Business Account with Meta's Embedded Signup or with a WABA id and system-user token.
- 2
Messages flow into a live inbox
Wabi subscribes to your account's webhooks, verifies, stores and deduplicates every event, and updates the inbox in real time with delivery and read receipts.
- 3
Templates localized and approved
Write a template once, generate each language with AI, review it, submit every locale to Meta and track each approval, rejection and quality change.
- 4
An AI agent takes the routine
It answers from your knowledge sources with citations, calls the tools you allow, and hands a conversation to your team with a summary when it should not answer.
Sandbox
Try everything before Meta approves anything
Meta's business verification and app review take days. The sandbox number works the minute you sign in, and behaves the way Meta does.
- Sends report sent, delivered and read within seconds, with Meta-style pricing estimates.
- Test customers write back, so the inbox, agents and your webhooks see real inbound traffic.
- New templates are reviewed after about a minute: approved, or rejected with a reason.
- Numbers ending in 0000 fail like an undeliverable WhatsApp number, to test your error handling.
npx @meterapp/wabi login # browser sign-in, saves an API keynpx @meterapp/wabi get_sandbox # your simulated number and test customersnpx @meterapp/wabi simulate_inbound_message --text "Hi, where is my order?"npx @meterapp/wabi get_onboarding # what is left to set up, and howWhat you get
Everything around the Cloud API, in one place
One data model underneath: every message, contact, template, agent session and cost belongs to the same conversation history.
AI agents
Agents that cite their sources and know when to stop
Deploy a support agent on any number. Every turn is traced, so you can see what it read, what it called, what it said and what it cost.
Everything is an API
52 operations, every one on REST, MCP and the CLI
Every action in the dashboard is an op with one schema, served as REST, as an MCP tool and as a CLI command. Your backend, your scripts and your coding agent use the same API your team clicks through.
curl -X POST https://getwabi.dev/api/v1/simulate_inbound_message \ -H "Authorization: Bearer wabi_…" \ -H "Content-Type: application/json" \ -d '{"text":"Hi, where is my order?"}'claude mcp add --transport http wabi https://getwabi.dev/api/mcpnpx @meterapp/wabi login # browser sign-in, saves an API keynpx @meterapp/wabi get_sandbox # your simulated number and test customersnpx @meterapp/wabi simulate_inbound_message --text "Hi, where is my order?"npx @meterapp/wabi get_onboarding # what is left to set up, and how{ "id": "evt_01JB7X4Q2W9N3K5R8T6Y", "type": "message.received", "occurred_at": "2026-10-23T09:41:07.000Z", "org_id": "6f1c2e0a-4b7d-4c2e-9a51-0d3b8e7f9a10", "subject": { "type": "conversation", "id": "0b8d4e2c-1f3a-4a57-9c6e-2d7f5b1a8e90" }, "data": { "message_id": "4c2f9a1e-7d3b-4e8a-b5c6-1a2d3e4f5a6b", "wamid": "wamid.HBgLMTU1NTAxMDAwMDEVAgASGBQzQTk…", "phone_number_id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d", "contact": { "id": "3e2d1c0b-9a8f-4e7d-b6c5-a4b3c2d1e0f9", "wa_id": "15550100001", "name": "Sandbox customer" }, "type": "text", "text": "Hi, where is my order?", "window_expires_at": "2026-10-24T09:41:07.000Z" }}The simulated number every organization gets, for trying everything before Meta.
Settings, onboarding and the activity log.
Members, teams, resource sharing and the audit log.
Organization keys for your backend, the CLI, MCP and CI.
Plans, prices, checkout links, the budget cap and the subscription.
Request features, report issues and upvote what matters to you.
Machine-readable: llms.txt, OpenAPI 3.1 and the API reference, all generated from the same registry.
Pricing
Pay for what the platform does, never a markup on Meta
Plans include messages and AI replies. Meta's own per-message fees go on your WhatsApp Business Account's bill from Meta, exactly as Meta charges them.
FAQ
Questions teams ask first
Wabi is a platform for running WhatsApp Business on Meta's Cloud API: it hosts the webhooks, keeps every conversation in a live team inbox, localizes templates and tracks their Meta approval, runs AI support agents with traces, and estimates usage and Meta costs. Everything is also available through a REST API, an MCP server and a CLI.
Yes, to message real customers. Wabi works with your own WhatsApp Business Account (WABA), so the phone numbers, the customer relationships and the Meta assets stay yours. You can disconnect at any time. Until you connect one, use the sandbox number.
You do, directly to Meta, through the payment method on your WhatsApp Business Account. Wabi never bills Meta's fees and never marks them up; it shows estimates from Meta's published rates so you can see what you spend. Our plans charge only for the platform: messages processed and AI replies.
A simulated WhatsApp number every organization gets on every plan. It behaves like Meta (sent, delivered and read receipts, customer replies, template review after about a minute, failure numbers ending in 0000) but nothing reaches real WhatsApp users and nothing is charged. Use it to try the inbox, agents, templates, webhooks, the CLI and MCP before Meta approves your account.
Embedded Signup is Meta's guided flow: you sign in with Facebook, pick or create your WhatsApp Business Account and number, and Wabi gets access in a few clicks. Manual connect takes a WABA id and a system-user access token from Meta Business Manager, for accounts you already run or when Embedded Signup is not available to you. Both end in the same place: webhooks subscribed and the number in your inbox.
Anthropic's Claude by default, configurable per agent. On Growth and above you can bring your own model key; replies on your key are not counted against your plan's AI replies. Template localization drafts are written by Claude too.
You do. Wabi processes your messages and contacts on your behalf; you can export them, disconnect your WhatsApp account without losing history, and delete your organization. History is kept 30 days on Free, a year on paid plans, and as agreed on Enterprise.
Yes. Every dashboard action is an op: POST /api/v1/{op} over REST, a tool on the MCP server at /api/mcp, and a command in the CLI (npx @meterapp/wabi). Customer webhooks send signed events to your own endpoints.
Free includes the sandbox, one live number, 1000 messages and 100 AI replies a month. Starter is $29, Growth $99 and Scale $299 a month, with more numbers, members, messages and AI replies. Past the allowance, paid plans pay $1 per 1,000 messages and $0.02 per AI reply up to a budget cap you set. Meta's fees are separate, billed by Meta at cost.
Send your first message in five minutes
Every organization gets a sandbox number. Sign in, message a test customer, watch the reply land in the inbox, then connect your own WhatsApp Business Account when you are ready.