{"openapi":"3.1.0","info":{"title":"PROChat Integration API","version":"1.0.0","description":"Только чтение локальных данных выбранных подключений; каталог тегов и полей содержит определения всего рабочего пространства. Независимые scopes; нет записи, заметок, файлов, провайдерских ключей и синхронизации. Все примеры вымышлены. Токен передаётся только в Authorization, а не URL. Ключи создаются в личном кабинете по административной сессии; эти методы не входят в публичный bearer API."},"servers":[{"url":"/api/integration/v1"}],"security":[{"integrationApiBearer":[]}],"paths":{"/connections":{"get":{"operationId":"listIntegrationConnections","summary":"Подключения","description":"Возвращает метаданные выбранных подключений без ключей и данных адаптера. Отключённый канал остаётся доступен для чтения сохранённой истории. Параметры запроса не принимаются.","x-prochat-required-scope":"connections:read","security":[{"integrationApiBearer":[]}],"parameters":[],"responses":{"200":{"description":"Сохранённые данные, доступные этому ключу.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiConnections"},"example":{"items":[{"id":"00000000-0000-4000-8000-000000000001","name":"Авито — вымышленный пример","provider":"AVITO","mode":"MOCK","status":"CONNECTED"}]}}}},"400":{"description":"VALIDATION_ERROR: Неверный UUID, лимит, фильтр или неизвестный параметр запроса. INVALID_CURSOR: Запись курсора отсутствует либо не входит в разрешённую выборку.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"401":{"description":"INTEGRATION_API_UNAUTHENTICATED: Ключ отсутствует, неверен, отозван, истёк или утратил актуальные права.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"403":{"description":"INTEGRATION_API_SCOPE_REQUIRED: Действующий ключ не содержит нужного разрешения.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"429":{"description":"INTEGRATION_API_RATE_LIMITED: Превышен лимит IP, ключа или рабочего пространства. Соблюдайте Retry-After.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}},"Retry-After":{"description":"Число секунд до рекомендуемой повторной попытки.","schema":{"type":"string","pattern":"^[1-9][0-9]*$"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"500":{"description":"INTERNAL_ERROR: Внутренняя ошибка без раскрытия SQL, секретов и stack traces.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"503":{"description":"INTEGRATION_API_UNAVAILABLE: Обязательный ограничитель временно недоступен. Повторите запрос позднее.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}}}}},"/conversations":{"get":{"operationId":"listIntegrationConversations","summary":"Список обращений","description":"Читает локальные обращения выбранных подключений. Порядок lastMessageAt DESC, id DESC. Имя клиента входит в метаданные; текст сообщений и заметки отсутствуют. nextCursor=null означает конец текущей выборки.","x-prochat-required-scope":"conversations:read","security":[{"integrationApiBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"Максимальное число записей на странице.","schema":{"type":"integer","default":50,"minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"UUID из nextCursor предыдущей страницы. Используйте те же фильтры; курсор должен принадлежать доступной выборке.","schema":{"type":"string","format":"uuid"}},{"name":"connectionId","in":"query","required":false,"description":"UUID одного из подключений, выбранных при выдаче ключа.","schema":{"type":"string","format":"uuid"}},{"name":"status","in":"query","required":false,"description":"Фильтр по текущему статусу обращения.","schema":{"type":"string","enum":["OPEN","CLOSED"]}}],"responses":{"200":{"description":"Сохранённые данные, доступные этому ключу.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiConversationsPage"},"example":{"items":[{"id":"00000000-0000-4000-8000-000000000002","connectionId":"00000000-0000-4000-8000-000000000001","customerName":"Покупатель из вымышленного примера","status":"OPEN","handlingMode":"AUTOMATION","assignedUserId":null,"assignmentVersion":0,"cardVersion":0,"lastMessageAt":"2026-10-14T12:00:00.000Z","createdAt":"2026-10-14T12:00:00.000Z"}],"nextCursor":null}}}},"400":{"description":"VALIDATION_ERROR: Неверный UUID, лимит, фильтр или неизвестный параметр запроса. INVALID_CURSOR: Запись курсора отсутствует либо не входит в разрешённую выборку.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"401":{"description":"INTEGRATION_API_UNAUTHENTICATED: Ключ отсутствует, неверен, отозван, истёк или утратил актуальные права.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"403":{"description":"INTEGRATION_API_SCOPE_REQUIRED: Действующий ключ не содержит нужного разрешения.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"404":{"description":"CONNECTION_NOT_FOUND: Подключение фильтра отсутствует либо не выбрано для ключа. CONVERSATION_NOT_FOUND: Обращение отсутствует либо выходит за область ключа.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"429":{"description":"INTEGRATION_API_RATE_LIMITED: Превышен лимит IP, ключа или рабочего пространства. Соблюдайте Retry-After.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}},"Retry-After":{"description":"Число секунд до рекомендуемой повторной попытки.","schema":{"type":"string","pattern":"^[1-9][0-9]*$"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"500":{"description":"INTERNAL_ERROR: Внутренняя ошибка без раскрытия SQL, секретов и stack traces.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"503":{"description":"INTEGRATION_API_UNAVAILABLE: Обязательный ограничитель временно недоступен. Повторите запрос позднее.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}}}}},"/conversations/{conversationId}":{"get":{"operationId":"getIntegrationConversation","summary":"Одно обращение","description":"Возвращает метаданные доступного обращения напрямую, без обёртки items. UUID объекта не заменяет права ключа. Параметры запроса не принимаются.","x-prochat-required-scope":"conversations:read","security":[{"integrationApiBearer":[]}],"parameters":[{"name":"conversationId","in":"path","required":true,"description":"UUID обращения PROChat из выбранного подключения.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Сохранённые данные, доступные этому ключу.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiConversation"},"example":{"id":"00000000-0000-4000-8000-000000000002","connectionId":"00000000-0000-4000-8000-000000000001","customerName":"Покупатель из вымышленного примера","status":"OPEN","handlingMode":"AUTOMATION","assignedUserId":null,"assignmentVersion":0,"cardVersion":0,"lastMessageAt":"2026-10-14T12:00:00.000Z","createdAt":"2026-10-14T12:00:00.000Z"}}}},"400":{"description":"VALIDATION_ERROR: Неверный UUID, лимит, фильтр или неизвестный параметр запроса. INVALID_CURSOR: Запись курсора отсутствует либо не входит в разрешённую выборку.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"401":{"description":"INTEGRATION_API_UNAUTHENTICATED: Ключ отсутствует, неверен, отозван, истёк или утратил актуальные права.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"403":{"description":"INTEGRATION_API_SCOPE_REQUIRED: Действующий ключ не содержит нужного разрешения.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"404":{"description":"CONNECTION_NOT_FOUND: Подключение фильтра отсутствует либо не выбрано для ключа. CONVERSATION_NOT_FOUND: Обращение отсутствует либо выходит за область ключа.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"429":{"description":"INTEGRATION_API_RATE_LIMITED: Превышен лимит IP, ключа или рабочего пространства. Соблюдайте Retry-After.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}},"Retry-After":{"description":"Число секунд до рекомендуемой повторной попытки.","schema":{"type":"string","pattern":"^[1-9][0-9]*$"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"500":{"description":"INTERNAL_ERROR: Внутренняя ошибка без раскрытия SQL, секретов и stack traces.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"503":{"description":"INTEGRATION_API_UNAVAILABLE: Обязательный ограничитель временно недоступен. Повторите запрос позднее.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}}}}},"/conversations/{conversationId}/messages":{"get":{"operationId":"listIntegrationMessages","summary":"История сообщений","description":"Читает сохранённые сообщения от ранних к поздним: sentAt ASC, sequence ASC, id ASC. Текст до 16000 символов; вложения и их URL не выдаются. PENDING/SENDING/FAILED не подтверждают доставку. Курсор принадлежит тому же обращению; чтение не отмечает сообщения прочитанными.","x-prochat-required-scope":"messages:read","security":[{"integrationApiBearer":[]}],"parameters":[{"name":"conversationId","in":"path","required":true,"description":"UUID обращения PROChat из выбранного подключения.","schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"description":"Максимальное число записей на странице.","schema":{"type":"integer","default":50,"minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"UUID из nextCursor предыдущей страницы. Используйте те же фильтры; курсор должен принадлежать доступной выборке.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Сохранённые данные, доступные этому ключу.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiMessagesPage"},"example":{"items":[{"id":"00000000-0000-4000-8000-000000000005","conversationId":"00000000-0000-4000-8000-000000000002","connectionId":"00000000-0000-4000-8000-000000000001","type":"text","direction":"INBOUND","senderType":"CUSTOMER","status":"SENT","text":"Сообщение из вымышленного примера","sequence":1,"sentAt":"2026-10-14T12:00:00.000Z","createdAt":"2026-10-14T12:00:00.000Z"}],"nextCursor":null}}}},"400":{"description":"VALIDATION_ERROR: Неверный UUID, лимит, фильтр или неизвестный параметр запроса. INVALID_CURSOR: Запись курсора отсутствует либо не входит в разрешённую выборку.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"401":{"description":"INTEGRATION_API_UNAUTHENTICATED: Ключ отсутствует, неверен, отозван, истёк или утратил актуальные права.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"403":{"description":"INTEGRATION_API_SCOPE_REQUIRED: Действующий ключ не содержит нужного разрешения.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"404":{"description":"CONNECTION_NOT_FOUND: Подключение фильтра отсутствует либо не выбрано для ключа. CONVERSATION_NOT_FOUND: Обращение отсутствует либо выходит за область ключа.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"429":{"description":"INTEGRATION_API_RATE_LIMITED: Превышен лимит IP, ключа или рабочего пространства. Соблюдайте Retry-After.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}},"Retry-After":{"description":"Число секунд до рекомендуемой повторной попытки.","schema":{"type":"string","pattern":"^[1-9][0-9]*$"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"500":{"description":"INTERNAL_ERROR: Внутренняя ошибка без раскрытия SQL, секретов и stack traces.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"503":{"description":"INTEGRATION_API_UNAVAILABLE: Обязательный ограничитель временно недоступен. Повторите запрос позднее.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}}}}},"/conversations/{conversationId}/card":{"get":{"operationId":"getIntegrationCard","summary":"Карточка обращения","description":"Возвращает назначенные теги, определения полей и сохранённые значения выбранного обращения. Назначенные архивные теги и архивные поля с сохранённым значением остаются видимыми. Пустое поле отсутствует в fieldValues. Внутренних заметок нет; параметры запроса не принимаются.","x-prochat-required-scope":"cards:read","security":[{"integrationApiBearer":[]}],"parameters":[{"name":"conversationId","in":"path","required":true,"description":"UUID обращения PROChat из выбранного подключения.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Сохранённые данные, доступные этому ключу.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiCard"},"example":{"conversationId":"00000000-0000-4000-8000-000000000002","version":0,"tags":[{"name":"Тег из примера","color":"#6366f1","id":"00000000-0000-4000-8000-000000000003","revision":0,"archivedAt":null}],"fieldDefinitions":[{"id":"00000000-0000-4000-8000-000000000004","name":"Сумма из примера","type":"NUMBER","options":[],"revision":0,"archivedAt":null}],"fieldValues":[{"fieldId":"00000000-0000-4000-8000-000000000004","value":1000}]}}}},"400":{"description":"VALIDATION_ERROR: Неверный UUID, лимит, фильтр или неизвестный параметр запроса. INVALID_CURSOR: Запись курсора отсутствует либо не входит в разрешённую выборку.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"401":{"description":"INTEGRATION_API_UNAUTHENTICATED: Ключ отсутствует, неверен, отозван, истёк или утратил актуальные права.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"403":{"description":"INTEGRATION_API_SCOPE_REQUIRED: Действующий ключ не содержит нужного разрешения.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"404":{"description":"CONNECTION_NOT_FOUND: Подключение фильтра отсутствует либо не выбрано для ключа. CONVERSATION_NOT_FOUND: Обращение отсутствует либо выходит за область ключа.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"409":{"description":"INTEGRATION_API_RESULT_TOO_LARGE: Карточка или каталог превышает 1000 элементов одного списка; данные не обрезаются молча.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"429":{"description":"INTEGRATION_API_RATE_LIMITED: Превышен лимит IP, ключа или рабочего пространства. Соблюдайте Retry-After.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}},"Retry-After":{"description":"Число секунд до рекомендуемой повторной попытки.","schema":{"type":"string","pattern":"^[1-9][0-9]*$"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"500":{"description":"INTERNAL_ERROR: Внутренняя ошибка без раскрытия SQL, секретов и stack traces.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"503":{"description":"INTEGRATION_API_UNAVAILABLE: Обязательный ограничитель временно недоступен. Повторите запрос позднее.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}}}}},"/card-catalog":{"get":{"operationId":"getIntegrationCardCatalog","summary":"Каталог тегов и полей","description":"Возвращает активные определения тегов и полей всего рабочего пространства. Значения карточек и архивные определения в каталог не входят. Требуется cards:read; параметры запроса не принимаются.","x-prochat-required-scope":"cards:read","security":[{"integrationApiBearer":[]}],"parameters":[],"responses":{"200":{"description":"Сохранённые данные, доступные этому ключу.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiCardCatalog"},"example":{"tags":[{"name":"Тег из примера","color":"#6366f1","id":"00000000-0000-4000-8000-000000000003","revision":0,"archivedAt":null}],"fields":[{"id":"00000000-0000-4000-8000-000000000004","name":"Сумма из примера","type":"NUMBER","options":[],"revision":0,"archivedAt":null}]}}}},"400":{"description":"VALIDATION_ERROR: Неверный UUID, лимит, фильтр или неизвестный параметр запроса. INVALID_CURSOR: Запись курсора отсутствует либо не входит в разрешённую выборку.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"401":{"description":"INTEGRATION_API_UNAUTHENTICATED: Ключ отсутствует, неверен, отозван, истёк или утратил актуальные права.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"403":{"description":"INTEGRATION_API_SCOPE_REQUIRED: Действующий ключ не содержит нужного разрешения.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"409":{"description":"INTEGRATION_API_RESULT_TOO_LARGE: Карточка или каталог превышает 1000 элементов одного списка; данные не обрезаются молча.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"429":{"description":"INTEGRATION_API_RATE_LIMITED: Превышен лимит IP, ключа или рабочего пространства. Соблюдайте Retry-After.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}},"Retry-After":{"description":"Число секунд до рекомендуемой повторной попытки.","schema":{"type":"string","pattern":"^[1-9][0-9]*$"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"500":{"description":"INTERNAL_ERROR: Внутренняя ошибка без раскрытия SQL, секретов и stack traces.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}},"503":{"description":"INTEGRATION_API_UNAVAILABLE: Обязательный ограничитель временно недоступен. Повторите запрос позднее.","headers":{"Cache-Control":{"description":"Ответ API не должен кешироваться.","schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationApiError"}}}}}}}},"components":{"securitySchemes":{"integrationApiBearer":{"type":"http","scheme":"bearer","bearerFormat":"Opaque PROChat API key","description":"Непрозрачный ключ pc_api_ + 43 base64url-символа. Только Authorization: Bearer; нужный scope указан в x-prochat-required-scope операции."}},"schemas":{"IntegrationApiConnections":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"items":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":120},"provider":{"type":"string","enum":["AVITO","TELEGRAM"]},"mode":{"type":"string","enum":["MOCK","LIVE"]},"status":{"type":"string","enum":["CONNECTED","DISCONNECTED","ERROR","AUTH_EXPIRED"]}},"required":["id","name","provider","mode","status"],"additionalProperties":false}}},"required":["items"],"additionalProperties":false},"IntegrationApiConversationsPage":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"items":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"connectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"customerName":{"type":"string","maxLength":4000},"status":{"type":"string","enum":["OPEN","CLOSED"]},"handlingMode":{"type":"string","enum":["AUTOMATION","WAITING_OPERATOR","OPERATOR"]},"assignedUserId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assignmentVersion":{"type":"integer","minimum":0,"maximum":9007199254740991},"cardVersion":{"type":"integer","minimum":0,"maximum":9007199254740991},"lastMessageAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","connectionId","customerName","status","handlingMode","assignedUserId","assignmentVersion","cardVersion","lastMessageAt","createdAt"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["items","nextCursor"],"additionalProperties":false},"IntegrationApiConversation":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"connectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"customerName":{"type":"string","maxLength":4000},"status":{"type":"string","enum":["OPEN","CLOSED"]},"handlingMode":{"type":"string","enum":["AUTOMATION","WAITING_OPERATOR","OPERATOR"]},"assignedUserId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assignmentVersion":{"type":"integer","minimum":0,"maximum":9007199254740991},"cardVersion":{"type":"integer","minimum":0,"maximum":9007199254740991},"lastMessageAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","connectionId","customerName","status","handlingMode","assignedUserId","assignmentVersion","cardVersion","lastMessageAt","createdAt"],"additionalProperties":false},"IntegrationApiMessagesPage":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"items":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"conversationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"connectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["text","image","file","voice","system"]},"direction":{"type":"string","enum":["INBOUND","OUTBOUND"]},"senderType":{"type":"string","enum":["CUSTOMER","OPERATOR","AUTOMATION","SYSTEM"]},"status":{"type":"string","enum":["PENDING","SENDING","SENT","FAILED"]},"text":{"anyOf":[{"type":"string","maxLength":16000},{"type":"null"}]},"sequence":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"sentAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","conversationId","connectionId","type","direction","senderType","status","text","sequence","sentAt","createdAt"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["items","nextCursor"],"additionalProperties":false},"IntegrationApiCard":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"conversationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":0,"maximum":9007199254740991},"tags":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"color":{"default":"#6366f1","type":"string","enum":["#6366f1","#0ea5e9","#10b981","#f59e0b","#ef4444","#a855f7","#64748b"]},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"revision":{"type":"integer","minimum":0,"maximum":9007199254740991},"archivedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["name","color","id","revision","archivedAt"],"additionalProperties":false}},"fieldDefinitions":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["TEXT","NUMBER","DATE","SELECT","CHECKBOX"]},"options":{"maxItems":30,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"revision":{"type":"integer","minimum":0,"maximum":9007199254740991},"archivedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["id","name","type","options","revision","archivedAt"],"additionalProperties":false}},"fieldValues":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"fieldId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"value":{"anyOf":[{"type":"string","maxLength":2000},{"type":"number","minimum":-1000000000000000,"maximum":1000000000000000},{"type":"boolean"}]}},"required":["fieldId","value"],"additionalProperties":false}}},"required":["conversationId","version","tags","fieldDefinitions","fieldValues"],"additionalProperties":false},"IntegrationApiCardCatalog":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tags":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"color":{"default":"#6366f1","type":"string","enum":["#6366f1","#0ea5e9","#10b981","#f59e0b","#ef4444","#a855f7","#64748b"]},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"revision":{"type":"integer","minimum":0,"maximum":9007199254740991},"archivedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["name","color","id","revision","archivedAt"],"additionalProperties":false}},"fields":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["TEXT","NUMBER","DATE","SELECT","CHECKBOX"]},"options":{"maxItems":30,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"revision":{"type":"integer","minimum":0,"maximum":9007199254740991},"archivedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["id","name","type","options","revision","archivedAt"],"additionalProperties":false}}},"required":["tags","fields"],"additionalProperties":false},"IntegrationApiError":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}}},"required":["code"],"additionalProperties":false}}}}