Whautomate Rest API
The Whautomate REST API lets your own systems work with your Whautomate account: sync clients, contacts, services and products, give clients credits, book appointments and classes, create orders and invoices, send messages on every channel and email, run broadcasts, read form responses, manage automations and receive webhooks.
Common uses:
- Add or sync clients and contacts from a website, CRM or lead form, one at a time or 100 at once.
- Give clients session packs or a credit balance when they buy in your own shop.
- Book, reschedule and cancel appointments and classes from your own booking flow, with or without online payment.
- Keep your services and products in step with your own catalogue, using your own ids (
externalId). - Create orders and invoices, record payments and send invoices.
- Send WhatsApp template messages, SMS and transactional emails from your own system.
- Add or remove tags to start automations, for example a welcome sequence.
api.whautomate.comAPI host
Your account lives in one region, and every request goes to that region's host. The exact host is shown as Your API Host on the API Keys page (Settings > Integrations > REST API):
| Region | API host |
|---|---|
| Global | https://api.whautomate.com |
| India | https://api.in.whautomate.com |
All paths start with /v1, for example https://api.whautomate.com/v1/clients. Pick your region with the API region switch at the top of each API page: the request examples and endpoint copy buttons then use your host. Your choice is remembered.
Authentication
Create an API key on the API Keys page (see Rest API) and send it in the x-api-key header of every request. Keys work across all locations (workspaces) in your account; most endpoints take a locationId (or a location object) to say which one. Every change made with a key shows in the account's activity log as made "via API".
curl -X GET "https://api.whautomate.com/v1/locations" \
-H "x-api-key: YOUR_API_KEY"
Send request bodies as JSON with Content-Type: application/json.
Requests and responses
- Ids: every record has an
id; use it in paths such as/v1/clients/{clientId}. It is not the client number shown in the app. - Lists return a plain JSON array, newest first. Page through them with
page(from 1) andlimit(default 10, max 100). When a page has fewer items thanlimit, it is the last one. - Partial updates:
PUTchanges only the fields you send. Sendnull,""or[]to clear an optional field; required fields cannot be cleared. - Your own ids: services, products and client credits take an
externalId.POSTwith a knownexternalIdupdates that record instead of creating another, so a retried request never makes duplicates. The response says which withcreated. - Bulk: clients, contacts, services, products and order statuses have bulk endpoints for up to 100 items. Each item succeeds or fails on its own; check
failedandresults. - Dates are
YYYY-MM-DDin the account timezone, and timeshh:mm AM/PM, unless an endpoint says otherwise. Timestamps such ascreatedAtare ISO 8601 in UTC. - Errors return a real HTTP status (400, 401, 403, 404, 405, 409, 429, 500, 503) and
{"error": "..."}. See error messages. - A request that names a deactivated location, or a record of one, returns
404.
Rate limits
Requests are rate limited per account to keep the platform fair and stable. If you go over, you get 429 Too Many Requests; wait and retry.
| Type of account | Requests per minute (RPM) | Requests per day (RPD) |
|---|---|---|
| Trial account | 60 | 100 |
| Subscribed account | 300 | 432,000 |
Need more? Contact support.
Plan add-ons
The API follows your plan, like the app does. Creating new work needs the add-on it belongs to; reading data and handling existing work (rescheduling or cancelling bookings, paying or voiding invoices) is always allowed:
| Add-on | What it unlocks in the API |
|---|---|
| CRM Suite | Creating and changing clients and client tags, sending forms, creating clients from an email request. |
| Bookings | Booking appointments, available slots, creating and filling classes, blocking staff time. |
| Bookings or Sales | Creating and changing services and service categories. |
| Sales | Giving client credits, products, orders and invoices. |
Automation rules and broadcasts need the add-ons of the triggers, actions and audiences they use. Requests outside your plan return 403 with "code": "MODULE_NOT_ENABLED" and the add-on in module. See Plan modules.
Test with Postman
The Postman collection has every endpoint on these pages, grouped in the same folders, each with real example responses.
- Download the Whautomate REST API Postman collection:
- Unzip it. In Postman, click Import and drop in both files (the collection and the environment).
- Open Environments > Whautomate Rest API, set host to your API host and x-api-key to your key, and Save. Select the environment at the top right.
- Open Collections > Whautomate Rest API and send Locations > List locations.
- Copy ids from the responses into the environment (for example clientId or locationId): the other requests use them.
