API documentation
We give you an API and you build on it. Examples in cURL, Node.js, PHP and Python. Examples here use placeholders (wc_live_…, conn_…); inside the panel they come with your real data.
OpenAPI specification
The public API (/v1) as a single OpenAPI 3.1 file: import it into Postman/Insomnia, generate a client in your language, or hand it to an AI agent so it can consume the API without reading HTML.
Getting started
Before writing a line of code it's worth knowing what Meta will ask you for — the part that doesn't depend on us: your own number, a Facebook account with a Business Portfolio, a card on your Meta account and —if you want to write first— an approved template. None of this costs anything here, and you don't need to sign up to read it. Six short steps, in the order things actually happen.
Once you have an account, the panel tells you which of these six you're missing, with your number's real state. Get started.
- ① Before you connect — what you'll need
- ② While you connect
- ③ Meta's paperwork, in order of urgency
- ④ What a template is (and why it exists)
- ⑤ To send
- ⑥ What Meta charges and what WAIA Connect charges
- ⑦ Migrating from another provider
From your AI (MCP)
Essential
- Authentication GET /v1/connections
- Send a text message POST /v1/messages
- Send media (image · document · audio · video) POST /v1/messages
- Receive messages by webhook
- Authenticate the webhook: static header vs signature
- Verify the signature
- Check a message's status GET /v1/messages/:id
- Mark a message as read (and show "typing…") POST /v1/messages/read
- Download inbound media GET /v1/media/:mediaId
- Receive the Coexistence conversation history GET /v1/connections/:id/history
Complete
- Send a template POST /v1/messages
- Send a template with a file in its header POST /v1/messages
- Templates with an image, a document and buttons POST /v1/messages
- Create templates with an image, document and buttons POST /v1/templates/media
- Carousel templates (cards with an image or video) POST /v1/templates
- Create, list and sync templates POST /v1/templates
- Connections and their health GET /v1/connections
- Email notices and the Notices inbox GET /v1/notices
- Hosted onboarding (your customer connects their number) POST /v1/onboarding-links
- Webhooks with the API (and the one born with the onboarding) POST /v1/webhooks
- Integrator journey: onboarding and webhooks 100 % by API GET /v1/onboarding-links/{id}
- Onboarding link intro page: full or minimal PATCH /v1/onboarding-links/{id}
- Automatic help on the signup screen PUT /v1/branding
- Your customers' sign-up cases and «Handled» GET /v1/onboarding-cases
- Templates proposed by your customer POST /v1/template-links
- Usage and limits GET /v1/usage
- Rate limits (per number, per account, per key) POST /v1/messages
- Catalog shopping carts
- Edited and deleted messages
- The 26 event types with their payload
- The full error catalog
- Idempotency, retries and delivery order
Guides
- Connect your WhatsApp to WAIA Connect (Coexistence), step by step
- WhatsApp in n8n: the complete customer service workflow, free
- Receive WhatsApp in Supabase with an Edge Function
- Connect WhatsApp to Google Sheets (Apps Script, no coding)
Security and data
Something not adding up? Send us your question or request a quote.