Метод: POST
URL: https://analyse.twin24.ai/api/v1/reports
Метод позволяет создать новый отчет. После успешного выполнения запроса будет возвращен идентификатор созданного отчета.
curl --request POST
--url https://analyse.twin24.ai/api/v1/reports
--header 'accept: application/json'
--header 'authorization: Bearer ТОКЕН'
--header 'content-type: application/json' --data '
{
"service": "CIS",
"parameters": {
"params": {
"fields": "callId,autoCallCandidateId,clientExternalId,number,timezone,regionName,callingNumber,startedAt,humanStatusName,amd,duration,mainCallTotalCost,robotCallDuration,robotCallTotalCost,transferCallDuration,transferCallTotalCost,totalCost,hungUpBy,isAssistantRequest,recordPath,messagesAsString,results-confirmation,results-nps,results-result1,results-result2,markers,results-status,results-statusName,results-statusIsEffective,results-evaluation,results-date,amdTryTotalCost,amdDetectedTotalCost,macCallCost,labelCallCost,aiCallSttTotalCost,aiCallLlmTotalCost,aiCallTtsTotalCost",
"filename": "Call Task Report",
"isNewLinkFormat-1": true,
"language": "ru",
"output": "EXCEL",
"taskId": "",
"from": "2026-06-01T00:00:00+07:00",
"to": "2026-06-04T23:59:59+07:00"
},
"method": "GET",
"url": "/api/v1/statistics/cis/outgoing/sessions"
},
"name": "отчет по телефонии за период",
"type": "call_outgoing"
}'
| Заголовок | Значение | Обязательный |
|---|---|---|
accept |
application/json |
Да |
authorization |
Bearer <ВАШ_ТОКЕН> |
Да |
content-type |
application/json |
Да |
| Поле | Тип | Описание |
|---|---|---|
service |
string | Код сервиса. Возможные варианты: IAM, BOT, CHAT, CIS, MESSAGING, ANALYTICS, PLATFORM, AUDIO |
parameters |
object | Параметры формирования отчёта |
name |
string | Название отчёта |
type |
string | Тип отчета. На фронте отображаются в 3 вкладке. На русском, например «Исходящие звонки», «Биллинг чаты». Принимает только латиницу |
parameters| Поле | Тип | Описание |
|---|---|---|
params |
object | Параметры полей отчета и настройки выгрузки |
method |
string | HTTP-метод для получения данных (всегда GET) |
url |
string | Путь к API аналитики, откуда информация будет записана в отчет: - для звонков: /api/v1/statistics/cis/outgoing/sessions- для чатов: /api/v1/statistics/chat/sessions |
params| Поле | Тип | Описание |
|---|---|---|
fields |
string | Список запрашиваемых полей через запятую |
filename |
string | Имя выходного файла. Поддерживается кириллица и латиница |
isNewLinkFormat-1 |
bool | Использовать новый формат ссылок (true/false) |
language |
string | Язык отчёта (ru/en) |
output |
string | Формат выгрузки. С вариантом "output":"EXCEL" запускается генерация EXCEL отчета |
taskId |
string | Идентификатор задания |
from |
string | Начало периода (ISO 8601 с часовым поясом) Пример: 2026-06-01T00:00:00+07:00 |
to |
string | Конец периода (ISO 8601 с часовым поясом) Пример: 2026-06-04T23:59:59+07:00 |
fieldscallId,autoCallCandidateId,clientExternalId,number,timezone,regionName,callingNumber,startedAt,humanStatusName,amd,duration,mainCallTotalCost,robotCallDuration,robotCallTotalCost,transferCallDuration,transferCallTotalCost,totalCost,hungUpBy,isAssistantRequest,recordPath,messagesAsString,results-confirmation,results-nps,results-result1,results-result2,markers,results-status,results-statusName,results-statusIsEffective,results-evaluation,results-date,amdTryTotalCost,amdDetectedTotalCost,macCallCost,labelCallCost,aiCallSttTotalCost,aiCallLlmTotalCost,aiCallTtsTotalCost
fieldsВ таблице ниже приведены возможные поля для fields, и соответствующие им столбцы отчета.
| Поле | Название и описание столбца в отчёте | Дополнительное описание |
|---|---|---|
| callId | Идентификатор звонка | — |
| taskId | Идентификатор задания | — |
| autoCallCandidateId | Идентификатор кандидата | — |
| clientExternalId | Внешний идентификатор абонента | — |
| companyId | Идентификатор компании | — |
| number | Вызываемый номер | — |
| timezone | Часовой пояс | — |
| regionName | Регион номера | — |
| callingNumber | Вызывающий номер | — |
| startedAt | Дата начала звонка | — |
| humanStatusName | Статус | Системный статус звонка |
| amd | Результат AMD | Результат распознавания системы Человек/Робот |
| duration | Длительность звонка | — |
| mainCallTotalCost | Основной звонок сумма | — |
| robotCallDuration | Голосовой робот длительность | — |
| robotCallTotalCost | Голосовой робот сумма | — |
| transferredToOperator | Был ли перевод на оператора | — |
| transferCallDuration | Перевод длительность | — |
| transferCallTotalCost | Перевод сумма | — |
| totalCost | Стоимость звонка | — |
| hungUpBy | Положил трубку | Кем был завершен звонок |
| hangUpCause | Q850 Код | Код статуса завершения звонка. Описание возможных кодов доступно в статье Коды ответов телефонии Q850 |
| isCallEfficiency | Является ли звонок результативным | — |
| isAssistantRequest | Запрос помощи роботом | — |
| recordPath | Адрес записи звонка | — |
| messagesAsString | Текст разговора с роботом | — |
| results-confirmation | results-confirmation | Поле «Подтверждение» фиксации результата в сценарии |
| results-nps | results-nps | Поле «NPS» фиксации результата в сценарии |
| results-result1 | results-result1 | Поле «Результат 1» фиксации результата в сценарии и аналитики в AI-агенте |
| results-result2 | results-result2 | Поле «Результат 2» фиксации результата в сценарии и аналитики в AI-агенте |
| markers | Маркеры диалога | — |
| results-status | results-status | Код статуса из поля «Статус» фиксации результата в сценарии |
| results-statusName | results-statusName | Название статуса из поля «Статус» фиксации результата в сценарии |
| results-statusIsEffective | results-statusIsEffective | Результативность звонка |
| results-evaluation | results-evaluation | Поле «Оценка» фиксации результата в сценарии |
| results-date | results-date | Поле «Дата» фиксации результата в сценарии |
| amdTryTotalCost | Стоимость попыток определения автоответчика | — |
| amdDetectedTotalCost | Стоимость успешных определений автоответчика | — |
| macCallCost | Массовый автоматический вызов стоимость | Заполняется если подключена система МАВ |
| labelCallCost | Этикетка стоимость | Заполняется если подключена система МАВ |
| aiCallSttTotalCost | AI-агент STT сумма | Заполняется только при использовании AI-агента |
| aiCallLlmTotalCost | AI-агент LLM сумма | Заполняется только при использовании AI-агента |
| aiCallTtsTotalCost | AI-агент TTS сумма | Заполняется только при использовании AI-агента |
| aiCallDuration | Длительность диалога с AI-агентом | Заполняется только при использовании AI-агента |
Поля произвольного результата передаются в fields в формате results-name, где name – название поля произвольного результата.
Возвращает ID отчета, который начал генерироваться в личном кабинете.
{
"id": "019e920a-1234-1234-1234-7a5ffdca5fd5"
}
| Название | Тип | Описание |
|---|---|---|
id |
string | Уникальный идентификатор созданного отчета |
Неверный JSON или параметры.
Невалидный или отсутствует Bearer-токен.
Внутренняя ошибка сервера.
Метод: GET
URL: https://analyse.twin24.ai/api/v1/reports/{reportId}/file
Этот метод позволяет скачать сгенерированный файл отчета по его идентификатору.
Файл доступен для скачивания только после того, как отчет получит статус
GENERATED.
curl --location 'https://analyse.twin24.ai/api/v1/reports/019e807d-1234-1234-1234-8a9e21db1795/file' \
--header 'accept: application/json' \
--header 'authorization: Bearer ТОКЕН'
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
reportId |
string | Уникальный идентификатор отчёта (UUID) | 019e807d-1234-1234-1234-8a9e21db1795 |
| Заголовок | Значение | Обязательный |
|---|---|---|
accept |
application/json |
Да |
authorization |
Bearer <ВАШ_ТОКЕН> |
Да |
Код 200. Если сохранить ответ в файл, будет архив с Excel-файлом.
Отчет не найден или файл еще не сгенерирован.
Невалидный или отсутствует Bearer-токен.
Метод: GET
URL: https://analyse.twin24.ai/api/v1/reports
Метод позволяет получить список всех отчетов из личного кабинета. Если нет под рукой ID отчета для скачивания, можно получить список и взять из него нужный ID.
curl --location 'https://analyse.twin24.ai/api/v1/reports?withoutCount=false&withoutItems=false&limit=10&status=GENERATED&from=2026-06-01T00%3A00%3A00%2B00%3A00&to=2026-06-03T00%3A00%3A00%2B00%3A00&service=CIS&withoutEmpty=true' \
--header 'accept: application/json' \
--header 'authorization: Bearer ТОКЕН'
| Заголовок | Значение | Обязательный |
|---|---|---|
accept |
application/json |
Да |
authorization |
Bearer <ВАШ_ТОКЕН> |
Да |
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
withoutCount |
boolean | Исключить поле totalCount из ответа |
Нет |
withoutItems |
boolean | Исключить массив items из ответа |
Нет |
limit |
integer | Максимальное количество отчётов в ответе. По умолчанию 10 | Нет |
status |
string | Фильтр по статусу отчёта. Возможные варианты: CREATED, GENERATING, GENERATED, DELAYED, CANCELED, ERROR | Нет |
from |
string | Начало периода (по дате создания, ISO 8601) Пример: 2026-06-01T00:00:00+00:00 |
Нет |
to |
string | Конец периода (по дате создания, ISO 8601) Пример: 2026-06-03T00:00:00+00:00 |
Нет |
service |
string | Фильтр по сервису. Возможные варианты: IAM, BOT, CHAT, CIS, MESSAGING, ANALYTICS, PLATFORM, AUDIO | Нет |
withoutEmpty |
boolean | Исключить ли пустые отчёты | Нет |
{
"count": 1,
"items": [
{
"id": "019e807d-be53-763a-97c9-8a9e21db1795",
"name": "Ежемесячный отчёт по телефонии CIS с 2026-05-01 03:00 по 2026-06-01 02:59",
"createdBy": null,
"status": "GENERATED",
"service": "CIS",
"type": "billing_cis_call",
"parameters": {
"url": "/local/api/v1/statistics/cis/billing/calls",
"body": "",
"files": [],
"method": "GET",
"params": {
"to": "2026-06-01T02:59:59+03:00",
"all": 1,
"from": "2026-05-01T03:00:00+03:00",
"limit": 200000,
"fields": "callId,taskId,startedAt,number,callingNumber,duration,clientExternalId,isIncoming,humanStatusName,recordPath,mainCallDuration,mainCallTotalCost,mainCallCost,robotCallDuration,robotCallTotalCost,robotCallCost,transferCallDuration,transferCallTotalCost,transferCallCost,amdTryTotalCost,amdDetectedTotalCost,macCallCost,labelCallCost,,aiCallDuration,aiCallTotalCost,aiCallCost,aiCallLlmTotalCost,aiCallTtsTotalCost,aiCallSttTotalCost,totalCost,companyId",
"filename": "Monthly CIS report from 2026-05-01 03:00 to 2026-06-01 02:59",
"language": "ru",
"withPrice": 1,
"notifyPermissionSetting": "notifications.regular.report.cis.email"
},
"cookies": [],
"headers": []
},
"fileId": "08be6c94-384f-4753-9756-9d10afe01a70",
"createdAt": "2026-06-01 00:03:04.918225+00",
"updatedAt": "2026-06-01 00:40:47.434937+00",
"startedAt": "2026-06-01 00:21:01.489676+00",
"finishedAt": "2026-06-01 00:40:47.421742+00",
"progressTotal": 8,
"progressCurrent": 8
}
]
}
Невалидный или отсутствует Bearer-токен.
| Статус | Описание |
|---|---|
CREATED |
Отчет создан, ожидает начала генерации |
GENERATING |
Отчет в процессе генерации |
GENERATED |
Отчет успешно сгенерирован, файл доступен для скачивания |
DELAYED |
Генерация отчета задержана |
CANCELED |
Генерация отчета отменена |
ERROR |
Произошла ошибка при генерации отчета |