Получение статистики
Интеграция статистики по API позволяет автоматически получать данные о звонках из Сипуни и использовать их во внешних системах — CRM, аналитике или собственной базе данных.
В этой статье разберем, как можно выгрузить статистику по API: покажем, как получить список звонков и записей разговоров и как выгрузить список сотрудников со статусами присутствия.
Чтобы настроить интеграцию перейдите в раздел «Интеграции» → «Интеграция по API» и откройте вкладку «Статистика».

Как получить список звонков и записей разговоров
Данные выгружаются в формате CSV.
URL запрос: https://sipuni.com/api/statistic/export
Параметры запроса
Чтобы получить список звонков, отправьте запрос на указанный URL. В таблице ниже перечислены параметры запроса. С их помощью можно задать период выгрузки, тип звонков, статус вызова и другие фильтры.
Параметры передаются в HTTP-запросе. Обязательные параметры — user и hash. Остальные параметры можно использовать как фильтры, если нужно ограничить выгрузку.
| Название | Описание | Пример значений, которые будут приходить |
| user | Номер в системе | 012345 |
| from | С какой даты | 24.05.2022 |
| to | До какой даты (включительно) | 24.05.2022 |
| timeFrom | Начало временного промежутка | 10:00 |
| timeTo | Конец временного промежутка | 20:00 |
| type | Тип звонка | 0 — Все звонки 1 — Входящий 2 — Исходящий 3 — Внутренний |
| state | Статус звонка | 0 — Все звонки 1 — Пропущенный 2 — Принятый |
| tree | Номер схемы | 000691234 — Исходящая 000-421234 — Дежурные 000-424321 — Схема распределитель спам |
| showTreeId | Отображать ID схемы | 0 - Нет 1 - Да |
| fromNumber | Номер, откуда | 7916123456 101 102 ... |
| toNumber | Номер, куда | 7916123456 101 102 ... |
| numbersRinged | Кому звонили | 0 - не отображать 1 - отображать |
| numbersInvolved | Кто разговаривал | 0 - не отображать 1 - отображать |
| names | Отобразить имена сотрудников | 0 - Нет 1 - Да |
| outgoingLine | Исходящая линия | 0 - не отображать 1 - отображать |
| toAnswer | Номер, кто ответил | 7916123456 101 102 ... |
| anonymous | Отображать анонимные звонки | 0 — Нет 1 — Да |
| firstTime | Только новые клиенты | 0 — Нет 1 — Да |
| dtmfUserAnswer | Отобразить набор dtmf | 0 - Нет 1 - Да |
| hash | Контрольная подпись |
Формирование контрольной подписи
При формировании контрольной подписи (hash) значения полей «склеиваются» в одну строку с разделителем «+» в следующем порядке:
- anonymous
- crmLinks
- dtmfUserAnswer
- firstTime
- from
- fromNumber
- hangupinitor
- ignoreSpecChar
- names
- numbersInvolved
- numbersRinged
- outgoingLine
- rating
- showTreeId
- state
- timeFrom
- timeTo
- to
- toAnswer
- toNumber
- tree
- type
- user
- Секретный ключ
Полученную строку нужно преобразовать в MD5-хэш и передать в параметре hash.
Пример ответа на PHP
| $user = '012345'; $crmLinks = 0; $from = date('d.m.Y'); $to = date('d.m.Y'); $type = '0'; $state = '0'; $timeFrom="10:00"; $timeTo="20:00"; $tree = ''; $rating = '5'; $showTreeId = '1'; $fromNumber = ''; $numbersRinged = 0; $numbersInvolved = 0; $names = 0; $outgoingLine = 1; $toNumber = ''; $toAnswer = ''; $anonymous = '1'; $firstTime = '0'; $dtmfUserAnswer = 0; $hangupinitor = '1'; $ignoreSpecChar = '1'; $secret = 'Ваш ключ интеграции'; $hashString = join('+', array($anonymous, $crmLinks, $dtmfUserAnswer, $firstTime, $from, $fromNumber, $hangupinitor, $ignoreSpecChar, $names, $numbersInvolved, $numbersRinged, $outgoingLine, $rating, $showTreeId, $state, $timeFrom, $timeTo, $to, $toAnswer, $toNumber, $tree, $type, $user, $secret)); $hash = md5($hashString); $url = 'https://sipuni.com/api/statist...'; $query = http_build_query(array( 'anonymous' => $anonymous, 'crmLinks' => $crmLinks, 'dtmfUserAnswer' => $dtmfUserAnswer, 'firstTime' => $firstTime, 'from' => $from, 'fromNumber' => $fromNumber, 'hangupinitor' => $hangupinitor, 'ignoreSpecChar' => $ignoreSpecChar, 'names' => $names, 'numbersInvolved' => $numbersInvolved, 'numbersRinged' => $numbersRinged, 'outgoingLine' => $outgoingLine, 'rating' => $rating, 'showTreeId' => $showTreeId, 'state' => $state, 'timeFrom' => $timeFrom, 'timeTo' => $timeTo, 'to' => $to, 'toAnswer' => $toAnswer, 'toNumber' => $toNumber, 'tree' => $tree, 'type' => $type, 'user' => $user, 'hash' => $hash, )); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $query); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); curl_close($ch); header("Content-Disposition: attachment; filename=stat_$from-$to.csv"); echo $output; |
Как получить полный список записей разговоров
💡 Обратите внимание: в этой части рассказываем как получить список данных по записям. Как получить аудиофайлы — рассказываем ниже.
Данные выгружаются в формате CSV.
URL: https://sipuni.com/api/statistic/export/all
Параметры запроса
Этот метод позволяет выгрузить список всех записей разговоров. В таблице ниже указаны параметры запроса, которые нужно передать при обращении к API.
С их помощью можно указать количество записей в ответе, порядок сортировки и номер страницы для постраничной выгрузки.
| Название | Описание | Пример значений, которые будут приходить |
| user | Номер в системе | 012345 |
| limit | Количество записей | 1-200000 |
| order | Отсчитывать с начальной или конечной даты | asc-с начала desc-с конца |
| page | Страница пагинации | 1 |
| hash | Контрольная подпись |
Формирование контрольной подписи
При формировании контрольной подписи значения полей «склеиваются» в одну строку с разделителем «+» в следующем порядке:
- limit
- order
- page
- user
- Секретный ключ
Полученную строку нужно преобразовать в MD5-хэш и передать в параметре hash.
Пример ответа на PHP
| $user = '012345'; $limit = 200000; $order = 'asc'; $page = 1; $secret = 'ваш ключ интеграции'; $hashString = join('+', array($limit, $order, $page, $user, $secret)); $hash = md5($hashString); $url = 'https://sipuni.com/api/statistic/export/all'; $query = http_build_query(array( 'limit' => $limit, 'order' => $order, 'page' => $page, 'user' => $user, 'hash' => $hash, )); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $query); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); curl_close($ch); header("Content-Disposition: attachment; filename=stat_$page.csv"); echo $output; |
Как получить аудиофайлы разговоров
URL: https://sipuni.com/api/statistic/record
Параметры запроса
Чтобы скачать аудиофайл разговора, отправьте запрос на указанный URL.
В таблице ниже приведены параметры, которые нужно передать в запросе.
| Название | Описание | Пример значений, которые будут приходить |
| user | Номер в системе | 012345 |
| id | ID записи | Берется из CSV-файла (см. выше) |
| hash | Контрольная подпись |
Формирование контрольной подписи
При формировании контрольной подписи значения полей «склеиваются» в одну строку с разделителем «+» в следующем порядке:
- id
- user
- секретный ключ
Полученную строку нужно преобразовать в MD5-хэш и передать в параметре hash.
Пример ответа на PHP
| $user = '012345'; $id = '1234567890.123456'; $secret = 'ваш ключ интеграции'; $hashString = join('+', array($id, $user, $secret)); $hash = md5($hashString); $url = 'https://sipuni.com/api/statistic/record'; $query = http_build_query(array( 'id' => $id, 'user' => $user, 'hash' => $hash, )); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $query); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); curl_close($ch); header("Content-Disposition: attachment; filename=$id.mp3"); echo $output; |
Как получить список сотрудников и их статусов
Выгружается в формате CSV.
URL: https://sipuni.com/api/statistic/operators
Параметры запроса
Этот метод позволяет получить список сотрудников и их текущие статусы присутствия.
В таблице ниже указаны параметры запроса, которые необходимо передать при обращении к API.
| Название | Описание | Пример значений, которые будут приходить |
| user | Номер кабинета в системе | 012345 |
| hash | Контрольная подпись |
Формирование контрольной подписи
При формировании контрольной подписи значения полей «склеиваются» в одну строку с разделителем «+» в следующем порядке:
- user
- секретный ключ
Полученную строку нужно преобразовать в MD5-хэш и передать в параметре hash.
Пример ответа на PHP
| $user = '012345'; $secret = 'ваш ключ интеграции'; $hashString = join('+', array($user, $secret)); $hash = md5($hashString); $url = 'https://sipuni.com/api/statist...'; $query = http_build_query(array( 'user' => $user, 'hash' => $hash, )); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $query); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); curl_close($ch); header("Content-Disposition: attachment; filename=operators_$from-$to.csv"); echo $output; |
Отлично! Теперь вы знаете, как автоматически выгружать журнал звонков, скачивать записи разговоров и отслеживать статусы сотрудников без ручной работы в личном кабинете.