Messenger API
Everything the panel can do with a connected Telegram, WhatsApp or Instagram account, over REST — one key, one response shape, chapter by chapter.
Bookings
Services, free time slots and appointments — what the “Booking” scenario step uses.
Base URL: https://chatvendor.net/api/v1 · every response is {"success": true, "data": …}
GET
/services
Bookable services (duration, price)
channels:read
Scope: channels:read
Response 200
OK
curl https://chatvendor.net/api/v1/services \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
GET
/services/{service}/slots
Free time slots of a service on a date (?date=YYYY-MM-DD, Asia/Tashkent)
channels:read
Scope: channels:read
Parameters
servicepath · integerrequiredService id
datequery · stringResponse 200
OK
curl https://chatvendor.net/api/v1/services/{service}/slots \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
GET
/bookings
Bookings (filters: status, from, to, limit)
channels:read
Scope: channels:read
Response 200
OK
curl https://chatvendor.net/api/v1/bookings \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
POST
/bookings
Book a slot (starts_at must be a free slot); channel_id + peer_id link it to a chat so reminders reach the customer
channels:write
Scope: channels:write
Body (application/json)
service_idintegerrequiredstarts_atstringrequirednamestringphonestringnotestringchannel_idstringpeer_idintegerstatusstring: pending | confirmedResponse 200
OK
curl -X POST https://chatvendor.net/api/v1/bookings \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
-H "Content-Type: application/json" \
-d '{"service_id":1,"starts_at":"…"}'
PATCH
/bookings/{id}
Change status (confirmed / cancelled / done / no_show), move (starts_at) or note
channels:write
Scope: channels:write
Parameters
idpath · integerrequiredBooking id
Body (application/json)
statusstringstarts_atstringnotestringnotifybooleanResponse 200
OK
curl -X PATCH https://chatvendor.net/api/v1/bookings/1 \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
-H "Content-Type: application/json" \
-d '[]'