API reference
Sessions
Manage WhatsApp connection sessions.
A session represents one WhatsApp number connected to your ChatKazi account.
If you do not provide a sessionId, ChatKazi uses default.
List sessions
GET /sessions
Terminal
curl "$CHATKAZI_BASE_URL/sessions" \
-H "x-api-key: $CHATKAZI_API_KEY"
Response
{
"data": [
{
"sessionId": "default",
"phoneNumber": "254712345678",
"connected": true,
"state": "connected",
"updatedAt": "2026-05-29T08:30:00.000Z"
}
]
}
Start session
POST /session/start
Starts a WhatsApp session and prepares a QR login flow.
Terminal
curl -X POST "$CHATKAZI_BASE_URL/session/start" \
-H "x-api-key: $CHATKAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "sessionId": "support" }'
Body
| Field | Type | Required | Notes |
|---|---|---|---|
sessionId | string | No | Defaults to default. Use letters, numbers, _, and -. |
Get session status
GET /session/status?sessionId=support
Terminal
curl "$CHATKAZI_BASE_URL/session/status?sessionId=support" \
-H "x-api-key: $CHATKAZI_API_KEY"
Use this endpoint to check whether the session is connected, waiting for QR, or disconnected.
Get QR code
GET /session/qr?sessionId=support
Terminal
curl "$CHATKAZI_BASE_URL/session/qr?sessionId=support" \
-H "x-api-key: $CHATKAZI_API_KEY"
Response
{
"data": {
"sessionId": "support",
"state": "qr_ready",
"qr": "https://wa.me/settings/linked_devices#..."
}
}
Show the qr value as a QR code in your UI. Once the QR is scanned from WhatsApp linked devices, the session state becomes connected.
Log out session
POST /session/logout
Terminal
curl -X POST "$CHATKAZI_BASE_URL/session/logout" \
-H "x-api-key: $CHATKAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "sessionId": "support" }'
Logging out disconnects the WhatsApp number and clears the stored session state.
Session limits
Each subscription plan has an instance limit. If you reach the limit, POST /session/start returns an upgrade message before adding another WhatsApp number.