Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ArnasDon/wacrm/llms.txt

Use this file to discover all available pages before exploring further.

The Wacrm public REST API gives you programmatic access to everything your dashboard can do — send WhatsApp messages, manage contacts, read conversations, launch broadcast campaigns, and register outbound webhooks — all from your own scripts and automations. Every endpoint lives under the stable base path /api/v1 and speaks a consistent JSON envelope so you can write a single response-handling layer for your integration.

Available Endpoints

MethodPathScopeDescription
GET/api/v1/me(none)Verify key and get account / scopes
POST/api/v1/messagesmessages:sendSend a WhatsApp message
GET/api/v1/contactscontacts:readList contacts
POST/api/v1/contactscontacts:writeCreate or find a contact
GET/api/v1/contacts/{id}contacts:readGet one contact
PATCH/api/v1/contacts/{id}contacts:writeUpdate a contact
GET/api/v1/conversationsconversations:readList conversations
GET/api/v1/conversations/{id}conversations:readGet one conversation
GET/api/v1/conversations/{id}/messagesmessages:readList conversation messages
POST/api/v1/broadcastsbroadcasts:sendLaunch a broadcast
GET/api/v1/broadcasts/{id}broadcasts:sendGet broadcast status
POST/api/v1/webhookswebhooks:manageRegister a webhook endpoint
GET/api/v1/webhookswebhooks:manageList webhook endpoints
GET/api/v1/webhooks/{id}webhooks:manageGet one endpoint
PATCH/api/v1/webhooks/{id}webhooks:manageUpdate an endpoint
DELETE/api/v1/webhooks/{id}webhooks:manageDelete an endpoint

Explore by Endpoint Group

Messages

Send text, media, and template messages to any WhatsApp number. The endpoint finds or creates the contact and conversation automatically.

Contacts & Conversations

List, create, and update contacts. Read conversations and their full message history with cursor-paginated list endpoints.

Broadcasts

Launch template campaigns to up to 1 000 recipients per request. Sends fan out in the background — poll the status endpoint for progress.

Webhooks

Register HTTPS endpoints to receive real-time event deliveries for inbound messages, delivery-status changes, and new conversations.

Rate Limits

Requests are limited per API key at 120 requests per minute. When the limit is exceeded the API returns 429 rate_limited. The following headers are present on every 429 response and tell you exactly when to retry:
HeaderValue
Retry-AfterSeconds until the current window resets
X-RateLimit-LimitTotal requests allowed per window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp (seconds) when the window resets
The rate limiter is in-memory and per-process. A single-instance self-hosted deploy (the common case) works correctly out of the box. If you scale Wacrm to multiple processes or containers, the limit is enforced independently per process and is therefore under-counted across the fleet. For accurate multi-instance enforcement, swap the limiter for a shared store such as Redis or Upstash — see the comment at the top of src/lib/rate-limit.ts for guidance.

Build docs developers (and LLMs) love