Welcome to the ActiWAPI WhatsApp REST API. Integrate WhatsApp messaging, bulk campaigns, contact management, and webhook automation into your application with our OpenAPI-documented endpoints.
Interactive Swagger UI
Explore all 80+ endpoints, schemas, and try authenticated requests against your environment.
Open Swagger UIBase URLs
API v1
https://api.actiwapi.com/api/v1Authentication
https://api.actiwapi.com/api/authMessages
https://api.actiwapi.com/api/messagesExternal (API key)
https://api.actiwapi.com/api/externalBilling
https://api.actiwapi.com/api/billingConfigure via NEXT_PUBLIC_API_URL and NEXT_PUBLIC_AUTH_URL in your environment.
Quick start
- Create an account and start your 7-day free trial.
- Authenticate via
POST /api/auth/loginto obtain a JWT access token. - Connect a WhatsApp session and scan the QR code from your dashboard.
- Send your first message with
POST /api/messages/send-text. - Create an API key for server-to-server integrations under
/api/external.
Authentication
All authenticated requests use one of:
JWT Bearer
Dashboard and tenant APIs
Authorization: Bearer {accessToken}API Key
External integration routes
X-API-Key: {apiKey}Response format
Successful responses use a consistent envelope:
{
"success": true,
"data": { ... },
"message": "Optional message"
}API guides
Error codes
Failed requests return a JSON envelope with success: false and a human-readable message.
{
"success": false,
"message": "Validation failed",
"errors": {
"phone": "Valid phone number is required"
}
}| HTTP | Code | Description |
|---|---|---|
| 400 | VALIDATION_ERROR | Request body or query failed validation. |
| 401 | UNAUTHORIZED | Missing or invalid JWT / API key. |
| 403 | FORBIDDEN | Authenticated but lacking permission or entitlement. |
| 403 | SUBSCRIPTION_INACTIVE | Trial expired or subscription not active. |
| 403 | LIMIT_EXCEEDED | Plan limit reached (sessions, messages, API requests, etc.). |
| 404 | NOT_FOUND | Resource does not exist or is not in your tenant. |
| 409 | CONFLICT | Duplicate resource or invalid state transition. |
| 429 | RATE_LIMITED | Too many requests; retry after backoff. |
| 500 | INTERNAL_ERROR | Unexpected server error. |
| 502 | WHATSAPP_UNAVAILABLE | WhatsApp session disconnected or provider error. |