Getting Started

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 UI

Base URLs

API v1https://api.actiwapi.com/api/v1
Authenticationhttps://api.actiwapi.com/api/auth
Messageshttps://api.actiwapi.com/api/messages
External (API key)https://api.actiwapi.com/api/external
Billinghttps://api.actiwapi.com/api/billing

Configure via NEXT_PUBLIC_API_URL and NEXT_PUBLIC_AUTH_URL in your environment.

Quick start

  1. Create an account and start your 7-day free trial.
  2. Authenticate via POST /api/auth/login to obtain a JWT access token.
  3. Connect a WhatsApp session and scan the QR code from your dashboard.
  4. Send your first message with POST /api/messages/send-text.
  5. 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"
  }
}
HTTPCodeDescription
400VALIDATION_ERRORRequest body or query failed validation.
401UNAUTHORIZEDMissing or invalid JWT / API key.
403FORBIDDENAuthenticated but lacking permission or entitlement.
403SUBSCRIPTION_INACTIVETrial expired or subscription not active.
403LIMIT_EXCEEDEDPlan limit reached (sessions, messages, API requests, etc.).
404NOT_FOUNDResource does not exist or is not in your tenant.
409CONFLICTDuplicate resource or invalid state transition.
429RATE_LIMITEDToo many requests; retry after backoff.
500INTERNAL_ERRORUnexpected server error.
502WHATSAPP_UNAVAILABLEWhatsApp session disconnected or provider error.