Skip to content
ChatVendor ChatVendor

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.

Segments, campaigns, tasks

Audiences from the contact card, drip campaigns with A/B steps, and reminders for the team.

Base URL: https://chatvendor.net/api/v1 · every response is {"success": true, "data": …}

GET /segments Saved audiences (segments) with rules and the cached size

Scope: channels:read

Response 200

OK

curl https://chatvendor.net/api/v1/segments \
  -H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
POST /segments/preview Count contacts for ad-hoc rules (tags_any, tags_none, vars, active_days, silent_days, purchased, min_points, has_phone, networks, lead_status…)

Scope: channels:read

Body (application/json)

rulesobject

Response 200

OK

curl -X POST https://chatvendor.net/api/v1/segments/preview \
  -H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
  -H "Content-Type: application/json" \
  -d '{"rules":{"tags_any":"vip","active_days":30}}'
GET /segments/{id}/contacts Members of a segment (channel_id, peer_id, title, phone, tags, points); ?limit=&offset=

Scope: channels:read

Parameters

idpath · integerrequired

Segment id

Response 200

OK

curl https://chatvendor.net/api/v1/segments/1/contacts \
  -H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
GET /campaigns Drip campaigns (entry rule, steps, enrolled)

Scope: channels:read

Response 200

OK

curl https://chatvendor.net/api/v1/campaigns \
  -H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
GET /campaigns/{id} A campaign with per-step / per-variant stats (sent, replied, converted) and enrolment counts

Scope: channels:read

Parameters

idpath · integerrequired

Campaign id

Response 200

OK

curl https://chatvendor.net/api/v1/campaigns/1 \
  -H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
POST /campaigns/{id}/enrol Put a contact into the campaign now (the first step follows its day/hour rule)

Scope: channels:write

Parameters

idpath · integerrequired

Campaign id

Body (application/json)

channel_idstring
peer_idstring

Response 200

OK

curl -X POST https://chatvendor.net/api/v1/campaigns/1/enrol \
  -H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
  -H "Content-Type: application/json" \
  -d '{"channel_id":"wa_12","peer_id":"998901234567"}'
GET /tasks Open reminders of the team (?done=1 for finished, ?all=1 for both)

Scope: channels:read

Response 200

OK

curl https://chatvendor.net/api/v1/tasks \
  -H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
POST /tasks Create a reminder; channel_id + peer_id tie it to a chat, user_id assigns it

Scope: channels:write

Body (application/json)

titlestring
due_atstring
notestring
user_idinteger
channel_idstring
peer_idstring

Response 200

OK

curl -X POST https://chatvendor.net/api/v1/tasks \
  -H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
  -H "Content-Type: application/json" \
  -d '[]'
POST /tasks/{id}/done Mark a reminder done (undo=true reopens)

Scope: channels:write

Parameters

idpath · integerrequired

Task id

Response 200

OK

curl -X POST https://chatvendor.net/api/v1/tasks/1/done \
  -H "Authorization: Bearer cv_live_xxxxxxxxxxxx"