What you get
REST + JSON
Every endpoint accepts and returns JSON. Versioned under
/v1/, no silent breaking changes.Personal Access Tokens
Each user in your tenant can mint their own tokens with scoped permissions and instant revocation.
Granular scopes
Permissions split by messages, templates, channels, and webhooks. Grant only what each integration needs.
Signed webhooks
Events delivered to your URL with HMAC-SHA256, exponential retries, and
event_id deduplication.OpenAPI 3
Auto-generated spec at api.keebai.com/v1/docs-json. Importable into Postman, Insomnia, or any SDK generator.
Official CLI
keebai (npm: @keebai/cli) covers login, channel connect, token management, and messaging — all from your shell.TypeScript SDK
@keebai/sdk — typed client with full WhatsApp coverage: text, media, interactive, templates, broadcasts.Agent Skills
Skills for Claude Code, Cursor, Codex, and other AI agents. Your agent sends WhatsApp without you teaching it the SDK.
Base URL
Endpoints
Session
| Method | Path | Scope | Description |
|---|---|---|---|
GET | /v1/me | — | Info about the active token and its scopes. |
DELETE | /v1/me/token | — | Revoke the current token (server-side logout). |
Messages
| Method | Path | Scope | Description |
|---|---|---|---|
POST | /v1/messages/template | messages:send | Send an approved template to a recipient. |
POST | /v1/messages/text | messages:send | Send free text inside the 24h conversation window. |
POST | /v1/messages/bulk | messages:bulk | Send a template to many recipients (up to 5,000). |
GET | /v1/messages/bulk/:broadcastId | messages:bulk | Status of a bulk send. |
Templates
| Method | Path | Scope | Description |
|---|---|---|---|
GET | /v1/templates | templates:read | List approved templates for your company. |
POST | /v1/templates | templates:create | Create and submit a template to Meta for approval. |
PATCH | /v1/templates/:id | templates:update | Update components, category, language, or status. |
Channels
| Method | Path | Scope | Description |
|---|---|---|---|
GET | /v1/channels | channels:read | List channels, filterable by type. |
GET | /v1/channels/:id | channels:read | Get a single channel. |
GET | /v1/whatsapp/numbers | channels:read | Direct view of active phone_number_id values. |
POST | /v1/channels/whatsapp/connect | channels:connect | Start a WhatsApp connection. |
GET | /v1/channels/whatsapp/connect/:sessionId | channels:connect | Poll the connect session status. |
Outbound webhooks
| Method | Path | Scope | Description |
|---|---|---|---|
POST | /v1/webhooks | webhooks:manage | Create a subscription. Returns the secret once. |
GET | /v1/webhooks | webhooks:read | List subscriptions. |
GET | /v1/webhooks/:id | webhooks:read | Get a single subscription. |
PATCH | /v1/webhooks/:id | webhooks:manage | Update URL, events, headers, or is_active. |
POST | /v1/webhooks/:id/rotate-secret | webhooks:manage | Rotate the signing secret. |
DELETE | /v1/webhooks/:id | webhooks:manage | Delete a subscription. |
POST | /v1/webhooks/:id/test | webhooks:manage | Fire a synthetic test event. |
GET | /v1/webhooks/:id/deliveries | webhooks:read | Delivery history. |
Next steps
Quickstart
From zero to first message in five minutes.
TypeScript SDK
Typed client for Node, edge runtimes, and browsers.
CLI
Login, connect WhatsApp, and send messages from your terminal.
Agent Skills
Skills for Claude Code, Cursor, Codex, and other AI agents.
API keys
How to create, list, and revoke tokens.
Authentication
How to send the token on every request and handle auth errors.
Outbound webhooks
Receive signed events at your endpoint.
Connect WhatsApp
Onboard a new WhatsApp Business channel without the portal.
Roadmap
Planned, no firm dates:- Smart templates — map unstructured data into template variables with an LLM.
- Scheduled messages — schedule and cancel future sends.
- Tickets — open and update tickets from the API.
- More webhook events —
conversation.created,conversation.escalated_to_human,instagram.message.received.