Общая информация
Перед началом работы с API необходимо ознакомиться с соглашениями, которые используются в примерах.
Все запросы выполняются по протоколу HTTPS.
Соглашения, используемые в описании:
Домен и АТС — это одно и то же: выделенная виртуальная АТС.
Обязательные поля помечаются символом
*в имени.Модели всех объектов содержат числовое поле ID.
В примерах используются переменные вида {{ Переменная }}.
Используемые переменные:
Переменная |
Описание |
|---|---|
v2_host |
Адрес личного кабинета платформы |
username |
Логин пользователя |
password |
Пароль пользователя |
auth_token |
Ключ, полученный в результате выполнения Авторизация |
Пользователи операторского типа могут работать с объектами и методами клиентов. При этом в запросах необходимо передавать domain_id.
Пример получения списка номеров домена, если авторизация выполнена учётной записью оператора платформы:
POST http://{{v2_host}}/api/
Content-Type: application/json
Authorization: Bearer {{auth_token}}
{
"action": "list",
"obj": "DomainUser",
"action_id": "123",
"params": {
"domain_id": 3
}
}
Как правило, для всех объектов доступен следующий набор методов:
Действие |
Описание |
|---|---|
list |
Получение списка объектов. |
get |
Получение объекта. |
append |
Добавление объекта. |
update |
Обновление объекта. |
delete |
Удаление объекта. |
Дополнительно доступны действия select (выбор объектов по фильтру), list_with_detail и select_with_detail (то же, но с детализацией), get_column_uniq_values (уникальные значения столбца).
Для объекта User доступны также auth, logout, check_auth и 2fa. При работе через WebSocket — subscribe, unsubscribe, stop, pong, set_domain.
При выполнении запросов к API выполняется проверка на наличие токена, наличие прав на работу с объектом, корректность заполненных данных и связанность объектов.
Коды ошибок:
msg_id |
Описание |
|---|---|
100 |
Нетипизированная ошибка, описание в поле text. |
10000 |
Не найдено поле domain_id для поиска домена. Возникает только в объектах Домена. |
10001 |
Не удалось найти домен по его id. |
10002 |
Не удалось найти объект по указанным параметрам. Параметры в поле filter. |
10003 |
Ошибка проверки уникальности. fields и values содержат значения для проверки. |
10004 |
Запрашиваемое действие не доступно для объекта. |
10005 |
Ошибка в значении поля. Коды ошибок. |
10006 |
Ошибка связанности объектов. К примеру запрашивают объект из чужого Домена. |
10007 |
Ошибка связанности объектов на уровне базы данных. |
10008 |
Ошибка конвертации аудиофайла. |
10009 |
Ошибка выполнения действия над объектом, связанная с его содержимым. |
10010 |
Параметры запроса конфликтуют с другими данными. |
10011 |
Ошибка действий над выключенным объектом. |
10012 |
Ошибка ограничения количества объектов. |
10013 |
Ошибка параметров элементов диалплана. |
10014 |
Ошибка данных, передаваемых в диалплане. |
10015 |
Ошибка, связанная с тарифными ограничениями. |
10016 |
Ошибка, связанная с ограничениями лицензии на платформу. |
10017 |
Нельзя понизить тариф: домен использует возможности более высокого уровня. |
10018 |
Ошибка тестирования интеграций |
10019 |
Подключение тарифной опции (расширения), которой нет в текущем тарифе. |
10020 |
Запрещено изменение домена (например, name или secret_token активного домена). |
10021 |
Нет прав на выполнение действия. |
10022 |
Требуется хотя бы один объект. |
10023 |
Пользователь не состоит в участниках объекта. |
10024 |
Объект заблокирован (например, диалог закрыт). |
10025 |
Пароль не соответствует политике безопасности. |
10026 |
Превышен допустимый размер файла. |
10027 |
Действие выполнено вне разрешённого расписания. |
10028 |
Действие запрещено. |
10029 |
Действие временно заблокировано, повторите позже. |
10030 |
Тест не пройден. |
10031 |
Ошибка запроса к внешнему сервису. |
10032 |
(зарезервировано, не используется) |
10033 |
Объект заблокирован, действие невозможно. |
10034 |
Администраторы не могут быть участниками объекта. |
10035 |
Некорректный номер экстренной службы. |
10036 |
Повторяющийся идентификатор поля (field_id). |
10037 |
Требуется двухфакторная аутентификация. |
10038 |
Неверный код двухфакторной аутентификации. |
10039 |
Не указан получатель кода двухфакторной аутентификации. |
10040 |
PBX-хост не готов к работе. |
10041 |
Ошибка поднятия FIP на PBX-хосте. |
10042 |
Запрос к несуществующей таблице базы данных. |
10043 |
Нельзя удалить объект: на него ссылаются другие объекты. |
Справочник кодов ошибок 10005:
msg_id |
Описание |
|---|---|
1 |
Значение должно быть из списка разрешенных. |
2 |
Поле обязательное для заполнения. |
3 |
Значение поля должно быть в формате UUID. |
4 |
Слишком длинное значение строки. |
5 |
Слишком короткое значение строки. |
6 |
Строка не соответствует формату. |
7 |
Формат данных не соответствует UTF-8. |
8 |
Значение должно быть больше или равно установленного значения. |
9 |
Значение должно быть меньше или равно установленного значения. |
10 |
Некорректное значение хеша. |
11 |
Значение не может быть хешем. |
12 |
Не могу распарсить значение. |
13 |
Данные не соответствуют формату URL. |
14 |
Данные не соответствуют формату email. |
15 |
Значение не является числом. |
16 |
Необходимо более одного значения. |
17 |
Не могу распарсить значение как список. |
18 |
Поле нельзя изменить. |
19 |
Значение не является строкой. |
20 |
Значение не является логическим (boolean). |
21 |
Значение не является словарём (dict). |
Типы данных:
Тип |
Описание |
|---|---|
StringType |
Строка произвольной длины. |
IntType |
Целое число. |
DictType |
Json формат вида {«Ключ»: «Значение», ….}. |
ListType |
Json формат вида [1, 2, 4, …]. |
EmailType |
Строка соответствующая RFC 5322. |
ModelType |
Json формат, включающий модель объекта. |
IPv4Type |
Строка, содержащая IP-адрес RFC1918. |
BooleanType |
Логическое значение (true/false). |
FloatType |
Число с плавающей точкой. |
DecimalType |
Точное десятичное число. |
UUIDType |
Строка в формате UUID. |
TimestampType |
Метка времени (Unix timestamp). |
PolyModelType |
Один из нескольких типов моделей. |
BaseType |
Значение произвольного типа. |
Статусы объектов:
ID |
Описание |
|---|---|
1 |
Объект включен. |
0 |
Объект выключен. |