Звонки

Voice AI регистрирует каждый звонок, который появляется в amoCRM, включая пропущенные (нулевая длительность, записи нет).

Список звонков

GET /api/v2/calls

Возвращает одну страницу звонков аккаунта, от новых к старым. Порядок сортировки фиксирован.

Параметры запроса

ПараметрТипОписание
amocrmId обязательныйintАккаунт amoCRM
pageintНомер страницы с 1. По умолчанию 1
pageSizeintСтрок на странице, от 20 до 200. По умолчанию 50
typestring или списокcall_in, call_out. Оба значения вместе — без фильтра
from, tostringДата или дата со временем в ISO. to без времени включает весь этот день
responsibleIdint или списокОтветственные пользователи amoCRM; подходит звонок любого из них
entityCodeIdint1 сделка, 2 контакт, 3 компания. Используется вместе с entityId
entityIdintID сделки, контакта или компании
noteIdintID примечания amoCRM, из которого зарегистрирован звонок
snapshotstringМомент, на который зафиксирован список. См. ниже

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

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[].idstringID звонка
data[].typestringНаправление
data[].durationintДлительность в секундах
data[].phonestringНомер телефона
data[].entityCode, entityId, entityNamestring, int, stringСущность amoCRM, к которой относится звонок
data[].responsibleId, responsibleNameint, stringОтветственный пользователь
data[].createdAtstringКогда звонок зарегистрирован
data[].hasTranscriptionboolЕсть ли расшифровка
data[].analysesintСколько результатов сценариев у звонка
total, totalPagesintВсего звонков по тем же условиям и число страниц
snapshotstringМомент, на который зафиксирован список

Как пользоваться snapshot: первая страница возвращает snapshot; передавайте его обратно с каждой следующей страницей, и новые звонки не будут сдвигать границы страниц. Чтобы обновить список, запросите первую страницу без snapshot.

Особенности

  • страница за пределами totalPages возвращает пустой data, а не ошибку;
  • total обновляется не чаще раза в 60 секунд для одного набора фильтров;
  • ссылки на запись в списке нет — она есть в карточке звонка.

Карточка звонка

GET /api/v2/calls/{callId}

Возвращает звонок целиком, включая ссылку на запись.

Параметры пути

ПараметрТипОписание
callId обязательныйstringID звонка

Ответ 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"
    }
}
ПолеТипОписание
noteIdintID примечания amoCRM о звонке
sourcestringИсточник звонка, как его передала телефония
audioLinkstringСсылка на запись разговора

Ошибки: 400 — callId не число; 404 — звонка нет.

Полная выгрузка звонков (устарел)

GET /api/v1/calls/{amocrmId}

Возвращает всю историю звонков аккаунта одним ответом. На больших аккаунтах ответ занимает секунды и десятки мегабайт. Метод продолжает работать для интеграций, которым нужна полная выгрузка, но новые возможности в него не добавляются. Для интерфейсов используйте GET /api/v2/calls.

Каждый ответ содержит заголовки Deprecation: true и Link: </api/v2/calls>; rel="successor-version".

Параметры запроса

ПараметрТипОписание
note_idintID примечания amoCRM
entity_code_idint1 сделка, 2 контакт, 3 компания
entity_idintID сущности 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 и в истории доставок вебхуков.