Отрасль: Связь и уведомления. Актуально на 2026-10-24.
HTTP API облачной коммуникационной платформы Voximplant для управления аккаунтом: приложения, пользователи, правила и сценарии, запуск сценариев (звонки, конференции), обзвоны по спискам (call lists), телефонные номера, SMS, история звонков, очереди и SmartQueue, ключи и роли. Все методы вызываются POST-запросом на один адрес; имя метода передаётся параметром cmd, остальные параметры — полями формы. Описание собрано по официальным клиентским библиотекам Voximplant (Python и Node.js).
Звонок по кнопке в CRM или по событию: напоминание о записи, подтверждение заказа. Логика звонка живёт в JavaScript-сценарии Voximplant, API его запускает.
import json, time, jwt, requests # pip install pyjwt cryptography requests
creds = json.load(open("credentials.json"))
def vox(cmd: str, **params) -> dict:
now = int(time.time())
token = jwt.encode({"iss": creds["account_id"], "iat": now, "exp": now + 60},
creds["private_key"], algorithm="RS256", headers={"kid": creds["key_id"]})
r = requests.post("https://api.voximplant.com/platform_api",
headers={"Authorization": f"Bearer {token}"}, data={"cmd": cmd, **params}).json()
if "error" in r:
raise RuntimeError(r["error"])
return r
print(vox("StartScenarios", rule_id=123456, script_custom_data=json.dumps({"phone": "79991234567", "order": "1042"})))
Напоминания, опросы, информирование — сценарий звонит по каждому номеру из CSV с повторными попытками.
csv_content = "phone;name\n79991234567;Иван\n79991234568;Анна\n"
r = vox("CreateCallList", rule_id=123456, priority=0, max_simultaneous=5, num_attempts=3,
interval_seconds=600, name="reminders-2026-10-25.csv", file_content=csv_content)
print(r["list_id"])
print(vox("GetCallLists", list_id=r["list_id"]))
SMS клиенту с купленного в Voximplant номера.
vox("ControlSms", phone_number="74951234567", command="enable")
print(vox("SendSmsMessage", source="74951234567", destination="79991234567",
sms_body="Ваша запись подтверждена: 25.10 в 14:00"))
Длительность, стоимость, записи разговоров — для отчётов и контроля качества.
h = vox("GetCallHistory", from_date="2026-10-01 00:00:00", to_date="2026-10-24 23:59:59",
timezone="Europe/Moscow", with_calls="true", with_records="true", count=1000, offset=0)
for session in h["result"]:
print(session["call_session_history_id"], session.get("duration"))
Сотрудник звонит клиентам прямо из веб-интерфейса CRM через Web SDK Voximplant.
app = vox("AddApplication", application_name="crm-calls")
vox("AddUser", user_name="manager-101", user_display_name="Иван Петров",
user_password="Str0ng!Passw0rd", application_id=app["application_id"])
https://api.voximplant.comТип: Bearer-токен
Сервисный аккаунт: JSON-файл с ключом (account_id, key_id, private_key) создаётся в панели управления (https://manage.voximplant.com/settings/service_accounts) или методом CreateKey. Клиент подписывает JWT алгоритмом RS256 (iss — ID аккаунта, iat, exp; в заголовке токена kid — key_id) и передаёт его в заголовке Authorization: Bearer <token>. Токен короткоживущий (в библиотеках — около минуты), его генерируют на каждый запрос.
В ответе — account_id, account_name, account_email и др.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
cmd |
body | string | да | GetAccountInfo |
return_live_balance |
body | boolean | нет | Вернуть актуальный баланс |
Запускает JavaScript-сценарий в новой медиасессии по правилу маршрутизации. В ответе: result, media_session_access_url, media_session_access_secure_url (HTTP-запрос на них вызывает событие AppEvents.HttpRequest в сценарии), call_session_history_id.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
cmd |
body | string | да | StartScenarios |
rule_id |
body | integer | да | ID правила (обязателен, если нет rule_name); к правилу должен быть привязан сценарий |
rule_name |
body | string | нет | Имя правила вместо rule_id |
user_id |
body | integer | нет | Запуск от имени пользователя (или user_name) |
user_name |
body | string | нет | Имя пользователя |
application_id |
body | integer | нет | ID приложения (или application_name) |
application_name |
body | string | нет | Имя приложения |
script_custom_data |
body | string | нет | Данные, доступные в сценарии через VoxEngine.customData() |
reference_ip |
body | string | нет | IP для выбора ближайшего сервера |
server_location |
body | string | нет | Расположение сервера (приоритетнее reference_ip) |
Создаёт сессию видеоконференции или подключает к существующей с тем же conference_name.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
cmd |
body | string | да | StartConference |
conference_name |
body | string | да | Имя конференции |
rule_id |
body | integer | да | ID правила |
application_id |
body | integer | нет | ID приложения |
script_custom_data |
body | string | нет | Пользовательские данные для сценария |
Загружает CSV и сразу запускает правило. Файл передаётся в теле запроса или multipart. В ответе: result, count, list_id, batch_id.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
cmd |
body | string | да | CreateCallList |
rule_id |
body | integer | да | ID правила |
priority |
body | integer | да | Приоритет 0…2^31, 0 — наивысший |
max_simultaneous |
body | integer | да | Число одновременно обрабатываемых задач |
num_attempts |
body | integer | да | Число попыток, 1–5 |
name |
body | string | да | Имя файла, до 255 символов, без / и \ |
file_content |
body | file | да | CSV-файл со списком |
list_custom_data |
body | string | нет | Пользовательские данные списка |
interval_seconds |
body | integer | нет | Интервал между попытками, по умолчанию 0 |
encoding |
body | string | нет | Кодировка файла, по умолчанию UTF-8 |
delimiter |
body | string | нет | Разделитель, по умолчанию ; |
call_list_type |
body | string | нет | automatic, predictive, progressive |
queue_id |
body | integer | нет | ID очереди ACD (для predictive/progressive) |
start_at |
body | integer | нет | Время старта, Unix timestamp (UTC) |
task_priority_strategy |
body | string | нет | first_attempts (по умолчанию) или repeated_attempts |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
cmd |
body | string | да | GetCallLists |
list_id |
body | string | нет | ID через ; или all |
name |
body | string | нет | Поиск по имени |
is_active |
body | boolean | нет | Только активные |
from_date |
body | string | нет | Дата от, UTC YYYY-MM-DD HH:mm:ss |
to_date |
body | string | нет | Дата до |
count |
body | integer | нет | До 1000 записей |
offset |
body | integer | нет | Пропустить N записей |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
cmd |
body | string | да | StopCallListProcessing |
list_id |
body | integer | да | ID списка |
Длительность, стоимость, логи и др. Без дат — интервал по умолчанию (месяц).
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
cmd |
body | string | да | GetCallHistory |
from_date |
body | string | нет | Начало, YYYY-MM-DD HH:mm:ss |
to_date |
body | string | нет | Конец |
timezone |
body | string | нет | Часовой пояс дат |
call_session_history_id |
body | string | нет | ID сессий через ;, до 1000 |
application_id |
body | integer | нет | ID приложения |
user_id |
body | string | нет | ID пользователей через ; |
remote_number |
body | string | нет | Номера клиентов через ; |
local_number |
body | string | нет | Номера платформы через ; |
with_calls |
body | boolean | нет | Включить звонки внутри сессий |
with_records |
body | boolean | нет | Включить записи |
desc_order |
body | boolean | нет | Обратный порядок |
count |
body | integer | нет | До 1000 записей |
offset |
body | integer | нет | Пропуск, до 10000 |
Номер-отправитель должен быть куплен в Voximplant, поддерживать SMS (is_sms_supported в GetPhoneNumbers) и SMS должны быть включены через ControlSms. В ответе: result, message_id, fragments_count.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
cmd |
body | string | да | SendSmsMessage |
source |
body | string | да | Номер отправителя |
destination |
body | string | да | Номер получателя |
sms_body |
body | string | да | Текст до 765 символов; сегменты по 160 GSM-7 или 70 UTF-16 |
store_body |
body | boolean | нет | Хранить текст исходящих (по умолчанию false) |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
cmd |
body | string | да | ControlSms |
phone_number |
body | string | да | Номер |
command |
body | string | да | enable или disable |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
cmd |
body | string | да | GetPhoneNumbers |
phone_id |
body | string | нет | ID номера |
phone_number |
body | string | нет | Номера через ; |
activation_status |
body | string | нет | Статусы через ;, например ACTIVE |
application_id |
body | integer | нет | ID приложения |
is_bound_to_application |
body | boolean | нет | Привязан ли к приложению |
country_code |
body | string | нет | Коды стран через ; |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
cmd |
body | string | да | GetApplications |
application_id |
body | integer | нет | ID приложения |
application_name |
body | string | нет | Имя приложения |
with_rules |
body | boolean | нет | Вернуть правила |
with_scenarios |
body | boolean | нет | Вернуть сценарии |
count |
body | integer | нет | Число записей |
offset |
body | integer | нет | Смещение |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
cmd |
body | string | да | AddApplication |
application_name |
body | string | да | Короткое имя в формате [a-z][a-z0-9-]{1,64} |
secure_record_storage |
body | boolean | нет | Защищённое хранение логов и записей |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
cmd |
body | string | да | AddUser |
user_name |
body | string | да | Имя в формате [a-z0-9][a-z0-9_-]{2,49} |
user_display_name |
body | string | да | Отображаемое имя, до 256 символов |
user_password |
body | string | да | Пароль от 8 символов: заглавная и строчная буква, цифра, спецсимвол |
application_id |
body | integer | да | ID приложения (или application_name) |
application_name |
body | string | нет | Имя приложения |
parent_accounting |
body | boolean | нет | Использовать баланс родительского аккаунта |
user_active |
body | boolean | нет | Активен ли пользователь |
user_custom_data |
body | string | нет | Произвольная строка |
multipart/form-data); списки — строкой через ;.YYYY-MM-DD HH:mm:ss.error с полями code и msg.application/octet-stream.GetCallHistory, GetCallLists: до 1000 записей за запрос.CreateCallList: 1–5 попыток на номер.Если этого недостаточно — официальная документация: https://voximplant.com/docs/references/httpapi JSON: https://mcp-everything.ru/api/integrations/voximplant. MCP: https://mcp-everything.ru/mcp