# Интерактивная документация и список эндпоинтов

Работа с REST API MikoPBX построена по стандарту OpenAPI. Интерактивная документация встроена прямо в АТС и всегда содержит актуальный список эндпоинтов, параметров и схем для вашей версии системы.

## Как открыть документацию

1. Перейдите в раздел **«Система» → «API ключи»**.

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FJ1y9O6XeUp9cDMw7ZLZ8%2FAPIKeysSection.png?alt=media&#x26;token=711e0935-6b5f-44a9-99e1-11e8a84a4e93" alt=""><figcaption><p>Раздел "Система" -> "API ключи"</p></figcaption></figure>

2. Нажмите кнопку **«Документация API»**.

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FIc2xWdW1HIP1YcaJiGbg%2FMikoPBXDocumentationAPI.png?alt=media&#x26;token=09e6250a-0773-468b-96e8-dfa613bfda26" alt=""><figcaption><p>Кнопка «Документация API» в разделе API ключей</p></figcaption></figure>

### Возможности интерактивной документации

Документация построена на базе стандарта OpenAPI и предоставляет полное описание всех эндпоинтов REST API MikoPBX.

**Навигация по эндпоинтам** — в левой панели все эндпоинты сгруппированы по разделам.&#x20;

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FgceYf7HfSdb2fLbP61Qu%2FAPIDocsLeftMenu.png?alt=media&#x26;token=da40587d-fa62-400c-9fff-f046c3bbcd15" alt=""><figcaption><p>Меню навигации</p></figcaption></figure>

Для каждого эндпоинта отображается краткое описание, метод запроса (GET, POST, PUT, PATCH, DELETE), endpoint с подставленым адресом АТС. Ниже отображаются все доступные параметры запроса.

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2Fk8hXLeHucvwnSOYiyUJY%2FAPIDocsTopInformation.png?alt=media&#x26;token=93793d89-127b-46b5-ac1b-117f9b40aa81" alt=""><figcaption><p>Описание эндпоинта с параметрами запроса и примером тела</p></figcaption></figure>

**Примеры кода** — для каждого эндпоинта доступны готовые примеры запросов на разных языках. Переключатель находится под панелью параметров — по умолчанию показывается Shell / cURL, доступны также и другие языки (нажмите на название языка для его смены - в этой инструкции Python 3).

Ниже находится пример ответа сервера.

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2F926xRM3JbKIjimABZyS5%2FAPIDocsCodeExamples.png?alt=media&#x26;token=b64b2217-6e21-4704-8485-3aa64d34c5a4" alt=""><figcaption><p>Пример запроса на Python и пример ответа сервера</p></figcaption></figure>

**Выполнение запросов онлайн** — документация позволяет отправлять реальные запросы прямо из браузера и получать ответы от вашей АТС. Сервер определяется автоматически по адресу текущей страницы.

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FJagAY1rxzapG5r7jfP7S%2FAPIDocsRequset.png?alt=media&#x26;token=94d9ebb9-76c0-4438-a862-6cf6442e0532" alt=""><figcaption><p>Выполнение запросов из документации API</p></figcaption></figure>

Внизу страницы Вы найдете возможные номера ответов на запрос и краткое пояснение к ним. Так же будут отображены все параметры тела выбранного ответа.

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FZ7et0HVnVJxWwafh1V3H%2FAPIDocsResponds.png?alt=media&#x26;token=9be848cd-8dcd-4adb-a8a1-cb15316b5c90" alt=""><figcaption><p>Коды ответов и структура тела ответа</p></figcaption></figure>

## Список эндпоинтов

> Базовый префикс всех путей: `/pbxcore/api/v3`

### Телефония и маршрутизация

#### Сотрудники

| Метод  | Путь                        | Описание                                 |
| ------ | --------------------------- | ---------------------------------------- |
| GET    | `/employees`                | Получить список сотрудников              |
| POST   | `/employees`                | Создать нового сотрудника                |
| GET    | `/employees/{id}`           | Получить сотрудника по ID                |
| PUT    | `/employees/{id}`           | Обновить сотрудника                      |
| PATCH  | `/employees/{id}`           | Частично обновить сотрудника             |
| DELETE | `/employees/{id}`           | Удалить сотрудника                       |
| GET    | `/employees:getDefault`     | Получить значения по умолчанию           |
| POST   | `/employees:batchCreate`    | Массовое создание сотрудников            |
| POST   | `/employees:batchDelete`    | Массовое удаление сотрудников            |
| POST   | `/employees:import`         | Импортировать сотрудников (предпросмотр) |
| POST   | `/employees:confirmImport`  | Подтвердить импорт                       |
| POST   | `/employees:export`         | Экспортировать сотрудников               |
| POST   | `/employees:exportTemplate` | Экспортировать шаблон                    |

#### Внутренние номера

| Метод | Путь                                 | Описание                                   |
| ----- | ------------------------------------ | ------------------------------------------ |
| GET   | `/extensions`                        | Получить список добавочных номеров         |
| GET   | `/extensions/{id}`                   | Получить добавочный номер по ID            |
| POST  | `/extensions:available`              | Проверить доступность номера               |
| GET   | `/extensions:getForSelect`           | Получить добавочные для выпадающего списка |
| POST  | `/extensions/{id}:getPhoneRepresent` | Получить представление телефона            |
| POST  | `/extensions:getPhonesRepresent`     | Получить представление телефонов           |

#### SIP провайдеры

| Метод  | Путь                        | Описание                         |
| ------ | --------------------------- | -------------------------------- |
| GET    | `/sip-providers`            | Получить список SIP провайдеров  |
| POST   | `/sip-providers`            | Создать SIP провайдера           |
| GET    | `/sip-providers/{id}`       | Получить SIP провайдера по ID    |
| PUT    | `/sip-providers/{id}`       | Обновить SIP провайдера          |
| PATCH  | `/sip-providers/{id}`       | Частично обновить SIP провайдера |
| DELETE | `/sip-providers/{id}`       | Удалить SIP провайдера           |
| GET    | `/sip-providers/{id}:copy`  | Скопировать SIP провайдера       |
| GET    | `/sip-providers:getDefault` | Получить шаблон SIP провайдера   |

#### IAX провайдеры

| Метод  | Путь                        | Описание                         |
| ------ | --------------------------- | -------------------------------- |
| GET    | `/iax-providers`            | Получить список IAX провайдеров  |
| POST   | `/iax-providers`            | Создать IAX провайдера           |
| GET    | `/iax-providers/{id}`       | Получить IAX провайдера по ID    |
| PUT    | `/iax-providers/{id}`       | Обновить IAX провайдера          |
| PATCH  | `/iax-providers/{id}`       | Частично обновить IAX провайдера |
| DELETE | `/iax-providers/{id}`       | Удалить IAX провайдера           |
| GET    | `/iax-providers/{id}:copy`  | Скопировать IAX провайдера       |
| GET    | `/iax-providers:getDefault` | Получить шаблон IAX провайдера   |

#### Провайдеры (общий список SIP + IAX)

| Метод | Путь                      | Описание                                    |
| ----- | ------------------------- | ------------------------------------------- |
| GET   | `/providers`              | Получить список всех провайдеров            |
| GET   | `/providers/{id}`         | Получить провайдера по ID                   |
| GET   | `/providers:getForSelect` | Получить провайдеров для выпадающего списка |

#### Очереди звонков

| Метод  | Путь                      | Описание                       |
| ------ | ------------------------- | ------------------------------ |
| GET    | `/call-queues`            | Получить список очередей       |
| POST   | `/call-queues`            | Создать новую очередь          |
| GET    | `/call-queues/{id}`       | Получить очередь по ID         |
| PUT    | `/call-queues/{id}`       | Обновить очередь               |
| PATCH  | `/call-queues/{id}`       | Частично обновить очередь      |
| DELETE | `/call-queues/{id}`       | Удалить очередь                |
| GET    | `/call-queues/{id}:copy`  | Копировать очередь             |
| GET    | `/call-queues:getDefault` | Получить значения по умолчанию |

#### IVR меню

| Метод  | Путь                   | Описание                       |
| ------ | ---------------------- | ------------------------------ |
| GET    | `/ivr-menu`            | Получить список IVR меню       |
| POST   | `/ivr-menu`            | Создать новое IVR меню         |
| GET    | `/ivr-menu/{id}`       | Получить IVR меню по ID        |
| PUT    | `/ivr-menu/{id}`       | Обновить IVR меню              |
| PATCH  | `/ivr-menu/{id}`       | Частично обновить IVR меню     |
| DELETE | `/ivr-menu/{id}`       | Удалить IVR меню               |
| GET    | `/ivr-menu/{id}:copy`  | Копировать IVR меню            |
| GET    | `/ivr-menu:getDefault` | Получить значения по умолчанию |

#### Входящая маршрутизация

| Метод  | Путь                               | Описание                           |
| ------ | ---------------------------------- | ---------------------------------- |
| GET    | `/incoming-routes`                 | Получить список входящих маршрутов |
| POST   | `/incoming-routes`                 | Создать входящий маршрут           |
| GET    | `/incoming-routes/{id}`            | Получить входящий маршрут по ID    |
| PUT    | `/incoming-routes/{id}`            | Обновить входящий маршрут          |
| PATCH  | `/incoming-routes/{id}`            | Частично обновить входящий маршрут |
| DELETE | `/incoming-routes/{id}`            | Удалить входящий маршрут           |
| POST   | `/incoming-routes/{id}:copy`       | Копировать входящий маршрут        |
| GET    | `/incoming-routes:getDefault`      | Получить значения по умолчанию     |
| GET    | `/incoming-routes:getDefaultRoute` | Получить маршрут по умолчанию      |
| POST   | `/incoming-routes:changePriority`  | Изменить приоритет маршрутов       |

#### Исходящая маршрутизация

| Метод  | Путь                              | Описание                            |
| ------ | --------------------------------- | ----------------------------------- |
| GET    | `/outbound-routes`                | Получить список исходящих маршрутов |
| POST   | `/outbound-routes`                | Создать исходящий маршрут           |
| GET    | `/outbound-routes/{id}`           | Получить исходящий маршрут по ID    |
| PUT    | `/outbound-routes/{id}`           | Обновить исходящий маршрут          |
| PATCH  | `/outbound-routes/{id}`           | Частично обновить исходящий маршрут |
| DELETE | `/outbound-routes/{id}`           | Удалить исходящий маршрут           |
| GET    | `/outbound-routes/{id}:copy`      | Копировать исходящий маршрут        |
| GET    | `/outbound-routes:getDefault`     | Получить значения по умолчанию      |
| POST   | `/outbound-routes:changePriority` | Изменить приоритет маршрутов        |

#### Нерабочее время

| Метод  | Путь                               | Описание                            |
| ------ | ---------------------------------- | ----------------------------------- |
| GET    | `/off-work-times`                  | Получить список временных условий   |
| POST   | `/off-work-times`                  | Создать временное условие           |
| GET    | `/off-work-times/{id}`             | Получить временное условие по ID    |
| PUT    | `/off-work-times/{id}`             | Обновить временное условие          |
| PATCH  | `/off-work-times/{id}`             | Частично обновить временное условие |
| DELETE | `/off-work-times/{id}`             | Удалить временное условие           |
| GET    | `/off-work-times/{id}:copy`        | Копировать временное условие        |
| GET    | `/off-work-times:getDefault`       | Получить значения по умолчанию      |
| POST   | `/off-work-times:changePriorities` | Изменить приоритеты условий         |

#### Конференц-комнаты

| Метод  | Путь                           | Описание                            |
| ------ | ------------------------------ | ----------------------------------- |
| GET    | `/conference-rooms`            | Получить список конференц-комнат    |
| POST   | `/conference-rooms`            | Создать конференц-комнату           |
| GET    | `/conference-rooms/{id}`       | Получить конференц-комнату по ID    |
| PUT    | `/conference-rooms/{id}`       | Обновить конференц-комнату          |
| PATCH  | `/conference-rooms/{id}`       | Частично обновить конференц-комнату |
| DELETE | `/conference-rooms/{id}`       | Удалить конференц-комнату           |
| GET    | `/conference-rooms:getDefault` | Получить шаблон конференц-комнаты   |

#### Приложения диалплана

| Метод  | Путь                                | Описание                              |
| ------ | ----------------------------------- | ------------------------------------- |
| GET    | `/dialplan-applications`            | Получить список dialplan приложений   |
| POST   | `/dialplan-applications`            | Создать dialplan приложение           |
| GET    | `/dialplan-applications/{id}`       | Получить dialplan приложение по ID    |
| PUT    | `/dialplan-applications/{id}`       | Обновить dialplan приложение          |
| PATCH  | `/dialplan-applications/{id}`       | Частично обновить dialplan приложение |
| DELETE | `/dialplan-applications/{id}`       | Удалить dialplan приложение           |
| GET    | `/dialplan-applications/{id}:copy`  | Скопировать dialplan приложение       |
| GET    | `/dialplan-applications:getDefault` | Получить шаблон dialplan приложения   |

#### Звуковые файлы

| Метод  | Путь                            | Описание                        |
| ------ | ------------------------------- | ------------------------------- |
| GET    | `/sound-files`                  | Получить список звуковых файлов |
| POST   | `/sound-files`                  | Создать звуковой файл           |
| GET    | `/sound-files/{id}`             | Получить звуковой файл по ID    |
| PUT    | `/sound-files/{id}`             | Обновить звуковой файл          |
| PATCH  | `/sound-files/{id}`             | Частично обновить звуковой файл |
| DELETE | `/sound-files/{id}`             | Удалить звуковой файл           |
| GET    | `/sound-files:getDefault`       | Получить значения по умолчанию  |
| GET    | `/sound-files:getForSelect`     | Получить для выпадающего списка |
| GET    | `/sound-files:playback`         | Воспроизвести звуковой файл     |
| POST   | `/sound-files:uploadFile`       | Загрузить звуковой файл         |
| POST   | `/sound-files:convertAudioFile` | Конвертировать аудио файл       |

#### Кастомизация системных файлов

| Метод  | Путь                       | Описание                                |
| ------ | -------------------------- | --------------------------------------- |
| GET    | `/custom-files`            | Получить список пользовательских файлов |
| POST   | `/custom-files`            | Создать новый пользовательский файл     |
| GET    | `/custom-files/{id}`       | Получить пользовательский файл по ID    |
| PUT    | `/custom-files/{id}`       | Обновить пользовательский файл          |
| PATCH  | `/custom-files/{id}`       | Частично обновить пользовательский файл |
| DELETE | `/custom-files/{id}`       | Удалить пользовательский файл           |
| GET    | `/custom-files:getDefault` | Получить значения по умолчанию          |

***

### Мониторинг и статистика

#### Состояние АТС

| Метод | Путь                            | Описание                 |
| ----- | ------------------------------- | ------------------------ |
| GET   | `/pbx-status:getActiveCalls`    | Получить активные вызовы |
| GET   | `/pbx-status:getActiveChannels` | Получить активные каналы |

#### SIP устройства

| Метод | Путь                              | Описание                                  |
| ----- | --------------------------------- | ----------------------------------------- |
| GET   | `/sip:getStatuses`                | Получить статусы всех SIP устройств       |
| GET   | `/sip:getPeersStatuses`           | Получить статусы SIP peers (legacy)       |
| GET   | `/sip:getRegistry`                | Получить статус регистрации (legacy)      |
| POST  | `/sip:processAuthFailures`        | Обработать ошибки аутентификации          |
| GET   | `/sip/{id}:getStatus`             | Получить статус SIP устройства            |
| GET   | `/sip/{id}:getStats`              | Получить статистику SIP устройства        |
| GET   | `/sip/{id}:getHistory`            | Получить историю подключений              |
| GET   | `/sip/{id}:getSecret`             | Получить SIP пароль                       |
| GET   | `/sip/{id}:getAuthFailureStats`   | Получить статистику ошибок аутентификации |
| POST  | `/sip/{id}:clearAuthFailureStats` | Очистить статистику ошибок                |
| POST  | `/sip/{id}:forceCheck`            | Принудительно проверить статус            |

#### SIP провайдеры (мониторинг)

| Метод | Путь                               | Описание                              |
| ----- | ---------------------------------- | ------------------------------------- |
| GET   | `/sip-providers:getStatuses`       | Получить статусы всех SIP провайдеров |
| GET   | `/sip-providers/{id}:getStatus`    | Получить статус SIP провайдера        |
| GET   | `/sip-providers/{id}:getHistory`   | Получить историю подключений          |
| GET   | `/sip-providers/{id}:getStats`     | Получить статистику SIP провайдера    |
| POST  | `/sip-providers/{id}:forceCheck`   | Принудительно проверить регистрацию   |
| POST  | `/sip-providers/{id}:updateStatus` | Обновить статус провайдера            |

#### IAX провайдеры (мониторинг)

| Метод | Путь                               | Описание                                    |
| ----- | ---------------------------------- | ------------------------------------------- |
| GET   | `/iax-providers:getStatuses`       | Получить статусы всех IAX провайдеров       |
| GET   | `/iax-providers/{id}:getStatus`    | Получить статус IAX провайдера              |
| GET   | `/iax-providers/{id}:getHistory`   | Получить историю подключений                |
| GET   | `/iax-providers/{id}:getStats`     | Получить статистику IAX провайдеров         |
| POST  | `/iax-providers/{id}:forceCheck`   | Принудительно проверить регистрацию         |
| POST  | `/iax-providers/{id}:updateStatus` | Обновить статус провайдера                  |
| GET   | `/iax:getRegistry`                 | Получить статус регистрации IAX провайдеров |

#### Провайдеры (мониторинг)

| Метод | Путь                           | Описание                          |
| ----- | ------------------------------ | --------------------------------- |
| GET   | `/providers:getStatuses`       | Получить статусы всех провайдеров |
| GET   | `/providers/{id}:getStatus`    | Получить статус провайдера        |
| GET   | `/providers/{id}:getHistory`   | Получить историю провайдера       |
| GET   | `/providers/{id}:getStats`     | Получить статистику провайдера    |
| POST  | `/providers/{id}:updateStatus` | Обновить статус провайдера        |

#### Журнал звонков (CDR)

| Метод  | Путь               | Описание                       |
| ------ | ------------------ | ------------------------------ |
| GET    | `/cdr`             | Получить список CDR записей    |
| GET    | `/cdr/{id}`        | Получить CDR запись по ID      |
| DELETE | `/cdr/{id}`        | Удалить CDR запись             |
| GET    | `/cdr:getMetadata` | Получить метаданные CDR        |
| GET    | `/cdr:playback`    | Воспроизвести запись разговора |
| GET    | `/cdr:download`    | Скачать запись разговора       |

#### Советы и рекомендации

| Метод | Путь              | Описание                              |
| ----- | ----------------- | ------------------------------------- |
| GET   | `/advice:getList` | Получить список системных уведомлений |
| GET   | `/advice:refresh` | Обновить кеш уведомлений              |

***

### Аутентификация и доступ

#### Аутентификация

| Метод | Путь            | Описание                       |
| ----- | --------------- | ------------------------------ |
| POST  | `/auth:login`   | Войти в систему (логин/пароль) |
| POST  | `/auth:refresh` | Обновить токен доступа         |
| POST  | `/auth:logout`  | Выйти из системы               |

#### API ключи

| Метод  | Путь                    | Описание                       |
| ------ | ----------------------- | ------------------------------ |
| GET    | `/api-keys`             | Получить список API ключей     |
| POST   | `/api-keys`             | Создать новый API ключ         |
| GET    | `/api-keys/{id}`        | Получить API ключ по ID        |
| PUT    | `/api-keys/{id}`        | Обновить API ключ              |
| PATCH  | `/api-keys/{id}`        | Частично обновить API ключ     |
| DELETE | `/api-keys/{id}`        | Удалить API ключ               |
| GET    | `/api-keys:getDefault`  | Получить значения по умолчанию |
| POST   | `/api-keys:generateKey` | Сгенерировать новый ключ       |

#### AMI пользователи

| Метод  | Путь                            | Описание                           |
| ------ | ------------------------------- | ---------------------------------- |
| GET    | `/asterisk-managers`            | Получить список AMI пользователей  |
| POST   | `/asterisk-managers`            | Создать нового AMI пользователя    |
| GET    | `/asterisk-managers/{id}`       | Получить AMI пользователя по ID    |
| PUT    | `/asterisk-managers/{id}`       | Обновить AMI пользователя          |
| PATCH  | `/asterisk-managers/{id}`       | Частично обновить AMI пользователя |
| DELETE | `/asterisk-managers/{id}`       | Удалить AMI пользователя           |
| GET    | `/asterisk-managers/{id}:copy`  | Копировать AMI пользователя        |
| GET    | `/asterisk-managers:getDefault` | Получить значения по умолчанию     |

#### ARI пользователи

| Метод  | Путь                              | Описание                           |
| ------ | --------------------------------- | ---------------------------------- |
| GET    | `/asterisk-rest-users`            | Получить список ARI пользователей  |
| POST   | `/asterisk-rest-users`            | Создать нового ARI пользователя    |
| GET    | `/asterisk-rest-users/{id}`       | Получить ARI пользователя по ID    |
| PUT    | `/asterisk-rest-users/{id}`       | Обновить ARI пользователя          |
| PATCH  | `/asterisk-rest-users/{id}`       | Частично обновить ARI пользователя |
| DELETE | `/asterisk-rest-users/{id}`       | Удалить ARI пользователя           |
| GET    | `/asterisk-rest-users:getDefault` | Получить значения по умолчанию     |

#### Ключи доступа (Passkeys)

| Метод  | Путь                             | Описание                               |
| ------ | -------------------------------- | -------------------------------------- |
| GET    | `/passkeys`                      | Получить список passkeys               |
| POST   | `/passkeys`                      | Создать новый passkey                  |
| GET    | `/passkeys/{id}`                 | Получить passkey по ID                 |
| PATCH  | `/passkeys/{id}`                 | Обновить passkey                       |
| DELETE | `/passkeys/{id}`                 | Удалить passkey                        |
| GET    | `/passkeys:checkAvailability`    | Проверить наличие passkeys             |
| GET    | `/passkeys:authenticationStart`  | Начать аутентификацию через passkey    |
| POST   | `/passkeys:authenticationFinish` | Завершить аутентификацию через passkey |
| POST   | `/passkeys:registrationStart`    | Начать регистрацию passkey             |
| POST   | `/passkeys:registrationFinish`   | Завершить регистрацию passkey          |

#### Пароли

| Метод | Путь                              | Описание                    |
| ----- | --------------------------------- | --------------------------- |
| GET   | `/passwords:generate`             | Сгенерировать пароль        |
| POST  | `/passwords:validate`             | Проверить надежность пароля |
| POST  | `/passwords:checkDictionary`      | Проверить пароль в словаре  |
| POST  | `/passwords:batchValidate`        | Пакетная проверка паролей   |
| POST  | `/passwords:batchCheckDictionary` | Пакетная проверка словаря   |

#### Пользователи

| Метод | Путь               | Описание                    |
| ----- | ------------------ | --------------------------- |
| GET   | `/users:available` | Проверить доступность email |

#### Сетевые фильтры

| Метод | Путь                            | Описание                                |
| ----- | ------------------------------- | --------------------------------------- |
| GET   | `/network-filters`              | Получить список сетевых фильтров        |
| GET   | `/network-filters/{id}`         | Получить сетевой фильтр по ID           |
| GET   | `/network-filters:getForSelect` | Получить фильтры для выпадающего списка |

***

### Системные настройки

#### Системные операции

| Метод | Путь                                 | Описание                                    |
| ----- | ------------------------------------ | ------------------------------------------- |
| GET   | `/system:ping`                       | Проверить доступность системы               |
| GET   | `/system:checkAuth`                  | Проверить аутентификацию                    |
| GET   | `/system:datetime`                   | Получить системное время                    |
| GET   | `/system:getAvailableLanguages`      | Получить доступные языки                    |
| GET   | `/system:checkForUpdates`            | Получить детальную информацию об обновлении |
| GET   | `/system:checkIfNewReleaseAvailable` | Быстрая проверка наличия новой версии       |
| GET   | `/system:getDeleteStatistics`        | Получить статистику удаления                |
| POST  | `/system:reboot`                     | Перезагрузить систему                       |
| POST  | `/system:shutdown`                   | Выключить систему                           |
| POST  | `/system:upgrade`                    | Обновить систему                            |
| POST  | `/system:restoreDefault`             | Восстановить настройки по умолчанию         |
| POST  | `/system:changeLanguage`             | Изменить язык системы                       |
| POST  | `/system:convertAudioFile`           | Конвертировать аудиофайл                    |
| POST  | `/system:executeBashCommand`         | Выполнить bash команду                      |
| POST  | `/system:executeSqlRequest`          | Выполнить SQL запрос                        |
| POST  | `/system:updateMailSettings`         | Обновить настройки почты                    |

#### Общие настройки

| Метод | Путь                             | Описание                          |
| ----- | -------------------------------- | --------------------------------- |
| GET   | `/general-settings`              | Получить общие настройки          |
| PUT   | `/general-settings`              | Обновить общие настройки          |
| PATCH | `/general-settings`              | Частично обновить общие настройки |
| GET   | `/general-settings/{id}`         | Получить конкретную настройку     |
| GET   | `/general-settings:getDefault`   | Получить значения по умолчанию    |
| POST  | `/general-settings:updateCodecs` | Обновить настройки кодеков        |

#### Сетевые интерфейсы и маршрутизация

| Метод  | Путь                      | Описание                            |
| ------ | ------------------------- | ----------------------------------- |
| GET    | `/network`                | Получить список сетевых интерфейсов |
| GET    | `/network/{id}`           | Получить сетевой интерфейс по ID    |
| DELETE | `/network/{id}`           | Удалить сетевой интерфейс           |
| GET    | `/network:getConfig`      | Получить полную конфигурацию сети   |
| GET    | `/network:getNatSettings` | Получить настройки NAT              |
| POST   | `/network:saveConfig`     | Сохранить конфигурацию сети         |

#### Сетевой фильтр (Firewall)

| Метод  | Путь                     | Описание                            |
| ------ | ------------------------ | ----------------------------------- |
| GET    | `/firewall`              | Получить список правил файервола    |
| POST   | `/firewall`              | Создать правило файервола           |
| GET    | `/firewall/{id}`         | Получить правило файервола по ID    |
| PUT    | `/firewall/{id}`         | Обновить правило файервола          |
| PATCH  | `/firewall/{id}`         | Частично обновить правило файервола |
| DELETE | `/firewall/{id}`         | Удалить правило файервола           |
| GET    | `/firewall:getDefault`   | Получить значения по умолчанию      |
| GET    | `/firewall:getBannedIps` | Получить список заблокированных IP  |
| POST   | `/firewall:unbanIp`      | Разблокировать IP адрес             |
| POST   | `/firewall:enable`       | Включить файервол                   |
| POST   | `/firewall:disable`      | Выключить файервол                  |

#### Защита от взлома (Fail2Ban)

| Метод | Путь        | Описание                             |
| ----- | ----------- | ------------------------------------ |
| GET   | `/fail2ban` | Получить настройки Fail2Ban          |
| PUT   | `/fail2ban` | Обновить настройки Fail2Ban          |
| PATCH | `/fail2ban` | Частично обновить настройки Fail2Ban |

#### Настройки времени

| Метод | Путь                                   | Описание                                 |
| ----- | -------------------------------------- | ---------------------------------------- |
| GET   | `/time-settings:getAvailableTimezones` | Получить список доступных часовых поясов |

#### Настройки почты

| Метод  | Путь                            | Описание                             |
| ------ | ------------------------------- | ------------------------------------ |
| GET    | `/mail-settings`                | Получить настройки почты             |
| PUT    | `/mail-settings`                | Обновить настройки почты             |
| PATCH  | `/mail-settings`                | Частично обновить настройки почты    |
| DELETE | `/mail-settings`                | Сбросить настройки почты             |
| GET    | `/mail-settings:getDefault`     | Получить значения по умолчанию       |
| GET    | `/mail-settings:getDiagnostics` | Получить диагностику настроек почты  |
| GET    | `/mail-settings:getOAuth2Url`   | Получить URL авторизации OAuth2      |
| POST   | `/mail-settings:refreshToken`   | Обновить OAuth2 токен                |
| POST   | `/mail-settings:testConnection` | Проверить подключение к SMTP серверу |
| POST   | `/mail-settings:sendTestEmail`  | Отправить тестовое письмо            |

#### Хранилище

| Метод | Путь                  | Описание                                     |
| ----- | --------------------- | -------------------------------------------- |
| GET   | `/storage:usage`      | Получить статистику использования хранилища  |
| GET   | `/storage:list`       | Получить список доступных устройств хранения |
| POST  | `/storage:mount`      | Смонтировать устройство хранения             |
| POST  | `/storage:umount`     | Размонтировать устройство хранения           |
| POST  | `/storage:mkfs`       | Форматировать устройство хранения            |
| POST  | `/storage:statusMkfs` | Получить статус форматирования               |

#### S3 Облачное хранилище

| Метод | Путь                         | Описание                             |
| ----- | ---------------------------- | ------------------------------------ |
| GET   | `/s3-storage`                | Получить конфигурацию S3 хранилища   |
| PUT   | `/s3-storage`                | Обновить конфигурацию S3 хранилища   |
| PATCH | `/s3-storage`                | Частично обновить конфигурацию S3    |
| GET   | `/s3-storage:stats`          | Получить статистику синхронизации S3 |
| GET   | `/s3-storage:testConnection` | Тестировать S3 соединение            |

#### Дополнительные модули

| Метод  | Путь                              | Описание                               |
| ------ | --------------------------------- | -------------------------------------- |
| GET    | `/modules`                        | Получить список модулей                |
| POST   | `/modules`                        | Создать модуль                         |
| GET    | `/modules/{id}`                   | Получить модуль по ID                  |
| PUT    | `/modules/{id}`                   | Обновить модуль                        |
| PATCH  | `/modules/{id}`                   | Частично обновить модуль               |
| DELETE | `/modules/{id}`                   | Удалить модуль                         |
| GET    | `/modules/{id}:getModuleInfo`     | Получить информацию о модуле           |
| GET    | `/modules/{id}:getModuleLink`     | Получить ссылку на скачивание модуля   |
| GET    | `/modules/{id}:getDownloadStatus` | Получить статус загрузки               |
| POST   | `/modules/{id}:startDownload`     | Начать загрузку модуля                 |
| POST   | `/modules/{id}:installFromRepo`   | Установить модуль из репозитория       |
| POST   | `/modules:installFromPackage`     | Установить модуль из пакета            |
| POST   | `/modules:getMetadataFromPackage` | Получить метаданные из пакета          |
| POST   | `/modules/{id}:enable`            | Включить модуль                        |
| POST   | `/modules/{id}:disable`           | Отключить модуль                       |
| POST   | `/modules/{id}:uninstall`         | Удалить модуль                         |
| POST   | `/modules:updateAll`              | Обновить все модули                    |
| GET    | `/modules:getAvailableModules`    | Получить доступные модули              |
| GET    | `/modules:getInstallationStatus`  | Получить статус установки              |
| GET    | `/modules:getDefault`             | Получить настройки модуля по умолчанию |

#### Лицензирование

| Метод | Путь                                  | Описание                            |
| ----- | ------------------------------------- | ----------------------------------- |
| GET   | `/license:getLicenseInfo`             | Получить информацию о лицензии      |
| GET   | `/license:ping`                       | Проверить связь с сервером лицензий |
| GET   | `/license:resetKey`                   | Сбросить лицензионный ключ          |
| GET   | `/license:sendPBXMetrics`             | Отправить метрики АТС               |
| POST  | `/license:captureFeatureForProductId` | Захватить функцию для продукта      |
| POST  | `/license:processUserRequest`         | Обработать запрос пользователя      |

#### Операции с файлами

| Метод  | Путь                      | Описание                             |
| ------ | ------------------------- | ------------------------------------ |
| GET    | `/files/{id}`             | Получить содержимое файла            |
| PUT    | `/files/{id}`             | Загрузить/обновить файл              |
| DELETE | `/files/{id}`             | Удалить файл                         |
| POST   | `/files:upload`           | Загрузить файл (чанками)             |
| GET    | `/files:uploadStatus`     | Проверить статус загрузки            |
| POST   | `/files:downloadFirmware` | Скачать прошивку                     |
| GET    | `/files:firmwareStatus`   | Проверить статус скачивания прошивки |

***

### Диагностика

#### Информация о системе

| Метод | Путь                         | Описание                          |
| ----- | ---------------------------- | --------------------------------- |
| GET   | `/sysinfo:getInfo`           | Получить системную информацию     |
| GET   | `/sysinfo:getExternalIpInfo` | Получить внешний IP адрес         |
| GET   | `/sysinfo:getHypervisorInfo` | Получить информацию о гипервизоре |
| GET   | `/sysinfo:getDMIInfo`        | Получить DMI информацию           |

#### Системные логи

| Метод | Путь                      | Описание                         |
| ----- | ------------------------- | -------------------------------- |
| GET   | `/syslog:getLogsList`     | Получить список лог файлов       |
| POST  | `/syslog:getLogFromFile`  | Получить содержимое лога         |
| POST  | `/syslog:getLogTimeRange` | Получить временной диапазон лога |
| POST  | `/syslog:eraseFile`       | Очистить лог файл                |
| POST  | `/syslog:startCapture`    | Начать захват пакетов            |
| POST  | `/syslog:stopCapture`     | Остановить захват пакетов        |
| POST  | `/syslog:prepareArchive`  | Подготовить архив логов          |
| POST  | `/syslog:downloadArchive` | Скачать архив логов              |
| POST  | `/syslog:downloadLogFile` | Скачать лог файл                 |

#### Документация OpenAPI

| Метод | Путь                                | Описание                              |
| ----- | ----------------------------------- | ------------------------------------- |
| GET   | `/openapi:getSpecification`         | Получить OpenAPI спецификацию         |
| GET   | `/openapi:getAclRules`              | Получить ACL правила API              |
| GET   | `/openapi:getDetailedPermissions`   | Получить детальный список разрешений  |
| GET   | `/openapi:getSimplifiedPermissions` | Получить упрощенный список разрешений |
| GET   | `/openapi:getValidationSchemas`     | Получить схемы валидации              |
| POST  | `/openapi:clearCache`               | Очистить кэш OpenAPI                  |

#### Поиск

| Метод | Путь                     | Описание         |
| ----- | ------------------------ | ---------------- |
| GET   | `/search:getSearchItems` | Глобальный поиск |

#### Ссылки на документацию

| Метод | Путь                  | Описание                        |
| ----- | --------------------- | ------------------------------- |
| GET   | `/wiki-links:getLink` | Получить ссылку на документацию |

#### Отслеживание активности пользователей

| Метод | Путь                           | Описание                        |
| ----- | ------------------------------ | ------------------------------- |
| POST  | `/user-page-tracker:pageView`  | Зафиксировать просмотр страницы |
| POST  | `/user-page-tracker:pageLeave` | Зафиксировать уход со страницы  |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mikopbx.com/mikopbx/manual/system/api-keys/endpoints.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
