SMS API
Одним POST ставите SMS в очередь; подключённый телефон отправляет её через SIM.
Скоупы: messages:send, messages:read, devices:read. Используйте заголовок Idempotency-Key, чтобы повторный запрос никогда не отправил дважды. Тестовые ключи (cv_test_) проходят весь процесс, не трогая SIM.
SMS
Поставьте SMS в очередь через свой Android-телефон, проверьте статус, получите список устройств.
Передайте ключ как bearer token и отправьте сообщение POST-ом; подключённый телефон отправит его через SIM. Ответ — 202 с id сообщения; статус смотрите через GET /messages/{id} или вебхуки.
Передавайте заголовок Idempotency-Key при каждой отправке: повтор с тем же ключом вернёт исходный ответ, а не отправит второе SMS. «Sent» — SIM передала сообщение оператору; «delivered» требует отчёта оператора, который возвращают не все.
Base URL: https://chatvendor.net/api/v1 · каждый ответ {"success": true, "data": …}
POST
/messages
Queue an SMS
messages:send
Право: messages:send
Параметры
Idempotency-Keyheader · stringRetrying with the same key returns the original response instead of sending twice
Тело запроса (application/json)
tostringобязательноInternational format; local numbers need default_region
messagestringобязательноdevice_idstringSend from this phone only — fails rather than silently using another
sim_idstringA specific SIM of that device
prioritystring: low | normal | highhigh jumps the queue; rate limits still apply
client_referencestringYour own id, returned and filterable
schedule_atstring (date-time)Send at this time (ISO 8601)
expires_inintegerSeconds (30–86400): expires instead of arriving late
callback_urlstring (uri)Per-message webhook (unsigned)
consent_categorystring: transactional | otp | notification | marketingdefault_regionstringTwo-letter country for local-format numbers
Ответ 202 · SmsMessage
id stringto stringmessage stringstatus string: queued | scheduled | assigned | sent | delivered | failed | cancelled | expireddevice_id stringcreated_at string (date-time)
curl -X POST https://chatvendor.net/api/v1/messages \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
-H "Content-Type: application/json" \
-d '{"to":"+998901234567","message":"Your code is 483921"}'
GET
/messages
List SMS messages
messages:read
Право: messages:read
Параметры
statusquery · stringtoquery · stringdevice_idquery · stringclient_referencequery · stringper_pagequery · integerОтвет 200 · SmsMessage[]
id stringto stringmessage stringstatus string: queued | scheduled | assigned | sent | delivered | failed | cancelled | expireddevice_id stringcreated_at string (date-time)
curl https://chatvendor.net/api/v1/messages \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
GET
/messages/{message}
SMS status and timeline
messages:read
Право: messages:read
Параметры
messagepath · stringобязательноMessage public id
Ответ 200 · SmsMessage
id stringto stringmessage stringstatus string: queued | scheduled | assigned | sent | delivered | failed | cancelled | expireddevice_id stringcreated_at string (date-time)
curl https://chatvendor.net/api/v1/messages/123 \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
POST
/messages/{message}/cancel
Cancel a queued SMS
messages:send
Право: messages:send
Параметры
messagepath · stringобязательноMessage public id
Ответ 200 · SmsMessage
id stringto stringmessage stringstatus string: queued | scheduled | assigned | sent | delivered | failed | cancelled | expireddevice_id stringcreated_at string (date-time)
curl -X POST https://chatvendor.net/api/v1/messages/123/cancel \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
GET
/devices
List paired phones
devices:read
Право: devices:read
Ответ 200 · Device[]
id stringname stringstatus stringlast_seen_at string (date-time)
curl https://chatvendor.net/api/v1/devices \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"
GET
/devices/{device}
One device
devices:read
Право: devices:read
Параметры
devicepath · stringобязательноDevice public id
Ответ 200 · Device
id stringname stringstatus stringlast_seen_at string (date-time)
curl https://chatvendor.net/api/v1/devices/{device} \
-H "Authorization: Bearer cv_live_xxxxxxxxxxxx"