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.
Direct messages, comment replies, story replies and files of an Instagram account (ig_{id}).
Instagram accounts appear in GET /channels as ig_12; {peer} is the IGSID of a person who wrote to you. Rows carry kind: comment | story_reply | story_mention. reply_to + public_reply=true answers a comment publicly; otherwise the first message to a commenter goes as a private reply (7 days).
Base URL: https://chatvendor.net/api/v1 · every response is {"success": true, "data": …}
GET
/channels/ig_{id}/dialogs
Instagram: Direct chats of the account (peer = IGSID; rows carry kind: comment | story_reply | story_mention)
channels:read
Scope: channels:read
Parameters
idpath · integerrequiredChannel id (from GET /channels)
Response 200 · Dialog[]
peer_id integertype stringtitle stringusername stringunread_count integerlast_message_at string (date-time)last_message_text string
curl https://chatvendor.net/api/v1/channels/ig_1/dialogs \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
GET
/channels/ig_{id}/dialogs/{peer}/messages
Instagram: messages of a chat
channels:read
Scope: channels:read
Parameters
idpath · integerrequiredChannel id (from GET /channels)
peerpath · stringrequiredTelegram peer: numeric id (channels/groups negative, e.g. -1001234567890), @username or phone
Response 200 · ChatMessage[]
id integerchat_id integersender_id integersender_name stringout booleandate string (date-time)text stringmedia objectreply_to integertopic_id integerbuttons object[][]
curl https://chatvendor.net/api/v1/channels/ig_1/dialogs/@username/messages \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
POST
/channels/ig_{id}/dialogs/{peer}/messages
Instagram: send text or quick-reply buttons; reply_to + public_reply=true answers a comment row publicly, otherwise the first message to a commenter goes as a private reply
channels:write
Scope: channels:write
Parameters
idpath · integerrequiredChannel id (from GET /channels)
peerpath · stringrequiredTelegram peer: numeric id (channels/groups negative, e.g. -1001234567890), @username or phone
Body (application/json)
textstringbuttonsstring[]reply_tointegerpublic_replybooleanResponse 200 · ChatMessage
id integerchat_id integersender_id integersender_name stringout booleandate string (date-time)text stringmedia objectreply_to integertopic_id integerbuttons object[][]
curl -X POST https://chatvendor.net/api/v1/channels/ig_1/dialogs/@username/messages \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
-H "Content-Type: application/json" \
-d '[]'
POST
/channels/ig_{id}/dialogs/{peer}/file
Instagram: send a file (multipart: file, caption, as=auto|document|voice)
channels:write
Scope: channels:write
Parameters
idpath · integerrequiredChannel id (from GET /channels)
peerpath · stringrequiredTelegram peer: numeric id (channels/groups negative, e.g. -1001234567890), @username or phone
multipart/form-data — fields are listed in the summary above.
Response 200 · ChatMessage
id integerchat_id integersender_id integersender_name stringout booleandate string (date-time)text stringmedia objectreply_to integertopic_id integerbuttons object[][]
curl -X POST https://chatvendor.net/api/v1/channels/ig_1/dialogs/@username/file \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
-F "file=@photo.jpg" -F "caption=…"
POST
/channels/ig_{id}/dialogs/{peer}/read
Instagram: mark seen
channels:write
Scope: channels:write
Parameters
idpath · integerrequiredChannel id (from GET /channels)
peerpath · stringrequiredTelegram peer: numeric id (channels/groups negative, e.g. -1001234567890), @username or phone
Response 200
OK
curl -X POST https://chatvendor.net/api/v1/channels/ig_1/dialogs/@username/read \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"