W WAPI Platform

Awaiting Approval

Your account has been submitted. An admin will review your request and grant access shortly.

W WAPI Platform
Channels API Docs Users

Your Channels

Each channel is an independent WhatsApp connection with its own API key.

No channels yet

Create your first channel to connect a WhatsApp number and get an API key.

Developer Access

Personal access token for the MCP server and REST API — works across all your channels.

Personal Access Token

No token yet. Generate one to get started.

—
MCP Config — Claude Desktop

Generate a token to see your MCP configuration.


            
          
W

—

—
—

Connect this channel to start sending and receiving WhatsApp messages.

Scan this code in WhatsApp → Linked Devices

QR Code

Refreshes automatically

Connected

Connecting…

API Key
—

Pass as X-API-Key header in all requests to this channel.

Send a message

International format — no + or spaces

cURL example


          

Message Log

TimeDirFromToMessageType
No messages yet

Add Webhook

Active Webhooks

No webhooks configured

Payload Example

{
  "event": "message",
  "channel_id": "your-channel-id",
  "timestamp": 1714000000000,
  "data": {
    "direction": "in",
    "from_number": "4917612345678",
    "to_number": "4930123456789",
    "body": "Hello!",
    "type": "chat"
  }
}

API Reference

Base URL: https://wapi.strehldigital.com/api

Authentication
API Keys
Messages
Send Message Get Messages
Contacts
List Contacts List Chats
Webhooks
Manage Webhooks
Status
Channel Status
AI Integration
MCP Server

Authentication

All API requests require an API key that identifies your channel. Pass it as an HTTP header or query parameter.

Header (recommended)
X-API-Key: wapi_xxxxxxxxxxxx
Query parameter
GET /api/status?api_key=wapi_xxxxxxxxxxxx

Send Message

POST /api/messages/send

Send a WhatsApp text message to any number.

Body paramTypeRequiredDescription
numberstringYesRecipient in international format (no +)
messagestringYesText content to send
Request
curl -X POST https://wapi.strehldigital.com/api/messages/send \
  -H "X-API-Key: wapi_xxxx" \
  -H "Content-Type: application/json" \
  -d '{"number": "4917612345678", "message": "Hello from WAPI!"}'
Response 200
{ "success": true, "messageId": "3EB0..." }

Get Messages

GET /api/messages

Retrieve message history for this channel.

Query paramDefaultDescription
limit50Max messages to return (max 100)
offset0Pagination offset
number—Filter by phone number
Request
curl https://wapi.strehldigital.com/api/messages?limit=20 \
  -H "X-API-Key: wapi_xxxx"
Response 200
{
  "messages": [...],
  "total": 42,
  "limit": 20,
  "offset": 0
}

List Contacts

GET /api/contacts

Returns up to 500 contacts from your WhatsApp address book.

Response 200
{ "contacts": [{ "number": "4917612345678", "name": "Max Mustermann" }] }

List Chats

GET /api/contacts/chats

Returns up to 100 open chats with the last message and unread count.

Webhooks

GET /api/webhooks
POST /api/webhooks
DELETE /api/webhooks/:id

Register a URL to receive real-time events when messages arrive.

Create webhook
curl -X POST https://wapi.strehldigital.com/api/webhooks \
  -H "X-API-Key: wapi_xxxx" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://your-app.com/hook", "events": "message", "secret": "optional-secret"}'

MCP Server

WAPI ships a built-in Model Context Protocol server. Add it to Claude Desktop (or any MCP-compatible AI client) and Claude can interact with your WhatsApp channel directly — send messages, read logs, manage webhooks — while helping you build your integration.

Works with Claude Desktop & Cursor
Any client that supports MCP Streamable HTTP transport.

Setup

Generate a personal access token from your dashboard (Channels → Developer Access), then add it to your Claude Desktop config. The token gives Claude access to all your channels at once.

macOS — ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "wapi": {
      "type": "http",
      "url": "https://wapi.strehldigital.com/mcp?token=YOUR_PERSONAL_TOKEN"
    }
  }
}
Windows — %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "wapi": {
      "type": "http",
      "url": "https://wapi.strehldigital.com/mcp?token=YOUR_PERSONAL_TOKEN"
    }
  }
}

Restart Claude Desktop after saving. Your personal access token can be regenerated or revoked at any time from the dashboard without affecting your channel API keys.

What you can do

Once connected, just describe what you want in plain English:

"Send a message to +4917612345678 saying the order has shipped"
"Show me the last 20 messages from +4930123456789"
"Is my channel connected? What number is it running on?"
"Add a webhook to https://myapp.com/hook for incoming messages"
"Help me write a Node.js handler for incoming WhatsApp messages"
"My messages aren't sending — check the channel status and help me debug"

Available tools

ToolDescription
send_messageSend a WhatsApp text message to any number
get_messagesRetrieve message history, optionally filtered by number
get_statusCheck channel connection status and phone info
list_contactsList WhatsApp contacts on the channel's phone
list_chatsList recent chats with last message and unread count
list_webhooksShow all configured webhooks
add_webhookRegister a new webhook URL
delete_webhookRemove a webhook by ID

Endpoint

POST /mcp?token=YOUR_PERSONAL_TOKEN
POST /mcp?api_key=YOUR_CHANNEL_API_KEY

Standard JSON-RPC 2.0 over HTTP. Personal tokens give access to all your channels (recommended). Channel API keys scope access to a single channel. Each request is stateless — no sessions required.

Channel Status

GET /api/status

Check the connection status of your channel.

Response 200 (connected)
{
  "status": "ready",
  "info": { "number": "4930123456789", "name": "My Bot", "platform": "smba" },
  "channel": { "id": "...", "name": "My Channel" }
}

User Management

Approve or reject user registrations. Approved users can log in and manage their own channels.

EmailRoleStatusRegisteredActions
Loading…

Create New Channel

A channel represents one WhatsApp phone number. Each channel gets its own unique API key.