# Wabi > Wabi runs your WhatsApp Business Account on Meta's Cloud API: managed webhooks, a live team inbox, localized templates, AI support agents with traces, and usage and cost analytics, from the dashboard, the REST API, MCP or the CLI. Bring your own WABA, pay Meta at cost. Wabi is made by Meter; the name is a working name. It is not affiliated with Meta. Customers bring their own WhatsApp Business Account (WABA): connect it with Meta's Embedded Signup or manually (WABA id + system-user token); every organization also gets a sandbox number that simulates Meta. Meta's message fees are billed by Meta to the WABA, at cost; Wabi never bills or marks them up. Every dashboard action is an op, available as REST (`POST https://getwabi.dev/api/v1/{op}`), as an MCP tool (https://getwabi.dev/api/mcp, streamable HTTP) and as a CLI command (`npx @meterapp/wabi `). Authenticate with `Authorization: Bearer wabi_…` (an organization API key, optionally scoped) or OAuth on the MCP endpoint. ## Docs - [Overview](https://getwabi.dev/docs): What Wabi is, its concepts and every way to drive it. - [Quickstart](https://getwabi.dev/docs/quickstart): Sign in, send from the sandbox number, answer in the inbox, connect your own number and wire up an API key, the CLI or MCP. - [Sandbox](https://getwabi.dev/docs/sandbox): The simulated WhatsApp number every organization gets: delivery and read receipts, auto replies, template review and failure numbers. - [REST API reference](https://getwabi.dev/docs/api): Every op, its input schema and a curl example, generated from the ops registry. - [MCP server](https://getwabi.dev/docs/mcp): Connect Claude Code, Codex, Cursor, ChatGPT and any MCP client to Wabi. - [CLI](https://getwabi.dev/docs/cli): Run any Wabi op from a terminal, a script or CI. - [Webhooks and events](https://getwabi.dev/docs/webhooks): The events you can subscribe to, how deliveries are signed, retried and logged. - [Errors](https://getwabi.dev/docs/errors): RFC 9457 problem responses and every error code the API returns. - [Organizations, roles and keys](https://getwabi.dev/docs/organizations): Members and roles, teams, sharing WhatsApp accounts and agents, and API key scopes. - [Feedback and reviews](https://getwabi.dev/docs/feedback): Request features, report issues with the failing request attached, upvote, comment and review, from the board, MCP, the CLI or REST. ## Machine-readable - [agents.md](https://getwabi.dev/agents.md): Concise guide for coding agents: auth, workflows, ops and rules. - [llms-full.txt](https://getwabi.dev/llms-full.txt): Everything in one file, including every op's JSON input schema. - [OpenAPI 3.1](https://getwabi.dev/openapi.json): Every op as POST /api/v1/{op}. - [Op catalog](https://getwabi.dev/api/v1): JSON list of every op with its input schema. - [Pricing document](https://getwabi.dev/api/v1/pricing): Plans, prices, allowances and checkout links as JSON. - [MCP server card](https://getwabi.dev/.well-known/mcp.json) - [OAuth protected resource metadata](https://getwabi.dev/.well-known/oauth-protected-resource) ## Pricing Units: messages: every inbound and outbound WhatsApp message the platform processes (sandbox messages are free). ai_replies: one AI agent turn that writes a customer message or a suggested reply on our model key (bring-your-own-key turns are free). Meta bills its own per-message fees to your WhatsApp Business Account directly. We show them at cost and never mark them up or bill them. Yearly is two months free (10x the monthly price). The full pricing document (JSON, no credential, the same shape on every Meter product): `GET https://getwabi.dev/api/v1/pricing`; MCP `get_pricing` (also on the no-auth catalog server https://getwabi.dev/api/mcp/catalog); CLI `npx @meterapp/wabi pricing --json`; human page: https://getwabi.dev/pricing. - Free (`free`): free. 1,000 messages and 100 AI replies a month; 1 live number(s) plus the sandbox, 2 members, 30-day history. For trying Wabi on one number. - Starter (`starter`): $29/month or $290/year. 10,000 messages and 1,000 AI replies a month; 1 live number(s) plus the sandbox, 5 members, 365-day history. For a small team answering customers on one number. Buy: https://getwabi.dev/checkout?plan=starter&ref=agent - Growth (`growth`): $99/month or $990/year. 50,000 messages and 5,000 AI replies a month; 3 live number(s) plus the sandbox, 15 members, 365-day history. For businesses automating support and outreach across numbers. Buy: https://getwabi.dev/checkout?plan=growth&ref=agent - Scale (`scale`): $299/month or $2,990/year. 250,000 messages and 25,000 AI replies a month; 10 live number(s) plus the sandbox, unlimited members, 365-day history. For operators running several brands, markets or locations. Buy: https://getwabi.dev/checkout?plan=scale&ref=agent - Enterprise (`enterprise`): custom. custom messages and custom AI replies a month; custom live number(s) plus the sandbox, unlimited members, custom history. For larger volumes, security reviews and custom terms. Overage: $1 per 1,000 messages and $0.02 per AI reply past the allowance, up to a monthly budget cap (default $58, 2x the plan price; change it on the billing page). Non-critical sends stop at the cap. Free: No overage: sends past the monthly allowance are refused until the next month or an upgrade. Buying a plan (never collect card details; the human pays on Stripe): - MCP `create_checkout_link`, CLI `wabi upgrade --plan growth [--yearly]`, REST `POST /api/v1/billing/checkout` return a Stripe Checkout URL for a human. Nothing is charged until they complete it. - Before signup: create_checkout_link needs no account: without a credential it returns a Stripe Checkout URL for a human. After paying they sign in to Wabi with the same email; the subscription attaches to their organization on return (or claim_checkout {session_id}). - With a saved card: subscribe {plan, interval, confirm: true} changes the plan on the organization's saved card, only after a human approved the price. - Account and invoices: get_billing_link (invoices, card, cancel); get_account (plan, usage, what the next plan adds). - Enterprise: Email jonathan@getwabi.dev. ## Sandbox Every organization has a simulated WhatsApp number on every plan, backed by a Meta simulator: nothing reaches real WhatsApp users, nothing is charged, and sandbox messages do not count against the plan. `get_sandbox` returns its account id, its phone number id (the sender), the test customers (15550100001, 15550100002, 15550100003, 15550100004, 15550100005) and the starter template `hello_world` (en_US, approved). Sends report sent at once, delivered after ~1 s and read after ~3 s; the test customer replies after ~5 s. `simulate_inbound_message` makes a test customer send any text, through the same pipeline as Meta traffic. Free-form text outside the 24-hour window fails with 131047, as on Meta. New templates are reviewed after ~60 s. Recipients ending in 0000 (e.g. 15550100000) fail with 131026. Guide: https://getwabi.dev/docs/sandbox. ## Ops ### Sandbox - `get_sandbox` (read): Get the sandbox. This organization's sandbox: a simulated WhatsApp number every organization gets, for trying messaging, templates, the inbox, AI agents and webhooks without Meta. - `simulate_inbound_message` (write): Simulate an inbound message. Make a sandbox test customer send a WhatsApp text to this organization's sandbox number, as if they typed it on their phone. ### Events - `list_events` (read): List events. The organization's event log, newest first: every platform event (message.received, message.sent, message.delivered, message.read, message.failed…) with its payload, subject, source and time. - `get_event` (read): Get event. One event from the organization's event log by id, with its payload and how each internal consumer handled it (done, failed with the error, dead after its retries). ### Organization - `get_organization` (read): Get organization. The organization this credential acts in: id, slug, name, default timezone and language (used by the inbox, reports and AI agents), and the caller's role. - `update_organization` (write): Update organization. Change the organization's name, default timezone (IANA, e.g. - `list_activity` (read): List activity. Every change made through the platform, newest first: who (a person, an API key, an AI agent, a worker), from which surface (dashboard, api, mcp, cli, worker, ai) and what. - `get_onboarding` (read): Get onboarding checklist. The organization's setup checklist, in order: send a message from the sandbox number, receive a reply, connect a live WhatsApp Business Account, get a template approved, deploy an AI agent, connect a developer surface (API key, MCP or CLI), invite a teammate. - `get_referral_stats` (read): Referral signups (staff). Wabi team only. - `get_profile` (read): Get my profile. Your own settings, the same in every organization: `locale`, the language the dashboard and every email to you are written in (one of en), or null when you never chose one (the dashboard then follows the browser, emails are English). - `update_profile` (write): Update my profile. Changes your own settings: `locale` (en) is the language of the dashboard and of every email Wabi sends you; null forgets it. ### Members and sharing - `list_members` (read): List members. Everyone in this organization with their email, role (owner, admin, member, viewer) and teams. - `list_invites` (read): List invites. Pending invitations to this organization (email, role, teams, who invited, when it expires). - `list_teams` (read): List teams. Teams in this organization with their members (maintainer or member) and the resources (WhatsApp accounts, AI agents) shared with each team. - `create_team` (write): Create team. Create a team (a group of members to share WhatsApp accounts and agents with, and to route conversations to). - `update_team` (write): Update team. Rename a team or change its description. - `delete_team` (write): Delete team. Delete a team. - `set_team_member` (write): Add to team. Add an organization member to a team, or change their team role (maintainer manages the team; member is in it). - `remove_team_member` (write): Remove from team. Take someone out of a team (they stay in the organization). - `list_resource_access` (read): List resource access. Who can see a shareable resource (a WhatsApp account or an AI agent): its visibility (org or restricted), its creator, and every grant to a team or person with its access (read, write, admin). - `set_resource_visibility` (write): Set resource visibility. org: every organization member sees the resource (viewers read, members write). - `share_resource` (write): Share resource. Give a team or a person read, write or admin access to a WhatsApp account or AI agent (replacing what that team or person had). - `unshare_resource` (write): Unshare resource. Remove a team's or person's grant on a WhatsApp account or AI agent. - `list_audit_log` (read): List audit log. Membership, role, team, invite, API key, billing, settings and sharing changes in this organization, newest first: who (a person, an API key, an OAuth client or the system), what, to what, and when. ### API keys - `list_api_keys` (read): List API keys. API keys of this organization (prefix only; the full key is shown once at creation), each with the role it acts with, its scopes and who created it. - `create_api_key` (write): Create API key. Create an organization API key for your backend, the CLI, an MCP host or CI. - `revoke_api_key` (write): Revoke API key. Revoke an API key immediately; every backend, CLI, CI job or MCP host using it stops working. ### Billing - `get_pricing` (read): Get pricing. The plans (Free, Starter, Growth, Scale, Enterprise): price {monthly, yearly} in USD, included messages and AI replies a month, limits (live numbers, WhatsApp accounts, members, agents, history days; null is unlimited), features, overage rates and the default budget cap, a checkout_url per paid plan, and how_to_buy. - `get_account` (read): Get account. Who this credential acts for and what it may use: the organization, your role in it (viewer, member, admin, owner) and whether you are a person, an OAuth client or an API key (acting_as, with the key's scopes), the plan in force (status, interval, renewal or end date, budget cap), usage this period against every limit (messages, AI replies, live numbers, members, agents) with what remains and the overage so far, and next_tier: what the next plan adds, its price and a checkout_url. - `get_billing` (read): Get billing. This organization's plan, subscription status, renewal or end date, budget cap, whether a card is saved (so subscribe can charge it), and usage this period against the plan (messages, AI replies, numbers, members, agents, overage so far). - `create_checkout_link` (write): Create checkout link. A Stripe Checkout URL where a human pays for a plan; hand it to them (or open it in their browser). - `subscribe` (write): Subscribe. Start or change this organization's paid plan in one call, charging the card already saved for the organization. - `cancel_subscription` (write): Cancel subscription. Cancel the paid plan at the end of the current period (no refund; the plan stays until then, then the organization is on Free). - `resume_subscription` (write): Resume subscription. Undo a cancellation that has not taken effect yet, so the plan renews as before. - `set_budget_cap` (write): Set budget cap. Set this organization's monthly overage budget cap in US dollars: usage past the plan's allowance is billed up to this amount, then non-critical sends (campaigns, bulk sends) stop until the next period. - `claim_checkout` (write): Claim checkout. Attach a checkout paid before signup (create_checkout_link without a credential) to this organization, by its session_id (cs_…). - `create_billing_portal_link` (write): Create billing portal link. A private Stripe page where a human downloads invoices, updates the card or billing details, or cancels. - `get_billing_link` (write): Get billing link. The Stripe customer portal for a human: invoices, card and billing details, plan change and cancellation. ### Feedback - `list_feedback` (read): List feature requests and issues. The Wabi feedback board: feature requests every customer can see, plus your own issue reports (and ones the team published), with status and upvotes, most upvoted first. - `get_feedback` (read): Get a feature request or issue. One feedback item with its status, upvotes, comments (oldest first; official answers from the Wabi team are marked `official`) and its timeline of status changes with the team's notes. - `list_my_feedback` (read): List my feedback and subscriptions. What your organization filed (every status), the items you get email about (filed, upvoted, commented, followed) with whether you muted them, your organization's review, and whether feedback email reaches you. - `request_feature` (write): Request a feature. Files a feature request on the Wabi board and upvotes it for your organization. - `report_issue` (write): Report an issue. Reports a problem with Wabi itself: a failing or wrong call (pass the request_id from the error or the X-Request-Id header, and the op), a message that was not delivered or delivered twice, a webhook that never arrived, a template that will not submit, an agent that misbehaved, a docs error. - `upvote_feedback` (write): Upvote a feature request or issue. Adds your organization's upvote to a feature request or issue ("me too"); votes decide what gets built and fixed first, and you get an email when its status changes. - `remove_feedback_vote` (write): Remove an upvote. Takes back your organization's upvote on a feature request or issue, and stops its emails unless you filed or commented on it. - `comment_on_feedback` (write): Comment on a feature request or issue. Adds context to an existing feature request or issue: your use case, another failing request, a workaround. - `set_feedback_subscription` (write): Start or stop feedback emails. With id: start or stop emails about one feature request or issue. - `submit_review` (write): Post or edit a review. Posts your organization's public review of Wabi (1–5 stars, what you like, what you don't, what you use it for), or edits it (once an hour; earlier versions are kept). - `list_reviews` (read): List reviews. Published reviews of Wabi with the aggregate (average rating, count and distribution) and the team's responses. - `update_feedback` (write): Update feedback (staff). Wabi team only. - `respond_to_feedback` (write): Respond officially (staff). Wabi team only. - `respond_to_review` (write): Respond to or moderate a review (staff). Wabi team only. ## Feedback and reviews Feature requests are public on https://getwabi.dev/feedback; issue reports are private to the reporter's organization and the Wabi team. Reviews are public on https://getwabi.dev/reviews, one per organization. Guide: https://getwabi.dev/docs/feedback. | action | MCP tool | CLI | REST | | --- | --- | --- | --- | | list / search the board | `list_feedback` | `npx @meterapp/wabi feedback list` | `GET https://getwabi.dev/api/v1/feedback` (public) | | request a feature | `request_feature` | `npx @meterapp/wabi feedback request ""` | `POST https://getwabi.dev/api/v1/feedback/features` | | report an issue | `report_issue` | `npx @meterapp/wabi feedback report "<title>" [--last]` | `POST https://getwabi.dev/api/v1/feedback/issues` | | upvote | `upvote_feedback` | `npx @meterapp/wabi feedback upvote <id>` | `POST https://getwabi.dev/api/v1/feedback/{id}/votes` | | post / edit a review | `submit_review` | `npx @meterapp/wabi review --rating 5 --body "…"` | `PUT https://getwabi.dev/api/v1/reviews/me` | ## Optional - [Home](https://getwabi.dev/): The operating platform for WhatsApp Business - [Pricing](https://getwabi.dev/pricing): Free to start; paid plans by messages and AI replies. Meta's fees are billed by Meta, at cost. - [Built for agents](https://getwabi.dev/agents): MCP, CLI and REST: everything the dashboard does, your coding agent can do. - [Install](https://getwabi.dev/install): Connect Claude Code, Codex, Cursor, ChatGPT or any MCP client to Wabi, or use the CLI. - [Feedback](https://getwabi.dev/feedback): What customers asked for, what is planned and what shipped; upvote or ask for what you need. - [Reviews](https://getwabi.dev/reviews): Ratings and reviews of Wabi from the teams using it, with our replies. - [Privacy](https://getwabi.dev/privacy): What Wabi processes, for whom, which subprocessors are involved and how long it is kept. - [Terms](https://getwabi.dev/terms): The terms for using Wabi, including how Meta's WhatsApp Business terms apply.