Документация Api V1



● Общая информация


Адрес сервера - https://app.sipsim.by/api/v1/


Как получить токен доступа?


Личный кабинет sipsim.by => Интеграции => Кнопка "Подключить" под иконкой API


Зачем нужен токен и как его использовать?


Токен нужен для авторизации вашего запроса. 

Для каждого запроса по API V1 нужно добавить в параметрах токен. 

Пример: /phones?token=Ваш токен


● Health Check

Проверяет корректность переданного токена и доступность API.


GET /health
Request (запрос)

Дополнительных параметров не требуется.


Response (ответ) => 

  • 200 OK – токен действителен, API доступно.
  • 403 Forbidden – токен отсутствует или неверен.
{
  "status": "ok",
  "client_id": 123
}



● Phones


Phone (телефон) -- это базовый элемент системы. 

Если вам нужно узнать настройки Менеджера, Отдела или IVR в нашей системе, то вам необходим именно phones.


Доступные методы

  • GET /phones


GET /phones

Request (запрос)

Дополнительных параметров нет.


Response (ответ) => Массив телефонов


Элемент массива      

поле
тип поля
описание
typestring"regular" "department" "ivr"
numberstringНомер телефона
outbound_numberstringНомер телефона при исходящем => подменный номер для исходящего звонка. Может быть пустым.
internal_numberintВнутренний номер телефона
calls_record_settingsobjectНастройки записи звонков
calls_redirect_settingsobjectНастройки переадресации
phone_groupsarrayГруппы дозвона для отдела
ivr_rulesobjectПравила IVR


calls_record_settings

поле
тип поля
описание
inbound_enabledbooleanЗапись входящих
outbound_enabledbooleanЗапись исходящих


calls_redirect_settings

поле
тип поля
описание
force_redirection{enabled: boolean, target_number: string or null}Безусловная переадресация =>
переадресация будет при любом входящем.
conditional_redirection{enabled: boolean, waiting_seconds: int, target_number: string or null}Условная переадресация =>
переадресация при условии неответа больше, чем установленное время ожидания


phone_group

поле
тип поля
описание
namestringИмя группы
cycles_amountintКоличество циклов
waiting_timeintВремя ожидания в секундах
smart_distributionbooleanУмное распределение
numbersarrayМассив номеров группы
working_schedulearrayМассив 7 элементов. Для каждого дня расписания.


working_schedule

поле
тип поля
описание
day_of_week_indexintИндекс дня недели (Sunday - 0)
day_of_week_namestringИмя дня недели на английском
enabledboolean 
startstringВремя начала работы ("09:00")
endstringВремя конца работы ("14:00")



●Calls


Call (звонок) -- хранит все данные о звонке.


Доступные методы

  • GET /calls


GET /calls

Request (запрос)


!Промежуток между датами должен быть меньше 3 месяцев!       

поле
тип поля
описание
start_date
Обязательный параметр
"%d.%m.%Y"Поиск звонков начиная с этой даты
end_date
Обязательный параметр
"%d.%m.%Y"Поиск звонков заканчивая этой датой
page
По умолчанию равен 0
intДля пагинации (первая страница = 0)


Response (ответ)


поле
тип поля
описание
pageintНомер текущей страницы
totalintОбщее количество звонков
limitintКоличество звонков на странице (50)
callsarrayМассив звонков


Элемент массива звонков

поле
тип поля
описание
call_typestring"outbound", "inbound"
sip_statusstring"answer", "no_answer", "cancel", "busy", "unavailable", "other"
caller_numberstringКто звонил
target_numberstringКуда звонил
answered_phone_numberstring or nullНомер телефона (если пропущенный — null)
answeredboolean 
registration_timestring(time format)Время регистрации звонка
start_timestring(time format)Время начала дозвона
answered_timestring(time format) or nullВремя ответа на звонок
end_timestring(time format)Время конца дозвона
wait_duration_secintВремя ожидания ответа
duration_secintВремя разговора
play_record_linkstringСсылка на запись разговора
public_idstringИдентификатор звонка (для обратной совместимости)
external_idstringИдентификатор звонка в АТС. Вместе с call_type однозначно указывает на запись в SipSim. Для детальных AI-методов передавайте оба поля из этого ответа.
transcriptionobjectСтатус транскрипции
transcription.statusstringnone, processing, ready, failed
transcription.readybooleantrue — транскрипцию можно получить
aiobjectСчётчики AI-результатов
ai.summaries_countintКоличество саммари
ai.ratings_countintКоличество обработанных рейтингов
ai.tags_countintКоличество тегов



●AI


AI-данные (транскрипция, саммари, рейтинги, теги) доступны только для чтения (GET). 

Все методы требуют token в параметрах запроса.


Идентификатор звонка: для детальных методов используйте external_id и call_type из ответа GET /calls. Поле public_id в URL детальных методов не используется.

external_id — идентификатор звонка в АТС. Для однозначного доступа к записи в SipSim может понадобиться ещё call_type (inbound или outbound).

В большинстве случаев (звонок клиенту или от клиента) в системе одна запись на external_id — параметр call_type можно не передавать.

Если по одному external_id найдены две ноги (например, внутренний звонок менеджер ↔ менеджер), API вернёт 409 Conflict и список доступных значений в поле call_types. Повторите запрос с call_type=inbound или call_type=outbound.

Алиас: direction=incoming (= inbound), direction=outgoing (= outbound).


Детали по одному звонку

  • GET /calls/{external_id}/transcription
  • GET /calls/{external_id}/summaries
  • GET /calls/{external_id}/ratings
  • GET /calls/{external_id}/tags

Пример: /calls/AtsA1-a87d19ce-d288-4064-8d76-2f0d91a72a60/ratings?token=Ваш_токен&call_type=inbound


Общие query-параметры (детали по одному звонку)

поле
тип поля
описание
token
обязательный
stringТокен API
call_type
опциональный
stringinbound или outbound. Обязателен, если по external_id найдено две ноги (ответ 409).
direction
опциональный
stringАлиас для call_type: incoming (= inbound), outgoing (= outbound).


GET /calls/{external_id}/transcription

Возвращает транскрипцию звонка.

Requesttoken (обязательный), call_type или direction (опционально, см. таблицу выше).


Response

поле
тип поля
описание
statusstringnone, processing, ready, failed
readybooleanГотова ли транскрипция
external_idstringИдентификатор звонка
duration_secintДлительность разговора
directionstringinbound или outbound
segmentsarrayМассив сегментов речи
total_segmentsintКоличество сегментов

Элемент массива segments

поле
тип поля
описание
speakerstringclient — клиент; manager — менеджер
channelstringКанал записи
start_secfloatНачало сегмента (сек)
end_secfloatКонец сегмента (сек)
textstringТекст фразы

Если транскрипция не готова — segments будет пустым массивом.


GET /calls/{external_id}/summaries

Все саммари звонка (только с непустым текстом).

Request — те же параметры, что и для transcription.


Элемент массива summaries

поле
тип поля
описание
rule_namestringНазвание правила саммари
summarystringТекст саммари
updated_atstring (time format)Время обновления


GET /calls/{external_id}/ratings

Обработанные рейтинги звонка. Пустой массив ratings — рейтингов нет.

Request — те же параметры, что и для transcription.


Объект call

поле
тип поля
описание
caller_numberstringКто звонил
target_numberstringКуда звонил
registration_timestring (time format)Время регистрации звонка


Элемент массива ratings

поле
тип поля
описание
rule_namestringНазвание правила оценки
overall_scoreintОбщая оценка
criteria_scoresarrayОценки по критериям
highlightsarrayСильные стороны
improvementsarrayЗоны роста
updated_atstring (time format)Время обновления


Элемент массива criteria_scores

поле
тип поля
описание
namestringНазвание критерия
scoreintОценка
feedbackstringКомментарий


GET /calls/{external_id}/tags

Request — те же параметры, что и для transcription.


Элемент массива tags

поле
тип поля
описание
namestringНазвание тега
descriptionstringОписание тега


Коллекции AI-данных

  • GET /ai/ratings
  • GET /ai/summaries
  • GET /ai/transcriptions
  • GET /ai/tags

Request (запрос)


!Промежуток между датами должен быть меньше 3 месяцев!

поле
тип поля
описание
tokenобязательныйТокен API
start_dateобязательный, "%d.%m.%Y"Начало периода
end_dateобязательный, "%d.%m.%Y"Конец периода
pageint, по умолчанию 0Пагинация
phoneодин из двухНомер телефона (любой формат)
phone_licence_idодин из двухID лицензии номера
phone_rolestring, по умолчанию anycaller, target, answered, any
call_typestringinbound или outbound (опционально)

Номер в phone можно передавать в любом формате — сервер нормализует автоматически.


Response — общий для всех коллекций:

поле
тип поля
описание
status_codeint200
pageintТекущая страница
totalintВсего записей
limitint50
ratings / summaries / transcriptions / tagsarrayМассив результатов


    GET /ai/ratings — рейтинги + контекст звонка (external_id, caller_number, target_number, registration_time).

    GET /ai/summaries — саммари + контекст звонка.

    GET /ai/transcriptions — метаданные готовых транскрипций (без текста segments).

    GET /ai/tags — теги + контекст звонка, вложенный объект tag (name, description).


Примеры запросов

/calls?token=Ваш_токен&start_date=01.05.2026&end_date=31.05.2026

/ai/ratings?token=Ваш_токен&start_date=01.05.2026&end_date=31.05.2026&phone=%2B3752911115&phone_role=caller

/calls/AtsA1-a87d19ce-d288-4064-8d76-2f0d91a72a60/transcription?token=Ваш_токен

/calls/AtsA1-a87d19ce-d288-4064-8d76-2f0d91a72a60/transcription?token=Ваш_токен&call_type=inbound


Коды ошибок (AI)

код
описание
400Неверные параметры (в т.ч. недопустимый call_type)
401Неверный токен
404Звонок не найден
409По external_id найдено несколько звонков — укажите call_type (inbound / outbound). В теле ответа поле call_types — список допустимых значений.
429Лимит 15 запросов в минуту

Пример ответа 409

{
  "code": 409,
  "error": "Conflict",
  "msg": "Multiple calls match external_id, specify call_type",
  "call_types": ["inbound", "outbound"]
}