Developers

REST API

Connect WhatsApp messaging to your app with a few HTTP requests. Authentication uses the instance API key.

REQUEST
POST /api/{instanceId}/send
Content-Type: application/json
X-API-Key: API_KEY

{
  "phone": "+905551234567",
  "message": "Hello"
}
RESPONSE
{
  "success": true,
  "instanceId": "example-instance",
  "messageId": "example-message-id",
  "quotaRemaining": "unlimited"
}

Base URL

https://app.kolaywhatsapp.com

Authentication

Message, QR, and status endpoints require X-API-Key — generated with the instance, rotatable in the panel.

Instance creation endpoints require a separate server secret (external integration).

HTTP responses

Code Meaning
200 Sent
400 Missing phone or message
401 Invalid or missing API key
403 Premium required or quota exhausted
503 WhatsApp connection not ready
500 Server error

Webhook

WhatsApp message.received KolayWhatsApp POST webhook Your system 200 OK

When a webhook secret is set, delivery is signed with HMAC-SHA256.

Chatbot flow

Customer
Can I speak with someone?
Assistant
Sure, connecting you to the team. Chatbot
Agent took over

Sample flow — design branches with message and condition nodes in the chatbot builder.

Endpoints

  • POST /api/{instanceId}/send

    Text message. Body: phone, message. Non-premium instances consume credits.

  • POST /api/{instanceId}/send-media

    Media upload. multipart file field.

  • GET /api/{instanceId}/qr-code

    Connection QR when status is qr_code_generated.

  • GET /api/{instanceId}/status

    initializing | qr_code_generated | connected | disconnected | requires_premium

  • POST /api/instances/create

    External provisioning. X-API-Secret. First instance gets 30 days premium.

Sign up for an API key