Ship WhatsApp features
this afternoon

A REST API that mirrors everything the dashboard does, signed webhooks for everything that happens, and guides that get you from zero to production fast.

⚡ Quickstart: first message in 3 steps

1. Sign up and connect WhatsApp (2-minute Meta popup). 2. Create an API key under Dashboard → API Keys. 3. Send:

cURL
curl -X POST https://yourdomain.co.za/api/messages/text \
  -H "X-Api-Key: cr_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "27821234567",
    "body": "Hello from the API! 🚀"
  }'

Every request authenticates with the X-Api-Key header. Keys are scoped to your workspace, revocable at any time, and usage-logged.

The 24-hour rule: free-form messages only deliver within 24h of the customer's last message. Outside that window, send an approved template — templates work anytime.

🧩 What you can build

Approval Workflows

Send artwork, quotes or documents for one-tap Approve/Reject on WhatsApp — with rejection reasons captured and fed back to your system.

Integration guide →

Interactive Requests

Any buttons or list options, any media, any follow-up flow — with every reply (including photos) captured and delivered to you.

Integration guide →

Lead Delivery

Receive structured leads from agent conversations — with selected chat context — straight into your lead management system.

Integration guide →

CRM Sync

Surface your CRM's customer data beside every chat, auto-tag key accounts, and read/write notes both ways.

Integration guide →

Webhooks

16 events covering messages, contacts, campaigns, approvals, interactions, leads and carts — HMAC-signed, retried on failure.

Integration guide →

Automation Triggers

Launch any visual automation from your code: POST /api/automations/{id}/trigger with a phone number. Contact auto-created if new.

Endpoint reference →

🗺 API surface at a glance

AreaEndpointsWhat it does
Messaging/api/messages/*Text, templates, media, interactive buttons & lists, locations, reactions
Approvals/api/approvalsMedia + Approve/Reject flows, bulk sends, status polling, rejection reasons
Interactions/api/interactionsFully flexible buttons/lists with reply & media capture windows
Contacts/api/contacts, /api/crm/contacts/*CRUD, tags, custom parameters, CRM linking, two-way notes
Automations/api/automations/*List, toggle, update graphs, trigger for any contact
Commerce/api/commerce/*Abandoned carts in (Shopify or custom), recovery messages out
Templates/api/templatesCreate, sync status, list approved templates
Analytics/api/reports/*Message volumes, delivery rates, campaign funnels

Full endpoint reference with request/response bodies →

🛡 Built the way you'd build it

Predictable JSON

Every response is JSON. Errors carry an error field with a human-readable message — no digging through Meta error codes (we translate those for you on the Diagnostics page).

Signed Webhooks

Every delivery carries X-ChatReach-Signature (HMAC-SHA256 of the raw body). Verify in four lines of code. Failed deliveries retry at 5s, 30s and 2min.

Echo Your IDs

Pass externalRef on approvals and interactions and it comes back in every webhook — correlate without a lookup table.

Idempotent Contacts

Send to a number we haven't seen and the contact is created automatically. No "create contact first" ceremony.

Your first API call is 5 minutes away

Free trial includes full API access, webhooks and every integration guide. No credit card.

Create Free Account