API Documentation

Login

Wabiss API

Use this API to send messages and access chats, contacts, groups, and instance status.

Base URLhttps://app.wabiss.com/api/v1
Formatapplication/json
Rate Limit1000 requests / hour
  1. Create and connect one instance from dashboard.
  2. Generate an API key from API Keys page.
  3. Pass `Authorization: Bearer <api_key>` for all `/api/v1/*` requests.

Authentication

All `/api/v1/*` endpoints require Bearer token auth.

Authorization: Bearer wa_your_api_key_here

Messaging APIs

Credits are deducted only for successful sends.

POST /send/text1 credit
POST /send/image1 credit
POST /send/document1 credit
POST /send/audio1 credit
POST /send/location1 credit
POST /send/buttons1 credit
POST /send/list1 credit
POST /send/bulk1 per message
POST /api/v1/send/text

Send plain text message.

{
  "to": "919876543210",
  "message": "Hello from Wabiss"
}
POST /api/v1/send/image

Send image by URL (or base64 + mimetype in payload).

{
  "to": "919876543210",
  "url": "https://example.com/photo.jpg",
  "caption": "Invoice image"
}
POST /api/v1/send/document
{
  "to": "919876543210",
  "url": "https://example.com/report.pdf",
  "caption": "Monthly report"
}
POST /api/v1/send/audio
{
  "to": "919876543210",
  "url": "https://example.com/audio.mp3"
}
POST /api/v1/send/location
{
  "to": "919876543210",
  "latitude": 12.9716,
  "longitude": 77.5946,
  "name": "Bengaluru"
}
POST /api/v1/send/buttons
{
  "to": "919876543210",
  "message": "Choose one",
  "buttons": [
    { "body": "Yes" },
    { "body": "No" }
  ],
  "title": "Confirmation",
  "footer": "Reply now"
}
POST /api/v1/send/list
{
  "to": "919876543210",
  "message": "Pick a plan",
  "buttonText": "View plans",
  "sections": [
    {
      "title": "Plans",
      "rows": [
        { "id": "starter", "title": "Starter", "description": "500 credits (1 credit per message)" },
        { "id": "pro", "title": "Pro", "description": "2000 credits (1 credit per message)" }
      ]
    }
  ]
}
POST /api/v1/send/bulk

Bulk route internally applies a safety delay between recipients.

{
  "numbers": ["919876543210", "919999999999"],
  "message": "Bulk campaign message"
}

Success Response

Use data for new integrations. Top-level messageId and credits fields are kept for backward compatibility.

{
  "success": true,
  "requestId": "req_7f83e8a2c5f0d9ab",
  "timestamp": "2026-03-20T11:52:10.225Z",
  "message": "Message sent successfully",
  "data": {
    "messageId": "3EB09ABD621F9593655F51",
    "waMessageId": "true_919876543210@c.us_3EB09ABD621F9593655F51",
    "to": "919876543210",
    "type": "text",
    "status": "sent",
    "sentAt": "2026-03-20T11:52:10.224Z",
    "credits": {
      "used": 1,
      "remaining": 636
    }
  },
  "meta": {
    "version": "v1",
    "endpoint": "/api/v1/send/text",
    "instanceId": "inst_abc123",
    "apiKey": "wa_abcd...wxyz"
  },
  "messageId": "3EB09ABD621F9593655F51",
  "creditsUsed": 1,
  "creditsRemaining": 636
}

Webhook Events

Wabiss can push WhatsApp events to your endpoint using the instance webhook URL configured in Instance settings.

MethodPOST
Content-Typeapplication/json
Timeout5 seconds

Current Event List

EVENT incoming_messageEnabled

`incoming_message` Payload

{
  "event": "incoming_message",
  "instanceId": "inst_abc123",
  "message": {
    "from": "919876543210@c.us",
    "body": "Hello",
    "timestamp": 1712143512
  }
}

Receiver Example

app.post('/my-webhook', express.json(), (req, res) => {
  const payload = req.body;
  // TODO: store/queue payload
  return res.status(200).json({ ok: true });
});

Important Notes

  1. Set webhook URL per instance from dashboard when creating or editing an instance.
  2. Respond quickly with HTTP 200; slow endpoints may miss delivery.
  3. Current implementation sends incoming message webhook only. Delivery/read status is available in Message Logs and Reports APIs.

Postman Collection

Import this once and test every API route without manually writing requests.

  1. Download collection and environment from buttons below.
  2. Import both into Postman.
  3. Set `api_key` variable with your generated key.
  4. Run requests folder-by-folder (Messaging, Contacts, Groups, Instance).

Common Errors

401 Missing or invalid API key
402 Insufficient credits (1 credit required)
409 Instance not connected
429 Rate limit exceeded
500 Internal server error
{
  "success": false,
  "requestId": "req_7f83e8a2c5f0d9ab",
  "timestamp": "2026-03-20T11:53:22.111Z",
  "error": "Insufficient credits (1 credit required)",
  "code": "BILLING_INSUFFICIENT_CREDITS",
  "details": null,
  "meta": {}
}

Try It Out

Select any endpoint, adjust payload/path, and send request directly from this page.

cURL

Response

{ "status": "Awaiting request" }