Public developer docs

Wahob Public API

Wahob supports external connectivity through API-key authenticated endpoints, incoming webhooks, e-commerce callbacks, and public widget flows. Use the v1 API to sync contacts, read conversations, and send WhatsApp text messages from trusted server-side integrations.

API key auth

Keys are tenant-scoped and may expire.

Scoped access

Each key only works for granted scopes.

Rate limited

Limits are configured per key, per minute.

Quick Start

Generate a key in Wahob from Settings, select the scopes your integration needs, store the one-time secret securely, then make calls from your backend.

curl -X GET "https://api.wahob.com/api/v1/contacts?per_page=10" \
  -H "Accept: application/json" \
  -H "X-Api-Key: wahob_your_key" \
  -H "X-Api-Secret: your_secret"

v1 Endpoints

These endpoints are designed for trusted server-side integrations. Do not expose your API secret in browser code or mobile apps.

GET/api/v1/contacts

List contacts

Returns paginated contacts for the API key tenant. Supports search by contact name or phone.

contacts.read

Request

Query parameters: search, per_page

Response

{
  "data": [
    {
      "id": 42,
      "name": "Priya Shah",
      "phone": "+919876543210",
      "email": "priya@example.com",
      "source": "api"
    }
  ],
  "current_page": 1,
  "per_page": 25,
  "total": 1
}
POST/api/v1/contacts

Create contact

Creates a contact for the tenant, or returns the existing contact when the phone number already exists.

contacts.write

Request

No query parameters.

{
  "phone": "+919876543210",
  "name": "Priya Shah",
  "email": "priya@example.com",
  "custom_fields": {
    "city": "Mumbai",
    "plan": "Gold"
  }
}

Response

{
  "data": {
    "id": 42,
    "phone": "+919876543210",
    "name": "Priya Shah",
    "email": "priya@example.com",
    "source": "api"
  }
}
POST/api/v1/messages/send

Send WhatsApp text message

Sends a text message through an active Wahob WhatsApp number. The tenant must have an eligible outbound conversation or template/session policy in place.

messages.send

Request

No query parameters.

{
  "phone": "+919876543210",
  "message": "Your order has been packed and will ship today.",
  "phone_number_id": 12
}

Response

{
  "message": "Message sent",
  "data": {
    "provider_message_id": "wamid.HBgM...",
    "phone_number_id": 12
  }
}
GET/api/v1/conversations

List conversations

Returns paginated WhatsApp conversations, sorted by latest activity, with the linked contact summary.

conversations.read

Request

Query parameters: per_page

Response

{
  "data": [
    {
      "id": 91,
      "channel": "whatsapp",
      "status": "open",
      "last_message_at": "2026-06-13T08:00:00.000000Z",
      "contact": {
        "id": 42,
        "name": "Priya Shah",
        "phone": "+919876543210"
      }
    }
  ]
}

External Connectivity

Wahob also exposes public callback endpoints for webhooks, widgets, and commerce plugins. These are integration callback URLs, not general-purpose API-key endpoints.

Incoming automation webhook

GET, POST
/api/webhook/incoming/{slug}

Receives events from external tools using the tenant webhook slug.

E-commerce webhooks

POST
/api/webhook/ecommerce/{platform}/{integrationId}

Receives WooCommerce and Shopify events for connected stores.

WooCommerce plugin auto-connect

POST
/api/ecommerce/woocommerce/auto-connect

Connects the Wahob WooCommerce plugin using plugin API key authentication.

Chat widget

GET, POST
/api/widget/{slug}/messages

Used by the embeddable customer chat widget.

Public appointment booking

GET
/api/widget/{slug}/appointments/slots

Returns available booking slots for widget visitors.

Public appointment booking

POST
/api/widget/{slug}/appointments/book

Books an appointment from the public widget flow.

Send Message Example

Use this after granting the `messages.send` scope and connecting at least one active WhatsApp phone number in Wahob.

curl -X POST "https://api.wahob.com/api/v1/messages/send" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: wahob_your_key" \
  -H "X-Api-Secret: your_secret" \
  -d '{
    "phone": "+919876543210",
    "message": "Thanks for your order. We will notify you when it ships."
  }'

Errors

401

Missing, expired, or invalid API key/secret.

403

The key is valid but does not include the required scope.

422

Validation failed or the requested WhatsApp action cannot be completed.

500

Unexpected server or provider error.

Start Free Trial