Skip to main content

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 regionapi.whautomate.com

API 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):

RegionAPI host
Globalhttps://api.whautomate.com
Indiahttps://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) and limit (default 10, max 100). When a page has fewer items than limit, it is the last one.
  • Partial updates: PUT changes only the fields you send. Send null, "" or [] to clear an optional field; required fields cannot be cleared.
  • Your own ids: services, products and client credits take an externalId. POST with a known externalId updates that record instead of creating another, so a retried request never makes duplicates. The response says which with created.
  • 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 failed and results.
  • Dates are YYYY-MM-DD in the account timezone, and times hh:mm AM/PM, unless an endpoint says otherwise. Timestamps such as createdAt are 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 accountRequests per minute (RPM)Requests per day (RPD)
Trial account60100
Subscribed account300432,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-onWhat it unlocks in the API
CRM SuiteCreating and changing clients and client tags, sending forms, creating clients from an email request.
BookingsBooking appointments, available slots, creating and filling classes, blocking staff time.
Bookings or SalesCreating and changing services and service categories.
SalesGiving 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.

  1. Download the Whautomate REST API Postman collection:
Whautomate REST API Postman collectionwhautomate-rest-api-postman-collection.zip
  1. Unzip it. In Postman, click Import and drop in both files (the collection and the environment).
  2. 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.
  3. Open Collections > Whautomate Rest API and send Locations > List locations.
  4. Copy ids from the responses into the environment (for example clientId or locationId): the other requests use them.
The Whautomate Rest API environment in Postman with the host and x-api-key values

Endpoints​