API-запит експорту журналу дзвінків дозволяє отримати понад 30 параметрів у зручному для вас форматі.
За допомогою лише одного запиту, можна отримати всю необхідну історію взаємодії користувача з сайтом та дзвінками.
У поєднанні з функціоналом переадресації за допомогою Webhook перед дзвінком клієнта, ви можете перевірити його номер - чи був дзвінок повторний та/або наявність вихідного дзвінка для переадресації на менеджера, з яким раніше спілкувався абонент.
Зверніть увагу, що під час експорту даних із журналу дзвінків встановлено обмеження — немає можливості завантажувати більше 6500 дзвінків одним запитом. Щоб експортувати необхідні дзвінки, необхідно розбити період так, щоб при одному запиті експортувалося менше 6500 дзвінків.
Основні параметри запиту:
Адреса API-запиту: https://api.ringostat.net/calls/list ;
Формат запитів — json или csv;
Метод — GET;
Auth-ключ.
Ім'я параметра | Опис | Значення за замовчуванням |
export_type | Формат завантаження даних: json або csv | json |
from | Початкова дата та час експорту у форматі YYYY-MM-DD HH:MM:SS | значення to мінус 24 години |
to | Кінцеві дата та час експорту у форматі YYYY-MM-DD HH:MM:SS (дані будуть отримані за період до зазначеної дати, не включаючи її) | поточні дата та час |
fields | Список полів для вибірки з журналу дзвінків, розділених комою; | calldate, caller, dst |
filters | Фільтри, для вибірки даних, що підпадають під умову за значенням полів | немає |
order | Сортування вибірки | поточні дата та час |
merge | Об'єднання вибірки за номером: 0 – не об'єднувати; 1 – об'єднувати за кожні 24 години; 2 - об'єднувати за весь час | не об'єднувати |
Приклад для Node.js:
const https = require('https');
const config = {
host: 'api.ringostat.net',
path: '/calls/list?export_type=json&from=2019-06-01%2000:00:00&to=2019-06-18%2023:59:59­&fields=calldate,caller,dst,disposition,billsec,utm_source,utm_medium,recording',
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Auth-key': 'unique_auth_key_value'
}
};
const callback = response => {
let result = Buffer.alloc(0);
response.on('data', chunk => {
result = Buffer.concat([ result, chunk ]);
});
response.on('end', () => {
//handle response
})
};
const request = https.request(config, callback);
request.end();
Приклад для Axios.js
const axios = require('axios');
axios({
url: 'https://api.ringostat.net/calls/list',
method: 'GET',
headers: {
'Content-Type': 'application/json; charset=utf-8',
'Auth-key': 'unique_auth_key_value'
},
params: JSON.stringify({
'export_type': 'json',
'from': '2019-06-01 00:00:00',
'to': '2019-06-18 23:59:59',
'fields': 'calldate,caller,dst,disposition,billsec,utm_source,utm_medium,recording'
})
}).then(response => {
//handle response
}).catch(error => {
//handle error
})
Приклад для cURL
curl "https://api.ringostat.net/calls/list?export_type=json&from=2019-06-01 00:00:00&to=2019-06-18 23:59:59&fields=calldate,caller,dst,disposition,billsec,utm_source,utm_medium,recording" \
-H "Content-Type: application/json" \
-H "Auth-key: unique_auth_key_value"
Результат:
Поля для вибірки
За основними параметрами слідують поля для вибірки. Для додавання полів використовується ключ fields. Він дозволяє додати одне або кілька значень, які розділені комами.
Фільтри вибірки
Фільтри необхідні для вибірки дзвінків за заданими параметрами.
Фільтр складається з імені поля, символу порівняння та значенням у відповідній послідовності.
Для додавання фільтра використовується ключ filters
, який дозволяє додавати один або кілька фільтрів, розділених комами.
Фільтр | Опис фільтра |
> | більше |
< | менше |
>= | більше, чи дорівнює |
<= | менше, чи дорівнює |
= | дорівнює |
<> | не дорівнює |
~ | регулярний вираз Літерал має бути закодований у base64 |
Об'єднання та сортування
Об'єднання дзвінків за номером використовується для групування даних за дзвінками та полегшення візуального сприйняття даних, що отримуєте при завантаженні.
Для об'єднання дзвінків використовується ключ merge і за замовчуванням дорівнює 0.
Сортування - один із інструментів групування завантажених даних.
Для сортування даних використовується ключ order і за замовчуванням дорівнює calldate%20asc
Ім’я параметра | значення параметра |
| asc - за зростанням; desc - за спаданням; |
| 0 – не об'єднувати; 1 – об'єднувати за кожну добу; 2 – об'єднувати за весь час |
Тест запиту
Ви можете побачити як виглядає запит на різних мовах програмування на сторінці https://ringostat.readme.io/reference/get_calls-list
Також там можна вказати потрібні параметри (1) та Auth-key (2), і надіслати тестовий запит (3):