Звонки
Voice AI регистрирует каждый звонок, который появляется в amoCRM, включая пропущенные (нулевая длительность, записи нет).
Список звонков
GET /api/v2/calls
Возвращает одну страницу звонков аккаунта, от новых к старым. Порядок сортировки фиксирован.
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
amocrmId обязательный | int | Аккаунт amoCRM |
page | int | Номер страницы с 1. По умолчанию 1 |
pageSize | int | Строк на странице, от 20 до 200. По умолчанию 50 |
type | string или список | call_in, call_out. Оба значения вместе — без фильтра |
from, to | string | Дата или дата со временем в ISO. to без времени включает весь этот день |
responsibleId | int или список | Ответственные пользователи amoCRM; подходит звонок любого из них |
entityCodeId | int | 1 сделка, 2 контакт, 3 компания. Используется вместе с entityId |
entityId | int | ID сделки, контакта или компании |
noteId | int | ID примечания amoCRM, из которого зарегистрирован звонок |
snapshot | string | Момент, на который зафиксирован список. См. ниже |
Пример запроса
curl "{base_url}/api/v2/calls?amocrmId=31245678&type=call_in&from=2026-10-01&to=2026-10-19&pageSize=20"
Ответ 200
{
"ok": true,
"data": [
{
"id": "245581",
"type": "call_in",
"duration": 52,
"phone": "79001234567",
"entityCode": "contact",
"entityId": 65864697,
"entityName": "Анна Смирнова",
"responsibleId": 101,
"responsibleName": "Иван Петров",
"createdAt": "2026-10-19T11:03:00.000Z",
"hasTranscription": true,
"analyses": 1
}
],
"page": 1,
"pageSize": 20,
"total": 172,
"totalPages": 9,
"snapshot": "2026-10-19T14:20:00.000Z"
}
| Поле | Тип | Описание |
|---|---|---|
data[].id | string | ID звонка |
data[].type | string | Направление |
data[].duration | int | Длительность в секундах |
data[].phone | string | Номер телефона |
data[].entityCode, entityId, entityName | string, int, string | Сущность amoCRM, к которой относится звонок |
data[].responsibleId, responsibleName | int, string | Ответственный пользователь |
data[].createdAt | string | Когда звонок зарегистрирован |
data[].hasTranscription | bool | Есть ли расшифровка |
data[].analyses | int | Сколько результатов сценариев у звонка |
total, totalPages | int | Всего звонков по тем же условиям и число страниц |
snapshot | string | Момент, на который зафиксирован список |
Как пользоваться snapshot: первая страница возвращает snapshot; передавайте его обратно с каждой следующей страницей, и новые звонки не будут сдвигать границы страниц. Чтобы обновить список, запросите первую страницу без snapshot.
Особенности
- страница за пределами
totalPagesвозвращает пустойdata, а не ошибку; totalобновляется не чаще раза в 60 секунд для одного набора фильтров;- ссылки на запись в списке нет — она есть в карточке звонка.
Карточка звонка
GET /api/v2/calls/{callId}
Возвращает звонок целиком, включая ссылку на запись.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
callId обязательный | string | ID звонка |
Ответ 200
{
"ok": true,
"data": {
"id": "245581",
"amocrmId": 31245678,
"type": "call_in",
"noteId": 918273645,
"entityCode": "contact",
"entityCodeId": 2,
"entityId": 65864697,
"entityName": "Анна Смирнова",
"responsibleId": 101,
"responsibleName": "Иван Петров",
"source": "example-telephony",
"phone": "79001234567",
"duration": 52,
"audioLink": "https://records.example.com/245581.mp3",
"createdAt": "2026-10-19T11:03:00.000Z",
"updatedAt": "2026-10-19T11:03:00.000Z"
}
}
| Поле | Тип | Описание |
|---|---|---|
noteId | int | ID примечания amoCRM о звонке |
source | string | Источник звонка, как его передала телефония |
audioLink | string | Ссылка на запись разговора |
Ошибки: 400 — callId не число; 404 — звонка нет.
Полная выгрузка звонков (устарел)
GET /api/v1/calls/{amocrmId}
Возвращает всю историю звонков аккаунта одним ответом. На больших аккаунтах ответ занимает секунды и десятки мегабайт. Метод продолжает работать для интеграций, которым нужна полная выгрузка, но новые возможности в него не добавляются. Для интерфейсов используйте GET /api/v2/calls.
Каждый ответ содержит заголовки Deprecation: true и Link: </api/v2/calls>; rel="successor-version".
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
note_id | int | ID примечания amoCRM |
entity_code_id | int | 1 сделка, 2 контакт, 3 компания |
entity_id | int | ID сущности amoCRM |
Ответ 200 — массив звонков в формате v1
{
"ok": true,
"data": [
{
"id": "245581",
"amocrm_id": 31245678,
"responsible_id": 101,
"type": "call_in",
"note_id": 918273645,
"entity_code": "contact",
"entity_code_id": 2,
"entity_id": 65864697,
"entity_name": "Анна Смирнова",
"responsible_name": "Иван Петров",
"source": "example-telephony",
"phone": "79001234567",
"duration": 52,
"audio_link": "https://records.example.com/245581.mp3",
"created_at": "2026-10-19T11:03:00.000Z",
"updated_at": "2026-10-19T11:03:00.000Z"
}
]
}
Этот же формат звонка приходит в событиях WebSocket и в истории доставок вебхуков.