Introduction
Wabery is the messaging API for WhatsApp Business, Instagram Direct, and Facebook Messenger. One consistent interface for customer conversations, with the hard parts handled for you: channel integrations, media normalization, the WhatsApp Flows encryption handshake, signed event delivery, hosted function runtime, and retries.
You bring the product logic. Wabery carries the conversation.
What you get
Section titled “What you get”If you just signed up
Section titled “If you just signed up”Start here. You do not need a production WhatsApp number for the first test.
- Open your first project in the dashboard and copy the sandbox join code.
- Send that join code to the shared Wabery sandbox number from your test phone.
- Send one normal WhatsApp message after the join code; that creates a conversation.
- Run
wabery login, thenwabery doctor, or create a key under Access → API keys. - Follow the Quickstart to send your first reply.
After that first loop works, choose the next layer: signed webhooks for inbound events, WhatsApp Flows for structured forms, hosted functions for server-side workflow logic, or a dedicated WhatsApp channel for production traffic.
Find features in the dashboard
Section titled “Find features in the dashboard”The project navigation keeps everyday work visible and groups authoring tools that are usually opened less often:
| Navigation | Use it for |
|---|---|
| AI builder | Create or improve the project’s hosted agent. Live is what customers use and is read-only. Changes happen on Draft, are tested in Sandbox, and replace Live only after Review & publish. |
| Build tools → Automations | Create no-code triggers and actions. |
| Build tools → Flows | Build WhatsApp forms and inspect submissions. |
| Build tools → Functions | Inspect hosted TypeScript functions, deployments, and logs. |
| Build tools → Templates | Create and monitor WhatsApp message templates. |
| Access → Connections | Connect or disconnect ChatGPT, Claude, Codex, and local agents. |
| Access → API keys | Create, scope, reveal, and revoke project API keys. |
| Webhooks | Configure the endpoint and signing secret, then inspect delivery status, retries, response codes, and payloads. |
| Project settings | Find the sandbox join code and project-level defaults. |
How it fits together
Section titled “How it fits together”- Start with a channel — use the shared sandbox immediately, or connect a dedicated WhatsApp Business account later.
- Send & receive — call the API (or SDK) to send messages; receive inbound messages, files, and statuses as signed webhooks, and pull thread history from the conversations API.
- Register customers — use registration intents to link a customer’s WhatsApp identity to your own user id without exposing a secret key.
- Collect structured data — define a WhatsApp Flow once and get back clean submissions at your endpoint.
- Broadcast safely — prepare a frozen, consent-eligible audience, review its counts, then send or schedule an approved WhatsApp template.
- Run workflow logic — deploy hosted functions when an automation or agent tool needs server-side TypeScript.
- Hosted AI agents — create or change only the Draft. Test it in Sandbox. Publish to Live in the AI builder after review. External AI, MCP, and config apply cannot edit Live.
Capability map
Section titled “Capability map”Wabery’s public API, SDK, CLI, and MCP server cover the full messaging workflow:
| Area | What you can do |
|---|---|
| Channels | List connected WhatsApp, Instagram, and Messenger channels, set routing modes, inspect routing warnings, and check WhatsApp publish readiness. |
| Messages | Send text and channel-supported media, plus WhatsApp templates, interactions, reactions, locations, stickers, and Flows. Track delivery with message.status webhooks. |
| Inbound events | Receive signed message.received webhooks for text, media files, locations, contacts, unsupported Cloud API envelopes, and other inbound message types. Media files include short-lived Wabery download URLs. |
| Conversations | List conversations and message history; retained inbound media is re-signed when read through the conversation history API. |
| Contacts & registration | Enroll opted-in contacts server-side, or mint browser-safe registration intents that link a customer’s WhatsApp identity to your own user id. |
| Broadcasts | Import or select consented contacts, freeze an audience snapshot, then send or schedule approved localized WhatsApp templates with frequency limits, suppressions, and delivery counts. |
| WhatsApp Flows | Author static or dynamic Flows, publish them to Meta, localize by config key, run data-exchange endpoints, inspect dispatches, submissions, and flow event logs. |
| Hosted functions | Deploy project-scoped TypeScript handlers, test them, expose them as Business Agent or MCP-callable tools, and inspect invocation logs. |
| Templates | Create, submit, inspect, and send WhatsApp templates, including flow-type templates for proactive Flow entry points. |
| Automations | Handle conversations with no code: trigger on welcome, keyword, or any message, then chain actions — send replies, send flows, run a function inline, delay, wait for a reply, branch on a condition, or hand off to a human. Switch to external routing when your webhook owns the reply logic. |
| Config as code | Export, validate, diff, and apply project configuration for webhooks, flows, and automations. |
| Business Agents | Use the REST/OpenAPI surface to provision Meta Business Agents, connectors, tools, thread control, tests, evals, and skills where available for your Meta setup. |