{"items":[{"type":"link","label":"Внутреннее API Felmee","link":"/openapi","routeSlug":"/openapi"},{"type":"link","label":"Общий формат ответа","link":"/openapi/section/obshij-format-otveta","routeSlug":"/openapi/section/obshij-format-otveta"},{"type":"link","label":"Возможные значения ","link":"/openapi/section/vozmozhnye-znacheniya","routeSlug":"/openapi/section/vozmozhnye-znacheniya"},{"type":"group","label":"Приглашения клиентов бизнесом","link":"/openapi/priglasheniya-klientov-biznesom","routeSlug":"/openapi/priglasheniya-klientov-biznesom","items":[{"label":"Получить существующий QR и ссылку профиля бизнеса","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/priglasheniya-klientov-biznesom/getbusinessinvitationshare","routeSlug":"/openapi/priglasheniya-klientov-biznesom/getbusinessinvitationshare","metadata":{"seo":{"title":"Получить существующий QR и ссылку профиля бизнеса","description":"Доступ по праву CLIENT_INVITATIONS_SHARE. Не создаёт QR или записи ссылок."}},"httpPath":"/api/business-client-invitations/share"},{"label":"Получить правила, квоту, статистику и права текущего бизнеса","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/priglasheniya-klientov-biznesom/getbusinessclientinvitationprogram","routeSlug":"/openapi/priglasheniya-klientov-biznesom/getbusinessclientinvitationprogram","metadata":{"seo":{"title":"Получить правила, квоту, статистику и права текущего бизнеса","description":"Определяет независимого мастера или салон по текущей сессии. Владельцу салонадоступ разрешён; администратору требуется право CLIENT_INVITATIONS_VIEW. Обычныемастера салона не получают общий список клиентов салона через роль сотрудника."}},"httpPath":"/api/business-client-invitations/program"},{"label":"Получить уникальных авторизованных получателей, включая отклонённые попытки","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/priglasheniya-klientov-biznesom/getbusinessinvitationclients","routeSlug":"/openapi/priglasheniya-klientov-biznesom/getbusinessinvitationclients","metadata":{"seo":{"title":"Получить уникальных авторизованных получателей, включая отклонённые попытки","description":"Требуется право CLIENT_INVITATIONS_VIEW. Для каждого целевого бизнеса и устойчивойидентичности клиента возвращается один элемент, даже после повторных переходов,входов или пересоздания аккаунта. Отклонённая попытка клиента, привязанного к другомубизнесу, включается со значениями FAILED и ALREADY_BOUND_TO_OTHER_BUSINESS, но другойбизнес не раскрывается. status и binding_status — независимые фильтры, объединяемыечерез AND. По умолчанию записи сортируются по first_seen_at, затем invitation_id поубыванию. Поиск выполняется только по имени и телефону, доступным бизнесу согласноправилам доступа. У клиента без записи record=null; услуга и цена не подставляются."}},"httpPath":"/api/business-client-invitations/clients"},{"label":"Получить статус, причины, запись текущего бизнеса и историю получателя","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/priglasheniya-klientov-biznesom/getbusinessinvitationclient","routeSlug":"/openapi/priglasheniya-klientov-biznesom/getbusinessinvitationclient","metadata":{"seo":{"title":"Получить статус, причины, запись текущего бизнеса и историю получателя","description":"Получить статус, причины, запись текущего бизнеса и историю получателя"}},"httpPath":"/api/business-client-invitations/clients/{invitation_id}"}]},{"type":"group","label":"Привязка клиента к бизнесу","link":"/openapi/privyazka-klienta-k-biznesu","routeSlug":"/openapi/privyazka-klienta-k-biznesu","items":[{"label":"Получить карточку бизнеса, свою привязку и постоянные ограничения участия","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/privyazka-klienta-k-biznesu/getmybusinessbinding","routeSlug":"/openapi/privyazka-klienta-k-biznesu/getmybusinessbinding","metadata":{"seo":{"title":"Получить карточку бизнеса, свою привязку и постоянные ограничения участия","description":"Только для CLIENT. До квалифицирующего визита возвращает NONE и binding=null; этоне означает возможность участия, поскольку существующий клиент платформы может несоответствовать условиям или уже иметь ожидающую атрибуцию. Для ожидающей атрибуцииcan_detach=false. Статус DETACHED сохраняет историю привязки и всегда возвращаетcan_bind=false и can_detach=false. У квалифицированного отвязанного клиента остаётсяstatus=QUALIFIED, но льгота неактивна."}},"httpPath":"/api/user/business-binding"},{"label":"Окончательно отвязаться от пригласившего бизнеса","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/privyazka-klienta-k-biznesu/detachmybusinessbinding","routeSlug":"/openapi/privyazka-klienta-k-biznesu/detachmybusinessbinding","metadata":{"seo":{"title":"Окончательно отвязаться от пригласившего бизнеса","description":"Только для CLIENT; привязка должна принадлежать клиенту текущей сессии. В однойтранзакции блокируется постоянная идентичность клиента, проверяется expected_version,устанавливаются DETACHED и время отвязки, отменяется право на комиссионную льготу,записывается история и публикуется событие outbox. Идентичность и история квалификациине удаляются, использованное место пожизненной квоты не освобождается. Привязкавозникает только после квалификации, поэтому ожидающего кандидата отвязать нельзя.Услуги, оказанные до detached_at, сохраняют историческую комиссию, даже если событиезавершения поступило позже. Ко всем услугам после detached_at применяется обычнаякомиссия, включая предоплаченные; корректируется только реестр комиссии бизнеса,но не цена клиента. Повтор с теми же ключом идемпотентности и телом возвращает исходныйответ до проверки версии. Тот же ключ с другим телом возвращает 409. Повторная отвязкауже отвязанной привязки может вернуть существующий итог без нового события. Устаревшаяверсия активной привязки возвращает 409."}},"httpPath":"/api/user/business-binding/detach"}]},{"type":"group","label":"Сравнения","link":"/openapi/sravneniya","routeSlug":"/openapi/sravneniya","items":[{"label":"Получить список услуг в сравнении","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/sravneniya/getmycomparisonservices","routeSlug":"/openapi/sravneniya/getmycomparisonservices","metadata":{"seo":{"title":"Получить список услуг в сравнении","description":"Краткие карточки сохранённых услуг текущего пользователя. Пустой список — data: []."}},"httpPath":"/api/comparison/list"},{"label":"Сравнить выбранные услуги","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/sravneniya/comparesavedservices","routeSlug":"/openapi/sravneniya/comparesavedservices","metadata":{"seo":{"title":"Сравнить выбранные услуги","description":"Возвращает данные 1–4 услуг, ранее добавленных текущим пользователем в сравнение."}},"httpPath":"/api/comparison"},{"label":"Добавить услугу в сравнение","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/sravneniya/addservicetocomparison","routeSlug":"/openapi/sravneniya/addservicetocomparison","metadata":{"seo":{"title":"Добавить услугу в сравнение","description":"Не более четырёх услуг одной категории. Тело запроса не требуется."}},"httpPath":"/api/comparison/{serviceId}"},{"label":"Удалить услугу из сравнения","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/sravneniya/removeservicefromcomparison","routeSlug":"/openapi/sravneniya/removeservicefromcomparison","metadata":{"seo":{"title":"Удалить услугу из сравнения","description":"Удаляет услугу только из списка текущего пользователя. Тело запроса не требуется."}},"httpPath":"/api/comparison/{serviceId}"}]},{"type":"group","label":"Админ-панель — история действий","link":"/openapi/admin-panel-istoriya-dejstvij","routeSlug":"/openapi/admin-panel-istoriya-dejstvij","items":[{"label":"Получить историю действий","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-istoriya-dejstvij/paths/~1api~1admin~1action-history/get","routeSlug":"/openapi/admin-panel-istoriya-dejstvij/paths/~1api~1admin~1action-history/get","metadata":{"seo":{"title":"Получить историю действий","description":"Возвращает изменяющие действия сотрудников за выбранный период. Результат отсортирован от новых событий к старым."}},"httpPath":"/api/admin/action-history"}]},{"type":"group","label":"Админ-панель — жалобы","link":"/openapi/admin-panel-zhaloby","routeSlug":"/openapi/admin-panel-zhaloby","items":[{"label":"Получить статистику жалоб","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-zhaloby/paths/~1api~1admin~1complaints~1stats/get","routeSlug":"/openapi/admin-panel-zhaloby/paths/~1api~1admin~1complaints~1stats/get","metadata":{"seo":{"title":"Получить статистику жалоб","description":"Возвращает статистику жалоб за выбранный период и сравнение с предыдущим периодом такой же продолжительности."}},"httpPath":"/api/admin/complaints/stats"},{"label":"Получить список жалоб","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-zhaloby/paths/~1api~1admin~1complaints/get","routeSlug":"/openapi/admin-panel-zhaloby/paths/~1api~1admin~1complaints/get","metadata":{"seo":{"title":"Получить список жалоб","description":"Поиск выполняется по имени заявителя, ФИО участника, на которого подана жалоба, и названию объекта жалобы. Для открытых жалоб используется сортировка по дате создания, для закрытых — по дате решения, от новых к старым."}},"httpPath":"/api/admin/complaints"},{"label":"Получить жалобу","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-zhaloby/paths/~1api~1admin~1complaints~1{complaintid}/get","routeSlug":"/openapi/admin-panel-zhaloby/paths/~1api~1admin~1complaints~1{complaintid}/get","metadata":{"seo":{"title":"Получить жалобу","description":"Возвращает участников, доступные решения и снимок отзыва/услуги. Для остальных типов оба поля снимков равны null."}},"httpPath":"/api/admin/complaints/{complaintId}"},{"label":"Вынести решение по жалобе","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-zhaloby/paths/~1api~1admin~1complaints~1{complaintid}~1resolve/post","routeSlug":"/openapi/admin-panel-zhaloby/paths/~1api~1admin~1complaints~1{complaintid}~1resolve/post","metadata":{"seo":{"title":"Вынести решение по жалобе","description":"Атомарно закрывает открытую жалобу и выполняет выбранное действие. Переданные текстысохраняются в жалобе и отправляются заявителю и адресату от имени поддержки;comment остаётся только во внутренней системе. Повторное решение возвращает 409."}},"httpPath":"/api/admin/complaints/{complaintId}/resolve"},{"label":"Получить шаблоны решений по жалобе","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-zhaloby/paths/~1api~1admin~1complaints~1{complaintid}~1resolution-templates/get","routeSlug":"/openapi/admin-panel-zhaloby/paths/~1api~1admin~1complaints~1{complaintid}~1resolution-templates/get","metadata":{"seo":{"title":"Получить шаблоны решений по жалобе","description":"Возвращает только допустимые для текущей жалобы решения. Тексты являются значениямипо умолчанию — фронт может изменить их перед отправкой решения. Для закрытой жалобыitems пуст. Если отзыв или услуга уже удалены, доступны SUBJECT_UNAVAILABLEи NO_VIOLATION."}},"httpPath":"/api/admin/complaints/{complaintId}/resolution-templates"},{"label":"Создать тестовую жалобу","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-zhaloby/paths/~1api~1admin~1complaints~1test/post","routeSlug":"/openapi/admin-panel-zhaloby/paths/~1api~1admin~1complaints~1test/post","metadata":{"seo":{"title":"Создать тестовую жалобу","description":"Создаёт жалобу на реально существующий объект с системным заявителем -2; для отзыва или услуги сразу сохраняется снимок объекта."}},"httpPath":"/api/admin/complaints/test"}]},{"type":"group","label":"Админ-панель — категории","link":"/openapi/admin-panel-kategorii","routeSlug":"/openapi/admin-panel-kategorii","items":[{"label":"Получить корневые категории для админ-панели","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-kategorii/paths/~1api~1admin~1categories/get","routeSlug":"/openapi/admin-panel-kategorii/paths/~1api~1admin~1categories/get","metadata":{"seo":{"title":"Получить корневые категории для админ-панели","description":"Возвращает корневые категории, отсортированные по sort_order и ID. Каждый элементсодержит количество прямых дочерних категорий и услуг. Требуется роль ADMINи доступ CATEGORIES уровня READ или FULL."}},"httpPath":"/api/admin/categories"},{"label":"Создать категорию из админ-панели","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-kategorii/paths/~1api~1admin~1categories/post","routeSlug":"/openapi/admin-panel-kategorii/paths/~1api~1admin~1categories/post","metadata":{"seo":{"title":"Создать категорию из админ-панели","description":"Создаёт корневую категорию вместе со списком её подкатегорий. Корневая категорияполучает show_in_onboarding=true. Порядок корневой категории и подкатегорийназначается сервером автоматически по текущему порядку и индексу в массиве.Переданный image_id должен принадлежать администратору и иметь назначение CATEGORY.Требуется роль ADMIN и доступ CATEGORIES уровня FULL."}},"httpPath":"/api/admin/categories"},{"label":"Изменить категорию из админ-панели","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-kategorii/paths/~1api~1admin~1categories~1{categoryid}/patch","routeSlug":"/openapi/admin-panel-kategorii/paths/~1api~1admin~1categories~1{categoryid}/patch","metadata":{"seo":{"title":"Изменить категорию из админ-панели","description":"Частично изменяет корневую категорию. Можно изменить название, изображение и списокподкатегорий. Если subcategories передан, он считается полным целевым списком:отсутствующие подкатегории удаляются, новые создаются, а category_id используетсядля изменения существующей подкатегории. Порядок назначается по индексу массива.Удаление подкатегории, которая сама или через дочерние категории используется услугой,возвращает 409 Conflict; операция выполняется атомарно.Требуется роль ADMIN и доступ CATEGORIES уровня FULL."}},"httpPath":"/api/admin/categories/{categoryId}"},{"label":"Удалить категорию из админ-панели","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-kategorii/paths/~1api~1admin~1categories~1{categoryid}/delete","routeSlug":"/openapi/admin-panel-kategorii/paths/~1api~1admin~1categories~1{categoryid}/delete","metadata":{"seo":{"title":"Удалить категорию из админ-панели","description":"Удаляет категорию, если она и её дочерние категории не используются услугами.Требуется роль ADMIN и доступ CATEGORIES уровня FULL."}},"httpPath":"/api/admin/categories/{categoryId}"},{"label":"Получить прямые подкатегории для админ-панели","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-kategorii/paths/~1api~1admin~1categories~1{categoryid}~1subcategories/get","routeSlug":"/openapi/admin-panel-kategorii/paths/~1api~1admin~1categories~1{categoryid}~1subcategories/get","metadata":{"seo":{"title":"Получить прямые подкатегории для админ-панели","description":"Возвращает прямые дочерние категории выбранной категории с количеством их дочернихкатегорий и услуг. Требуется роль ADMIN и доступ CATEGORIES уровня READ или FULL."}},"httpPath":"/api/admin/categories/{categoryId}/subcategories"}]},{"type":"group","label":"Админ-панель — реферальная программа","link":"/openapi/admin-panel-referalnaya-programma","routeSlug":"/openapi/admin-panel-referalnaya-programma","items":[{"label":"Получить статистику реферальной программы","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-referalnaya-programma/paths/~1api~1admin~1referral~1stats/get","routeSlug":"/openapi/admin-panel-referalnaya-programma/paths/~1api~1admin~1referral~1stats/get","metadata":{"seo":{"title":"Получить статистику реферальной программы","description":"Возвращает количество зарегистрированных рефералов, их конверсию и количество активныхамбассадоров за выбранный период. Изменения сравниваются с непосредственно предшествующимпериодом такой же продолжительности. Для конверсии изменение возвращается в процентных пунктах.Требуется роль ADMIN и доступ REFERRAL_PROGRAM уровня READ или FULL."}},"httpPath":"/api/admin/referral/stats"},{"label":"Получить данные графика выгоды реферальной системы","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-referalnaya-programma/paths/~1api~1admin~1referral~1profit/get","routeSlug":"/openapi/admin-panel-referalnaya-programma/paths/~1api~1admin~1referral~1profit/get","metadata":{"seo":{"title":"Получить данные графика выгоды реферальной системы","description":"Возвращает по каждому календарному дню выбранного периода комиссию платформы и стоимостьприменённых реферальных скидок. earned_amount — комиссия 15% от итоговой стоимости завершённыхзаписей клиентов, зарегистрированных по реферальной ссылке. spent_amount — фактическая суммаприменённых реферальных скидок в завершённых записях. Дни без операций возвращаются с нулевымизначениями. Максимальная продолжительность периода — 366 дней.Требуется роль ADMIN и доступ REFERRAL_PROGRAM уровня READ или FULL."}},"httpPath":"/api/admin/referral/profit"},{"label":"Получить правила реферальной программы","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-referalnaya-programma/paths/~1api~1admin~1referral~1rules/get","routeSlug":"/openapi/admin-panel-referalnaya-programma/paths/~1api~1admin~1referral~1rules/get","metadata":{"seo":{"title":"Получить правила реферальной программы","description":"Возвращает для админ-панели все правила реферальной программы, включая отключённые,в порядке sort_order и ID. Требуется роль ADMIN и доступ REFERRAL_PROGRAMуровня READ или FULL. При передаче target_type правила можно получить отдельнодля друзей (CLIENT) или мастеров/салонов (BUSINESS). offset и limit задаютпагинацию."}},"httpPath":"/api/admin/referral/rules"},{"label":"Изменить награду реферального правила","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-referalnaya-programma/paths/~1api~1admin~1referral~1rules~1{ruleid}/patch","routeSlug":"/openapi/admin-panel-referalnaya-programma/paths/~1api~1admin~1referral~1rules~1{ruleid}/patch","metadata":{"seo":{"title":"Изменить награду реферального правила","description":"Изменяет только reward_percent и reward_interval; оба поля обязательны.reward_percent должен быть от 0 до 100. Значение ALL_SERVICES означает постояннуюскидку, а NEXT_SERVICE — купон на следующую услугу. Уровень, тип приглашённого,триггер, текст отображения, состояние правила и порог рефералов не изменяются."}},"httpPath":"/api/admin/referral/rules/{ruleId}"}]},{"type":"group","label":"Админ-панель — клиенты","link":"/openapi/admin-panel-klienty","routeSlug":"/openapi/admin-panel-klienty","items":[{"label":"Получить список клиентов с пагинацией","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients/get","routeSlug":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients/get","metadata":{"seo":{"title":"Получить список клиентов с пагинацией","description":"Возвращает клиентов с фильтрацией по периоду, поисковой строке, городу и статусу, а также с сортировкой."}},"httpPath":"/api/admin/clients"},{"label":"Получить список чатов клиента","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients~1{clientid}~1chats/get","routeSlug":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients~1{clientid}~1chats/get","metadata":{"seo":{"title":"Получить список чатов клиента","description":"Возвращает список личных диалогов клиента, отсортированный по временипоследнего сообщения от нового к старому. Для постраничной загрузкииспользуются параметры offset и limit."}},"httpPath":"/api/admin/clients/{clientId}/chats"},{"label":"Получить историю чата клиента","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients~1chats~1{dialogid}~1messages/get","routeSlug":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients~1chats~1{dialogid}~1messages/get","metadata":{"seo":{"title":"Получить историю чата клиента","description":"Возвращает историю личного чата между клиентом и мастером или салоном.Чаты с системной поддержкой недоступны и возвращают 403 Forbidden."}},"httpPath":"/api/admin/clients/chats/{dialogId}/messages"},{"label":"Получить возможные причины блокировки","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-klienty/paths/~1api~1admin~1block-reasons/get","routeSlug":"/openapi/admin-panel-klienty/paths/~1api~1admin~1block-reasons/get","metadata":{"seo":{"title":"Получить возможные причины блокировки","description":"Возвращает отдельный набор причин блокировки для клиента, мастера или салона.OTHER и «Другая причина» не возвращаются."}},"httpPath":"/api/admin/block-reasons"},{"label":"Получить статистику клиентов","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients~1stats/get","routeSlug":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients~1stats/get","metadata":{"seo":{"title":"Получить статистику клиентов","description":"Требуется роль ADMIN и доступ CLIENTS уровня READ или FULL."}},"httpPath":"/api/admin/clients/stats"},{"label":"Получить данные клиента","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients~1{id}/get","routeSlug":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients~1{id}/get","metadata":{"seo":{"title":"Получить данные клиента","description":"Возвращает текстовые данные клиента для административной панели.Требуется роль ADMIN и доступ CLIENTS READ или CLIENTS FULL."}},"httpPath":"/api/admin/clients/{id}"},{"label":"Изменить данные клиента","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients~1{id}/patch","routeSlug":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients~1{id}/patch","metadata":{"seo":{"title":"Изменить данные клиента","description":"Частично обновляет текстовые поля клиента."}},"httpPath":"/api/admin/clients/{id}"},{"label":"Заблокировать клиента","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients~1{id}~1block/post","routeSlug":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients~1{id}~1block/post","metadata":{"seo":{"title":"Заблокировать клиента","description":"Блокирует клиента с указанной причиной. Возможные причины следует получитьчерез GET /api/admin/block-reasons?target=CLIENT."}},"httpPath":"/api/admin/clients/{id}/block"},{"label":"Разблокировать клиента","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients~1{id}~1unblock/post","routeSlug":"/openapi/admin-panel-klienty/paths/~1api~1admin~1clients~1{id}~1unblock/post","metadata":{"seo":{"title":"Разблокировать клиента","description":"Разблокирует клиента. Request body не передаётся.Данные последней блокировки сохраняются в БД как история, но для активногоклиента block_reason и blocked_by в REST-профиле возвращаются как null.Требуется роль ADMIN и доступ CLIENTS уровня FULL."}},"httpPath":"/api/admin/clients/{id}/unblock"}]},{"type":"group","label":"Админ-панель — записи","link":"/openapi/admin-panel-zapisi","routeSlug":"/openapi/admin-panel-zapisi","items":[{"label":"Получить список записей","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-zapisi/paths/~1api~1admin~1records/get","routeSlug":"/openapi/admin-panel-zapisi/paths/~1api~1admin~1records/get","metadata":{"seo":{"title":"Получить список записей","description":"Возвращает записи за период с поиском по номеру записи, клиенту, мастеру,салону и услуге. Поддерживает фильтрацию по нескольким городам и статусам,сортировку через повторяемый параметр sort=field:direction, а также offset-пагинацию."}},"httpPath":"/api/admin/records"},{"label":"Получить данные записи","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-zapisi/paths/~1api~1admin~1records~1{recordid}/get","routeSlug":"/openapi/admin-panel-zapisi/paths/~1api~1admin~1records~1{recordid}/get","metadata":{"seo":{"title":"Получить данные записи","description":"Возвращает данные одной оплаченной записи только для чтения. Для независимого мастера поле салона равно null. Записи с внутренним статусом WAITING_FOR_PAYMENT не выдаются."}},"httpPath":"/api/admin/records/{recordId}"},{"label":"Отменить запись администратором","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-zapisi/paths/~1api~1admin~1records~1{recordid}~1cancel/post","routeSlug":"/openapi/admin-panel-zapisi/paths/~1api~1admin~1records~1{recordid}~1cancel/post","metadata":{"seo":{"title":"Отменить запись администратором","description":"Атомарно отменяет активную запись со статусом BOOKED, сохраняет обязательнуюпричину отмены и данные администратора для аудита. Этот endpoint не отправляетсообщения в чат. Для оплаченной записи создаётся событие полного возврата."}},"httpPath":"/api/admin/records/{recordId}/cancel"},{"label":"Получить статистику записей","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-zapisi/paths/~1api~1admin~1records~1stats/get","routeSlug":"/openapi/admin-panel-zapisi/paths/~1api~1admin~1records~1stats/get","metadata":{"seo":{"title":"Получить статистику записей","description":"Возвращает статистику записей за выбранный период.waiting_records учитывает только записи со статусом BOOKED.Проценты статусов рассчитываются от общего количества записей за текущий период.total_records_change_percent сравнивает общее количество записей с предыдущим аналогичным периодом."}},"httpPath":"/api/admin/records/stats"}]},{"type":"group","label":"Админ-панель — мастера и салоны","link":"/openapi/admin-panel-mastera-i-salony","routeSlug":"/openapi/admin-panel-mastera-i-salony","items":[{"label":"Получить возможные причины блокировки","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1block-reasons/get","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1block-reasons/get","metadata":{"seo":{"title":"Получить возможные причины блокировки","description":"Возвращает отдельный набор причин блокировки для клиента, мастера или салона.OTHER и «Другая причина» не возвращаются."}},"httpPath":"/api/admin/block-reasons"},{"label":"Получить список мастеров и салонов","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1masters-salons/get","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1masters-salons/get","metadata":{"seo":{"title":"Получить список мастеров и салонов","description":"Возвращает мастеров и салоны с показателями за выбранный период. Фильтры роли и статусаможно передавать несколько раз: role=MASTER&role=SALON иstatus=ACTIVE&status=BLOCKED. Требуется роль ADMIN и доступMASTERS_AND_SALONS уровня READ или FULL."}},"httpPath":"/api/admin/masters-salons"},{"label":"Получить статистику мастеров и салонов","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1masters-salons~1stats/get","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1masters-salons~1stats/get","metadata":{"seo":{"title":"Получить статистику мастеров и салонов","description":"Возвращает общее количество мастеров и салонов на конец выбранного периода,процентное изменение относительно предыдущего периода, активных мастеров и салоныс записями за период, а также мастеров и владельцев салонов, заблокированных за период.Требуется роль ADMIN и доступ MASTERS_AND_SALONS уровня READ или FULL."}},"httpPath":"/api/admin/masters-salons/stats"},{"label":"Получить доступные категории для мастера","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1masters~1{id}~1available-categories/get","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1masters~1{id}~1available-categories/get","metadata":{"seo":{"title":"Получить доступные категории для мастера","description":"Возвращает корневые категории, которые ещё не назначены мастеру."}},"httpPath":"/api/admin/masters/{id}/available-categories"},{"label":"Получить доступные категории для салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1salons~1{id}~1available-categories/get","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1salons~1{id}~1available-categories/get","metadata":{"seo":{"title":"Получить доступные категории для салона","description":"Возвращает корневые категории, которые ещё не назначены салону."}},"httpPath":"/api/admin/salons/{id}/available-categories"},{"label":"Получить профиль мастера в админ-панели","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1masters~1{id}/get","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1masters~1{id}/get","metadata":{"seo":{"title":"Получить профиль мастера в админ-панели","description":"Возвращает редактируемые поля профиля мастера, ID изображений и состояниеблокировки: status, block_reason, blocked_by."}},"httpPath":"/api/admin/masters/{id}"},{"label":"Частично изменить профиль мастера","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1masters~1{id}/patch","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1masters~1{id}/patch","metadata":{"seo":{"title":"Частично изменить профиль мастера","description":"Изменяет поля профиля мастера, кроме изображений. Поля avatar,example_work_images и interior_images доступны только для чтения —при их передаче запрос будет отклонён.Если переданы category_ids или service_locations, соответствующий списокполностью заменяет ранее сохранённый список."}},"httpPath":"/api/admin/masters/{id}"},{"label":"Получить профиль салона в админ-панели","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1salons~1{id}/get","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1salons~1{id}/get","metadata":{"seo":{"title":"Получить профиль салона в админ-панели","description":"Возвращает редактируемые поля салона, ID изображений, визуальный графикработы и состояние блокировки учётной записи владельца салона:status, block_reason, blocked_by."}},"httpPath":"/api/admin/salons/{id}"},{"label":"Частично изменить профиль салона","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1salons~1{id}/patch","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1salons~1{id}/patch","metadata":{"seo":{"title":"Частично изменить профиль салона","description":"Изменяет текстовые поля салона, категории и визуальный график работы профиля.Поля cover_photo_id и interior_images доступны только для чтения —при их передаче запрос будет отклонён.Если передан working_days, он полностью заменяет семь ранее сохранённых дней.Этот график отображается в профиле и не является фактическим календарём доступности для записи."}},"httpPath":"/api/admin/salons/{id}"},{"label":"Заблокировать мастера","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1masters~1{id}~1block/post","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1masters~1{id}~1block/post","metadata":{"seo":{"title":"Заблокировать мастера","description":"Блокирует учётную запись мастера. Возможные причины следует получить черезGET /api/admin/block-reasons?target=MASTER."}},"httpPath":"/api/admin/masters/{id}/block"},{"label":"Разблокировать мастера","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1masters~1{id}~1unblock/post","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1masters~1{id}~1unblock/post","metadata":{"seo":{"title":"Разблокировать мастера","description":"Разблокирует учётную запись мастера без request body. Данные последнейблокировки остаются в БД как история.Требуется роль ADMIN и доступ MASTERS_AND_SALONS уровня FULL."}},"httpPath":"/api/admin/masters/{id}/unblock"},{"label":"Заблокировать салон","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1salons~1{id}~1block/post","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1salons~1{id}~1block/post","metadata":{"seo":{"title":"Заблокировать салон","description":"Блокирует учётную запись владельца салона. В path передаётся salonId,а не ID владельца. Возможные причины следует получить черезGET /api/admin/block-reasons?target=SALON."}},"httpPath":"/api/admin/salons/{id}/block"},{"label":"Разблокировать салон","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1salons~1{id}~1unblock/post","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1salons~1{id}~1unblock/post","metadata":{"seo":{"title":"Разблокировать салон","description":"Разблокирует учётную запись владельца салона без request body. В pathпередаётся salonId. Данные последней блокировки остаются в БД как история.Требуется роль ADMIN и доступ MASTERS_AND_SALONS уровня FULL."}},"httpPath":"/api/admin/salons/{id}/unblock"},{"label":"Получить заявки на модерацию","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1moderation~1requests/get","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1moderation~1requests/get","metadata":{"seo":{"title":"Получить заявки на модерацию","description":"Возвращает заявки мастеров и салонов.Для одного запроса выбирается один статус вкладки, а параметры role и city можно передавать несколько раз.Требуется роль ADMIN и доступ MASTERS_AND_SALONS уровня READ или FULL."}},"httpPath":"/api/admin/moderation/requests"},{"label":"Одобрить заявку на модерацию","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1moderation~1requests~1{requestid}~1approve/post","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1moderation~1requests~1{requestid}~1approve/post","metadata":{"seo":{"title":"Одобрить заявку на модерацию","description":"Переводит заявку из PENDING в APPROVED.Требуется роль ADMIN и доступ MASTERS_AND_SALONS уровня FULL."}},"httpPath":"/api/admin/moderation/requests/{requestId}/approve"},{"label":"Отклонить заявку на модерацию","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1moderation~1requests~1{requestid}~1reject/post","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1moderation~1requests~1{requestid}~1reject/post","metadata":{"seo":{"title":"Отклонить заявку на модерацию","description":"Переводит заявку из PENDING в REJECTED.Требуется роль ADMIN и доступ MASTERS_AND_SALONS уровня FULL."}},"httpPath":"/api/admin/moderation/requests/{requestId}/reject"},{"label":"Тестово отправить салон на модерацию","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1moderation~1test~1salons~1{salonid}~1submit/post","routeSlug":"/openapi/admin-panel-mastera-i-salony/paths/~1api~1admin~1moderation~1test~1salons~1{salonid}~1submit/post","metadata":{"seo":{"title":"Тестово отправить салон на модерацию","description":"Создаёт PENDING-заявку для существующего салона. Нужен только для тестированияадминистративного сценария до реализации реальной отправки профиля на модерацию.Одновременно у салона может быть только одна PENDING-заявка.Требуется роль ADMIN и доступ MASTERS_AND_SALONS уровня FULL."}},"httpPath":"/api/admin/moderation/test/salons/{salonId}/submit"}]},{"type":"group","label":"Админ-панель — чат поддержки","link":"/openapi/admin-panel-chat-podderzhki","routeSlug":"/openapi/admin-panel-chat-podderzhki","items":[{"label":"Получить обращения в поддержку","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1chats/get","routeSlug":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1chats/get","metadata":{"seo":{"title":"Получить обращения в поддержку","description":"Возвращает последние обращения пользователей, отсортированные по временипоследнего сообщения от новых к старым. Требуется доступ SUPPORT:READ.query ищет по имени, фамилии и полному имени пользователя."}},"httpPath":"/api/admin/support/chats"},{"label":"Получить обращение в поддержку","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1chats~1{dialogid}/get","routeSlug":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1chats~1{dialogid}/get","metadata":{"seo":{"title":"Получить обращение в поддержку","description":"Требуется доступ SUPPORT:READ."}},"httpPath":"/api/admin/support/chats/{dialogId}"},{"label":"Получить сообщения обращения","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1chats~1{dialogid}~1messages/get","routeSlug":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1chats~1{dialogid}~1messages/get","metadata":{"seo":{"title":"Получить сообщения обращения","description":"Основной способ пагинации — cursor: первый запрос выполняется без before_id,следующий — с next_before_id из ответа. offset сохранён для обратнойсовместимости и не может использоваться вместе с before_id.В админском представлении сообщения поддержки содержат real_sender_id,real_sender_first_name и real_sender_last_name."}},"httpPath":"/api/admin/support/chats/{dialogId}/messages"},{"label":"Отправить сообщение от имени поддержки","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1chats~1{dialogid}~1messages~1send/post","routeSlug":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1chats~1{dialogid}~1messages~1send/post","metadata":{"seo":{"title":"Отправить сообщение от имени поддержки","description":"Требуется доступ SUPPORT:FULL. Публичный отправитель сообщения — системныйаккаунт поддержки (sender_id = -1), реальный администратор сохраняется отдельно.Для ответа на конкретное сообщение передайте его ID в reply_message_id."}},"httpPath":"/api/admin/support/chats/{dialogId}/messages/send"},{"label":"Отправить сообщение поддержки салону","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1salons~1{salonid}~1messages~1send/post","routeSlug":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1salons~1{salonid}~1messages~1send/post","metadata":{"seo":{"title":"Отправить сообщение поддержки салону","description":"Требуется доступ SUPPORT:FULL. Находит владельца по salonId, создаёт принеобходимости единый диалог владельца салона с поддержкой и отправляет сообщениеот имени системного аккаунта поддержки. Реальный администратор сохраняется отдельно."}},"httpPath":"/api/admin/support/salons/{salonId}/messages/send"},{"label":"Запросить подтверждение решения проблемы","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1chats~1{dialogid}~1resolution-request/post","routeSlug":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1chats~1{dialogid}~1resolution-request/post","metadata":{"seo":{"title":"Запросить подтверждение решения проблемы","description":"Требуется SUPPORT:FULL. Фактический статус обращения остаётся OPEN, но вадминистративных списках и WS-статусах обращение отображается как CLOSED,пока ожидается ответ клиента. Пользователю отправляется служебное сообщениес вариантами RESOLVED и NOT_RESOLVED."}},"httpPath":"/api/admin/support/chats/{dialogId}/resolution-request"},{"label":"Повторно открыть закрытое обращение","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1chats~1{dialogid}~1reopen/post","routeSlug":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1chats~1{dialogid}~1reopen/post","metadata":{"seo":{"title":"Повторно открыть закрытое обращение","description":"Создаёт для того же диалога новое обращение со статусом OPEN. Требуется SUPPORT:FULL."}},"httpPath":"/api/admin/support/chats/{dialogId}/reopen"},{"label":"Отметить сообщения обращения прочитанными","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1chats~1{dialogid}~1read/post","routeSlug":"/openapi/admin-panel-chat-podderzhki/paths/~1api~1admin~1support~1chats~1{dialogid}~1read/post","metadata":{"seo":{"title":"Отметить сообщения обращения прочитанными","description":"Помечает сообщения пользователя до указанного ID включительно. Требуется SUPPORT:FULL."}},"httpPath":"/api/admin/support/chats/{dialogId}/read"},{"label":"Отправить сообщение поддержки через WebSocket","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-chat-podderzhki/paths/~1app~1admin~1support.send/post","routeSlug":"/openapi/admin-panel-chat-podderzhki/paths/~1app~1admin~1support.send/post","metadata":{"seo":{"title":"Отправить сообщение поддержки через WebSocket","description":"STOMP destination: /app/admin/support.send. Требуется право SUPPORT:FULL."}},"httpPath":"/app/admin/support.send"},{"label":"Подписка администраторов на сообщения поддержки","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-chat-podderzhki/paths/~1user~1queue~1admin.support.delivered/get","routeSlug":"/openapi/admin-panel-chat-podderzhki/paths/~1user~1queue~1admin.support.delivered/get","metadata":{"seo":{"title":"Подписка администраторов на сообщения поддержки","description":"STOMP-очередь всех подключённых администраторов с правом SUPPORT:READ илиSUPPORT:FULL. Все сообщения support-диалога, включая сообщения клиента,менеджера и автоматические сообщения поддержки, приходят сюда. В messages[]передаётся реальный автор менеджерского сообщения через real_sender_id."}},"httpPath":"/user/queue/admin.support.delivered"},{"label":"Подписка администраторов на новые сообщения поддержки","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-chat-podderzhki/paths/~1user~1queue~1admin.support.new_message/get","routeSlug":"/openapi/admin-panel-chat-podderzhki/paths/~1user~1queue~1admin.support.new_message/get","metadata":{"seo":{"title":"Подписка администраторов на новые сообщения поддержки","description":"Канал больше не используется для новых сообщений поддержки. Все сообщенияпередаются через /user/queue/admin.support.delivered."}},"httpPath":"/user/queue/admin.support.new_message"},{"label":"Подписка администраторов на изменение статуса обращения","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-chat-podderzhki/paths/~1user~1queue~1admin.support.status/get","routeSlug":"/openapi/admin-panel-chat-podderzhki/paths/~1user~1queue~1admin.support.status/get","metadata":{"seo":{"title":"Подписка администраторов на изменение статуса обращения","description":"Персональная STOMP-очередь всех подключённых администраторов с правомSUPPORT:READ или SUPPORT:FULL. Уведомляет о запросе подтверждения решения,закрытии и повторном открытии обращения. При активном запросе подтвержденияменеджер получает status = CLOSED, хотя фактический статус в базе остаётсяOPEN; наличие resolution_requested_at указывает на ожидаемый ответ клиента."}},"httpPath":"/user/queue/admin.support.status"}]},{"type":"group","label":"Админ-панель — уведомления","link":"/openapi/admin-panel-uvedomleniya","routeSlug":"/openapi/admin-panel-uvedomleniya","items":[{"label":"Получить правила уведомлений и разовые рассылки","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-uvedomleniya/paths/~1api~1admin~1notifications/get","routeSlug":"/openapi/admin-panel-uvedomleniya/paths/~1api~1admin~1notifications/get","metadata":{"seo":{"title":"Получить правила уведомлений и разовые рассылки","description":"Возвращает созданные администратором уведомления с offset/limit-пагинацией.CONTINUOUS — постоянное правило, которое сохраняется до ручного удаления.SCHEDULED_ONCE — разовая рассылка, которая удаляется планировщиком после scheduled_at.Поиск выполняется по заголовку и тексту. Требуется доступ NOTIFICATIONS:READ."}},"httpPath":"/api/admin/notifications"},{"label":"Создать постоянное уведомление или разовую рассылку","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-uvedomleniya/paths/~1api~1admin~1notifications/post","routeSlug":"/openapi/admin-panel-uvedomleniya/paths/~1api~1admin~1notifications/post","metadata":{"seo":{"title":"Создать постоянное уведомление или разовую рассылку","description":"Создаёт правило с произвольным количеством упорядоченных условий. Все условия объединяются через AND.Для CONTINUOUS поле scheduled_at не передаётся. Для SCHEDULED_ONCE оно обязательно и должносодержать будущий момент времени с часовым смещением. Каналы: IN_APP, PUSH, EMAIL; SMS не поддерживается.На текущем MVP конфигурация сохраняется, но фактическая отправка не выполняется. Требуется NOTIFICATIONS:FULL."}},"httpPath":"/api/admin/notifications"},{"label":"Получить уведомление","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-uvedomleniya/paths/~1api~1admin~1notifications~1{id}/get","routeSlug":"/openapi/admin-panel-uvedomleniya/paths/~1api~1admin~1notifications~1{id}/get","metadata":{"seo":{"title":"Получить уведомление","description":"Возвращает правило, его каналы и условия в порядке отображения. Требуется NOTIFICATIONS:READ."}},"httpPath":"/api/admin/notifications/{id}"},{"label":"Изменить уведомление","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-uvedomleniya/paths/~1api~1admin~1notifications~1{id}/patch","routeSlug":"/openapi/admin-panel-uvedomleniya/paths/~1api~1admin~1notifications~1{id}/patch","metadata":{"seo":{"title":"Изменить уведомление","description":"Частично изменяет правило. Если передано conditions, это полный новый список:условие с id обновляется, без id создаётся, отсутствующее в списке удаляется; порядок равен порядку массива.Режим CONTINUOUS/SCHEDULED_ONCE менять нельзя. Для изменения времени разовой рассылки передайтеexecution с прежним режимом и новым будущим scheduled_at. Требуется NOTIFICATIONS:FULL."}},"httpPath":"/api/admin/notifications/{id}"},{"label":"Удалить уведомление","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-uvedomleniya/paths/~1api~1admin~1notifications~1{id}/delete","routeSlug":"/openapi/admin-panel-uvedomleniya/paths/~1api~1admin~1notifications~1{id}/delete","metadata":{"seo":{"title":"Удалить уведомление","description":"Удаляет постоянное правило или ещё не выполненную разовую рассылку. Требуется NOTIFICATIONS:FULL."}},"httpPath":"/api/admin/notifications/{id}"}]},{"type":"group","label":"Админ-панель — роли","link":"/openapi/admin-panel-roli","routeSlug":"/openapi/admin-panel-roli","items":[{"label":"Получить список сотрудников админ-панели","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees/get","routeSlug":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees/get","metadata":{"seo":{"title":"Получить список сотрудников админ-панели","description":"Возвращает всех действующих сотрудников без пагинации."}},"httpPath":"/api/admin/employees"},{"label":"Добавить сотрудника админ-панели","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees/post","routeSlug":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees/post","metadata":{"seo":{"title":"Добавить сотрудника админ-панели","description":"Создаёт нового сотрудника или восстанавливает ранее удалённого по номеру телефона."}},"httpPath":"/api/admin/employees"},{"label":"Получить собственные права администратора","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees~1me~1permissions/get","routeSlug":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees~1me~1permissions/get","metadata":{"seo":{"title":"Получить собственные права администратора","description":"Возвращает права текущего администратора для всех разделов админ-панели.NONE означает, что раздел следует скрыть; READ разрешает просмотр;FULL разрешает просмотр и изменение данных."}},"httpPath":"/api/admin/employees/me/permissions"},{"label":"Получить данные сотрудника админ-панели","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees~1{userid}/get","routeSlug":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees~1{userid}/get","metadata":{"seo":{"title":"Получить данные сотрудника админ-панели","description":"Получить данные сотрудника админ-панели"}},"httpPath":"/api/admin/employees/{userId}"},{"label":"Изменить данные сотрудника админ-панели","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees~1{userid}/patch","routeSlug":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees~1{userid}/patch","metadata":{"seo":{"title":"Изменить данные сотрудника админ-панели","description":"Изменить данные сотрудника админ-панели"}},"httpPath":"/api/admin/employees/{userId}"},{"label":"Удалить сотрудника админ-панели","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees~1{userid}/delete","routeSlug":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees~1{userid}/delete","metadata":{"seo":{"title":"Удалить сотрудника админ-панели","description":"Удаляет роль ADMIN и права сотрудника, сохраняя его запись для аудита."}},"httpPath":"/api/admin/employees/{userId}"},{"label":"Получить права сотрудника","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees~1{userid}~1permissions/get","routeSlug":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees~1{userid}~1permissions/get","metadata":{"seo":{"title":"Получить права сотрудника","description":"Возвращает все разделы панели; отсутствие права представлено уровнем NONE."}},"httpPath":"/api/admin/employees/{userId}/permissions"},{"label":"Изменить право сотрудника для одного раздела","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees~1{userid}~1permissions/put","routeSlug":"/openapi/admin-panel-roli/paths/~1api~1admin~1employees~1{userid}~1permissions/put","metadata":{"seo":{"title":"Изменить право сотрудника для одного раздела","description":"Изменяет только переданный раздел. Остальные права сотрудника остаются без изменений."}},"httpPath":"/api/admin/employees/{userId}/permissions"}]},{"type":"group","label":"Реферальная программа","link":"/openapi/referalnaya-programma","routeSlug":"/openapi/referalnaya-programma","items":[{"label":"Получить реферальную ссылку текущего клиента","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/referalnaya-programma/paths/~1api~1referral/get","routeSlug":"/openapi/referalnaya-programma/paths/~1api~1referral/get","metadata":{"seo":{"title":"Получить реферальную ссылку текущего клиента","description":"Возвращает код и готовую ссылку, которой клиент может поделиться."}},"httpPath":"/api/referral"},{"label":"Получить рефералов текущего клиента","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/referalnaya-programma/paths/~1api~1referral~1referrals/get","routeSlug":"/openapi/referalnaya-programma/paths/~1api~1referral~1referrals/get","metadata":{"seo":{"title":"Получить рефералов текущего клиента","description":"Возвращает приглашённых друзей, текущий этап каждого приглашения и награду."}},"httpPath":"/api/referral/referrals"},{"label":"Получить клиентские условия реферальной программы","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/referalnaya-programma/paths/~1api~1referral~1program~1client/get","routeSlug":"/openapi/referalnaya-programma/paths/~1api~1referral~1program~1client/get","metadata":{"seo":{"title":"Получить клиентские условия реферальной программы","description":"Возвращает уровни клиентской программы, текущий прогресс и постоянную скидку.В прогресс входят только друзья со статусом COMPLETED."}},"httpPath":"/api/referral/program/client"},{"label":"Получить бизнес-условия реферальной программы","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/referalnaya-programma/paths/~1api~1referral~1program~1business/get","routeSlug":"/openapi/referalnaya-programma/paths/~1api~1referral~1program~1business/get","metadata":{"seo":{"title":"Получить бизнес-условия реферальной программы","description":"Возвращает условия приглашения мастеров и салонов и количество завершённых приглашений.После первого завершённого визита клиент получает постоянную скидку у этого бизнеса."}},"httpPath":"/api/referral/program/business"},{"label":"Получить приглашённых мастеров и салоны","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/referalnaya-programma/paths/~1api~1referral~1business-referrals/get","routeSlug":"/openapi/referalnaya-programma/paths/~1api~1referral~1business-referrals/get","metadata":{"seo":{"title":"Получить приглашённых мастеров и салоны","description":"Возвращает приглашённых мастеров и салоны, текущий этап приглашения и награду."}},"httpPath":"/api/referral/business-referrals"},{"label":"Получить конкретного приглашённого друга и его награду","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/referalnaya-programma/paths/~1api~1referral~1referrals~1{referralid}/get","routeSlug":"/openapi/referalnaya-programma/paths/~1api~1referral~1referrals~1{referralid}/get","metadata":{"seo":{"title":"Получить конкретного приглашённого друга и его награду","description":"Возвращает те же данные, что элемент списка друзей, по referral_id."}},"httpPath":"/api/referral/referrals/{referralId}"},{"label":"Получить конкретного приглашённого мастера или салон и награду","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/referalnaya-programma/paths/~1api~1referral~1business-referrals~1{referralid}/get","routeSlug":"/openapi/referalnaya-programma/paths/~1api~1referral~1business-referrals~1{referralid}/get","metadata":{"seo":{"title":"Получить конкретного приглашённого мастера или салон и награду","description":"Возвращает те же данные, что элемент списка бизнесов, по referral_id."}},"httpPath":"/api/referral/business-referrals/{referralId}"},{"label":"Получить историю начисленных реферальных наград","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/referalnaya-programma/paths/~1api~1referral~1reward-history/get","routeSlug":"/openapi/referalnaya-programma/paths/~1api~1referral~1reward-history/get","metadata":{"seo":{"title":"Получить историю начисленных реферальных наград","description":"Возвращает только фактически начисленные награды, новые первыми."}},"httpPath":"/api/referral/reward-history"},{"label":"Получить список и историю индивидуальных купонов","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/referalnaya-programma/paths/~1api~1coupons/get","routeSlug":"/openapi/referalnaya-programma/paths/~1api~1coupons/get","metadata":{"seo":{"title":"Получить список и историю индивидуальных купонов","description":"Возвращает активные и использованные купоны клиента. При первой регистрациипо валидной реферальной ссылке клиенту автоматически выдаётся купон 10%."}},"httpPath":"/api/coupons"}]},{"type":"group","label":"Аутентификация","link":"/openapi/autentifikaciya","routeSlug":"/openapi/autentifikaciya","items":[{"type":"link","label":"Captcha","link":"/openapi/autentifikaciya/captcha","routeSlug":"/openapi/autentifikaciya/captcha"},{"type":"link","label":"Интеграция SmartCaptcha","link":"/openapi/autentifikaciya/integraciya-smartcaptcha","routeSlug":"/openapi/autentifikaciya/integraciya-smartcaptcha"},{"type":"link","label":"WebSocket","link":"/openapi/autentifikaciya/websocket","routeSlug":"/openapi/autentifikaciya/websocket"},{"label":"Отправить OTP на телефон","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/autentifikaciya/paths/~1api~1auth~1phone~1send~1otp/post","routeSlug":"/openapi/autentifikaciya/paths/~1api~1auth~1phone~1send~1otp/post","metadata":{"seo":{"title":"Отправить OTP на телефон","description":"Отправляет одноразовый код подтверждения на указанный номер телефона."}},"httpPath":"/api/auth/phone/send/otp"},{"label":"Войти по номеру телефона и OTP","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/autentifikaciya/paths/~1api~1auth~1phone~1login/post","routeSlug":"/openapi/autentifikaciya/paths/~1api~1auth~1phone~1login/post","metadata":{"seo":{"title":"Войти по номеру телефона и OTP","description":"Авторизует пользователя по номеру телефона и OTP-коду."}},"httpPath":"/api/auth/phone/login"},{"label":"Проверить наличие привязанной почты по телефону","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/autentifikaciya/paths/~1api~1auth~1phone~1email-status/post","routeSlug":"/openapi/autentifikaciya/paths/~1api~1auth~1phone~1email-status/post","metadata":{"seo":{"title":"Проверить наличие привязанной почты по телефону","description":"Проверяет, есть ли привязанная почта у аккаунта, найденного по phone, type_accountи опциональному role_in_salon."}},"httpPath":"/api/auth/phone/email-status"},{"label":"Войти по email и OTP","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/autentifikaciya/paths/~1api~1auth~1email~1login/post","routeSlug":"/openapi/autentifikaciya/paths/~1api~1auth~1email~1login/post","metadata":{"seo":{"title":"Войти по email и OTP","description":"Авторизует уже существующего пользователя по email и OTP-коду."}},"httpPath":"/api/auth/email/login"},{"label":"Изменить телефон текущего пользователя","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/autentifikaciya/paths/~1api~1auth~1phone~1edit/post","routeSlug":"/openapi/autentifikaciya/paths/~1api~1auth~1phone~1edit/post","metadata":{"seo":{"title":"Изменить телефон текущего пользователя","description":"Подтверждает новый номер телефона по OTP-коду и изменяет его у текущего пользователя."}},"httpPath":"/api/auth/phone/edit"},{"label":"Отправить OTP на email","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/autentifikaciya/paths/~1api~1auth~1email~1send~1otp/post","routeSlug":"/openapi/autentifikaciya/paths/~1api~1auth~1email~1send~1otp/post","metadata":{"seo":{"title":"Отправить OTP на email","description":"Отправляет OTP-код на указанный email."}},"httpPath":"/api/auth/email/send/otp"},{"label":"Привязать email к текущему пользователю","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/autentifikaciya/paths/~1api~1auth~1email~1add/put","routeSlug":"/openapi/autentifikaciya/paths/~1api~1auth~1email~1add/put","metadata":{"seo":{"title":"Привязать email к текущему пользователю","description":"Подтверждает email по OTP-коду и привязывает его к текущему пользователю."}},"httpPath":"/api/auth/email/add"},{"label":"Обновить access token по refresh token","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/autentifikaciya/paths/~1api~1auth~1refresh-token/post","routeSlug":"/openapi/autentifikaciya/paths/~1api~1auth~1refresh-token/post","metadata":{"seo":{"title":"Обновить access token по refresh token","description":"Обновляет пару токенов JWT и RT по refresh token."}},"httpPath":"/api/auth/refresh-token"},{"label":"Завершить текущую сессию","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/autentifikaciya/paths/~1api~1auth~1logout/post","routeSlug":"/openapi/autentifikaciya/paths/~1api~1auth~1logout/post","metadata":{"seo":{"title":"Завершить текущую сессию","description":"Завершает текущую сессию пользователя по refresh token."}},"httpPath":"/api/auth/logout"}]},{"type":"group","label":"Файлы","link":"/openapi/fajly","routeSlug":"/openapi/fajly","items":[{"label":"Загрузить файл","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/fajly/paths/~1api~1file~1upload/post","routeSlug":"/openapi/fajly/paths/~1api~1file~1upload/post","metadata":{"seo":{"title":"Загрузить файл","description":"Загружает файл в хранилище."}},"httpPath":"/api/file/upload"},{"label":"Скачать файл","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/fajly/paths/~1api~1file~1download~1{id}/get","routeSlug":"/openapi/fajly/paths/~1api~1file~1download~1{id}/get","metadata":{"seo":{"title":"Скачать файл","description":"По умолчанию возвращает redirect на файл. Если передать redirect=false,возвращает JSON с временной attachment-ссылкой в data.url. Этот режимполезен браузерным клиентам, которым нельзя читать cross-origin redirect через fetch."}},"httpPath":"/api/file/download/{id}"},{"label":"Получить статус файла и временную ссылку по id","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/fajly/paths/~1api~1file~1{id}/get","routeSlug":"/openapi/fajly/paths/~1api~1file~1{id}/get","metadata":{"seo":{"title":"Получить статус файла и временную ссылку по id","description":"Возвращает текущее состояние файла и, если файл уже загружен в object storage,временную presigned URL."}},"httpPath":"/api/file/{id}"}]},{"type":"group","label":"Профиль","link":"/openapi/profil","routeSlug":"/openapi/profil","items":[{"label":"Получить статус блокировки текущего аккаунта","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/profil/paths/~1api~1account~1block-status/get","routeSlug":"/openapi/profil/paths/~1api~1account~1block-status/get","metadata":{"seo":{"title":"Получить статус блокировки текущего аккаунта","description":"Возвращает статус блокировки текущего авторизованного аккаунта."}},"httpPath":"/api/account/block-status"},{"label":"Получить профиль текущего пользователя","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/profil/paths/~1api~1user/get","routeSlug":"/openapi/profil/paths/~1api~1user/get","metadata":{"seo":{"title":"Получить профиль текущего пользователя","description":"Возвращает профиль текущего авторизованного пользователя."}},"httpPath":"/api/user"},{"label":"Обновить профиль текущего пользователя","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/profil/paths/~1api~1user/patch","routeSlug":"/openapi/profil/paths/~1api~1user/patch","metadata":{"seo":{"title":"Обновить профиль текущего пользователя","description":"Обновляет профиль текущего авторизованного пользователя."}},"httpPath":"/api/user"},{"label":"Удалить аккаунт текущего пользователя","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/profil/paths/~1api~1user/delete","routeSlug":"/openapi/profil/paths/~1api~1user/delete","metadata":{"seo":{"title":"Удалить аккаунт текущего пользователя","description":"Удаляет аккаунт текущего авторизованного пользователя."}},"httpPath":"/api/user"},{"label":"Получить адреса клиента","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/profil/paths/~1api~1user~1addresses/get","routeSlug":"/openapi/profil/paths/~1api~1user~1addresses/get","metadata":{"seo":{"title":"Получить адреса клиента","description":"Возвращает все сохранённые адреса текущего клиента."}},"httpPath":"/api/user/addresses"},{"label":"Добавить адрес клиента","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/profil/paths/~1api~1user~1addresses/post","routeSlug":"/openapi/profil/paths/~1api~1user~1addresses/post","metadata":{"seo":{"title":"Добавить адрес клиента","description":"Создаёт адрес, сразу делает его активным и обновляет city, address, geolocation текущего клиента. Предыдущий активный адрес становится неактивным. Повторно добавить тот же адрес нельзя.Сначала получите fias_id и type города через GET /api/search/places, затем получите адрес и координаты через GET /api/search/addresses. В этот запрос передайте выбранные city, address и geolocation."}},"httpPath":"/api/user/addresses"},{"label":"Удалить адрес клиента","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/profil/paths/~1api~1user~1addresses~1{addressid}/delete","routeSlug":"/openapi/profil/paths/~1api~1user~1addresses~1{addressid}/delete","metadata":{"seo":{"title":"Удалить адрес клиента","description":"Удаляет адрес текущего клиента. Активный адрес удалить нельзя."}},"httpPath":"/api/user/addresses/{addressId}"},{"label":"Установить активный адрес","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/profil/paths/~1api~1user~1addresses~1{addressid}~1active/patch","routeSlug":"/openapi/profil/paths/~1api~1user~1addresses~1{addressid}~1active/patch","metadata":{"seo":{"title":"Установить активный адрес","description":"Делает выбранный адрес активным и обновляет город, адрес и геолокацию клиента. Предыдущий активный адрес становится неактивным."}},"httpPath":"/api/user/addresses/{addressId}/active"},{"label":"Получить профиль текущего мастера","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/profil/paths/~1api~1master/get","routeSlug":"/openapi/profil/paths/~1api~1master/get","metadata":{"seo":{"title":"Получить профиль текущего мастера","description":"Возвращает профиль текущего авторизованного мастера."}},"httpPath":"/api/master"},{"label":"Обновить профиль текущего мастера","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/profil/paths/~1api~1master/patch","routeSlug":"/openapi/profil/paths/~1api~1master/patch","metadata":{"seo":{"title":"Обновить профиль текущего мастера","description":"Частично обновляет профиль текущего мастера."}},"httpPath":"/api/master"},{"label":"Удалить аккаунт текущего мастера","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/profil/paths/~1api~1master/delete","routeSlug":"/openapi/profil/paths/~1api~1master/delete","metadata":{"seo":{"title":"Удалить аккаунт текущего мастера","description":"Обезличивает аккаунт текущего индивидуального мастера. Мастер салонане может удалить себя через этот endpoint."}},"httpPath":"/api/master"},{"label":"Получить подсказки преимуществ мастера","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/profil/paths/~1api~1master~1advantages~1suggestions/get","routeSlug":"/openapi/profil/paths/~1api~1master~1advantages~1suggestions/get","metadata":{"seo":{"title":"Получить подсказки преимуществ мастера","description":"Возвращает список строк с подсказками преимуществ для заполнения профиля мастера."}},"httpPath":"/api/master/advantages/suggestions"},{"label":"Получить публичный профиль мастера по id","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/profil/paths/~1api~1master~1{id}/get","routeSlug":"/openapi/profil/paths/~1api~1master~1{id}/get","metadata":{"seo":{"title":"Получить публичный профиль мастера по id","description":"Возвращает публичный профиль мастера по переданному идентификатору."}},"httpPath":"/api/master/{id}"}]},{"type":"group","label":"Салон","link":"/openapi/salon","routeSlug":"/openapi/salon","items":[{"label":"Получить салон","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1{id_salon}/get","routeSlug":"/openapi/salon/paths/~1api~1salon~1{id_salon}/get","metadata":{"seo":{"title":"Получить салон","description":"Возвращает публичные данные салона по ID."}},"httpPath":"/api/salon/{id_salon}"},{"label":"Получить профиль текущего салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon/get","routeSlug":"/openapi/salon/paths/~1api~1salon/get","metadata":{"seo":{"title":"Получить профиль текущего салона","description":"Возвращает профиль салона, привязанного к текущему авторизованному пользователю."}},"httpPath":"/api/salon"},{"label":"Удалить аккаунт салона и всех работников","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon/delete","routeSlug":"/openapi/salon/paths/~1api~1salon/delete","metadata":{"seo":{"title":"Удалить аккаунт салона и всех работников","description":"Доступно только владельцу текущего активного салона. Операция атомарнообезличивает владельца, всех администраторов и мастеров, удаляет услуги,расписание, публичные данные и обычные вложения переписки. Завершённые иотменённые записи, отзывы, жалобы и текст деловой переписки сохраняютсяобезличенно. При наличии хотя бы одной записи BOOKED удаление блокируется."}},"httpPath":"/api/salon"},{"label":"Заполнить или изменить салон","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon/patch","routeSlug":"/openapi/salon/paths/~1api~1salon/patch","metadata":{"seo":{"title":"Заполнить или изменить салон","description":"Частично заполняет или изменяет салон текущего пользователя."}},"httpPath":"/api/salon"},{"label":"Получить всех сотрудников салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1members/get","routeSlug":"/openapi/salon/paths/~1api~1salon~1members/get","metadata":{"seo":{"title":"Получить всех сотрудников салона","description":"Возвращает всех сотрудников салона текущего пользователя: мастеров и администраторов."}},"httpPath":"/api/salon/members"},{"label":"Временно деактивировать сотрудника салона","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1members~1{targetuserid}~1deactivate/post","routeSlug":"/openapi/salon/paths/~1api~1salon~1members~1{targetuserid}~1deactivate/post","metadata":{"seo":{"title":"Временно деактивировать сотрудника салона","description":"Переводит мастера или администратора в статус TEMPORARILY_UNAVAILABLEна указанный период. Владелец может деактивировать мастера и администратора,администратор — только мастера. На период деактивации свободные слоты сотрудникане выдаются и бронирование невозможно."}},"httpPath":"/api/salon/members/{targetUserId}/deactivate"},{"label":"Получить всех мастеров салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1masters/get","routeSlug":"/openapi/salon/paths/~1api~1salon~1masters/get","metadata":{"seo":{"title":"Получить всех мастеров салона","description":"Возвращает всех мастеров салона текущего пользователя."}},"httpPath":"/api/salon/masters"},{"label":"Создать мастера салона","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1master/post","routeSlug":"/openapi/salon/paths/~1api~1salon~1master/post","metadata":{"seo":{"title":"Создать мастера салона","description":"Создает профиль мастера внутри салона."}},"httpPath":"/api/salon/master"},{"label":"Получить мастера салона по user_id","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1master~1{salon_master_id}/get","routeSlug":"/openapi/salon/paths/~1api~1salon~1master~1{salon_master_id}/get","metadata":{"seo":{"title":"Получить мастера салона по user_id","description":"Возвращает публичную карточку конкретного мастера салона.Телефон и email мастера в ответ не включаются."}},"httpPath":"/api/salon/master/{salon_master_id}"},{"label":"Изменить мастера салона","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1master~1{salon_master_id}/patch","routeSlug":"/openapi/salon/paths/~1api~1salon~1master~1{salon_master_id}/patch","metadata":{"seo":{"title":"Изменить мастера салона","description":"Частично изменяет профиль мастера внутри салона."}},"httpPath":"/api/salon/master/{salon_master_id}"},{"label":"Удалить аккаунт мастера салона","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1master~1{salon_master_id}/delete","routeSlug":"/openapi/salon/paths/~1api~1salon~1master~1{salon_master_id}/delete","metadata":{"seo":{"title":"Удалить аккаунт мастера салона","description":"Обезличивает аккаунт мастера салона. Доступ разрешён владельцу салонаи администратору того же салона с permission STAFF_DELETE.Удаление блокируется только при наличии записи в статусе BOOKED."}},"httpPath":"/api/salon/master/{salon_master_id}"},{"label":"Создать администратора салона","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1admin/post","routeSlug":"/openapi/salon/paths/~1api~1salon~1admin/post","metadata":{"seo":{"title":"Создать администратора салона","description":"Создает администратора внутри салона."}},"httpPath":"/api/salon/admin"},{"label":"Получить администратора салона по user_id","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1admin~1{salon_admin_id}/get","routeSlug":"/openapi/salon/paths/~1api~1salon~1admin~1{salon_admin_id}/get","metadata":{"seo":{"title":"Получить администратора салона по user_id","description":"Возвращает конкретного администратора салона."}},"httpPath":"/api/salon/admin/{salon_admin_id}"},{"label":"Изменить администратора салона","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1admin~1{salon_admin_id}/patch","routeSlug":"/openapi/salon/paths/~1api~1salon~1admin~1{salon_admin_id}/patch","metadata":{"seo":{"title":"Изменить администратора салона","description":"Частично изменяет данные администратора салона."}},"httpPath":"/api/salon/admin/{salon_admin_id}"},{"label":"Удалить администратора салона","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1admin~1{salon_admin_id}/delete","routeSlug":"/openapi/salon/paths/~1api~1salon~1admin~1{salon_admin_id}/delete","metadata":{"seo":{"title":"Удалить администратора салона","description":"Удаляет администратора из салона, отзывает его доступ и обезличивает учетную запись.Переписка, отправленная от имени салона, сохраняется без идентификатора сотрудника."}},"httpPath":"/api/salon/admin/{salon_admin_id}"},{"label":"Получить свои права администратора салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1my~1permissions/get","routeSlug":"/openapi/salon/paths/~1api~1salon~1my~1permissions/get","metadata":{"seo":{"title":"Получить свои права администратора салона","description":"Возвращает права текущего администратора салона."}},"httpPath":"/api/salon/my/permissions"},{"label":"Получить права администратора салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1member~1{user_id}~1permissions/get","routeSlug":"/openapi/salon/paths/~1api~1salon~1member~1{user_id}~1permissions/get","metadata":{"seo":{"title":"Получить права администратора салона","description":"Возвращает список permission администратора салона."}},"httpPath":"/api/salon/member/{user_id}/permissions"},{"label":"Изменить права администратора салона","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1member~1{user_id}~1permissions/patch","routeSlug":"/openapi/salon/paths/~1api~1salon~1member~1{user_id}~1permissions/patch","metadata":{"seo":{"title":"Изменить права администратора салона","description":"Полностью заменяет набор permission у выбранного администратора салона."}},"httpPath":"/api/salon/member/{user_id}/permissions"},{"label":"Получить ссылку приглашения в салон","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1invite/get","routeSlug":"/openapi/salon/paths/~1api~1salon~1invite/get","metadata":{"seo":{"title":"Получить ссылку приглашения в салон","description":"Возвращает invite-ссылку для регистрации мастера или администратора салона."}},"httpPath":"/api/salon/invite"},{"label":"Получить причины удаления мастера салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1master~1reasons~1deletion/get","routeSlug":"/openapi/salon/paths/~1api~1salon~1master~1reasons~1deletion/get","metadata":{"seo":{"title":"Получить причины удаления мастера салона","description":"Доступно владельцу или администратору с разрешением STAFF_DELETE. Пункт Другое добавляет frontend."}},"httpPath":"/api/salon/master/reasons/deletion"},{"label":"Получить причины удаления администратора салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1admin~1reasons~1deletion/get","routeSlug":"/openapi/salon/paths/~1api~1salon~1admin~1reasons~1deletion/get","metadata":{"seo":{"title":"Получить причины удаления администратора салона","description":"Доступно только владельцу салона. Пункт Другое добавляет frontend."}},"httpPath":"/api/salon/admin/reasons/deletion"},{"label":"Поставить мастера салона на отложенное удаление","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1master~1{salonmasterid}~1deletion/post","routeSlug":"/openapi/salon/paths/~1api~1salon~1master~1{salonmasterid}~1deletion/post","metadata":{"seo":{"title":"Поставить мастера салона на отложенное удаление","description":"Устанавливает PENDING_DELETE на семь дней. Доступно владельцу или администратору с STAFF_DELETE того же салона."}},"httpPath":"/api/salon/master/{salonMasterId}/deletion"},{"label":"Поставить администратора салона на отложенное удаление","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1admin~1{salonadminid}~1deletion/post","routeSlug":"/openapi/salon/paths/~1api~1salon~1admin~1{salonadminid}~1deletion/post","metadata":{"seo":{"title":"Поставить администратора салона на отложенное удаление","description":"Устанавливает PENDING_DELETE на семь дней. Доступно только владельцу того же салона."}},"httpPath":"/api/salon/admin/{salonAdminId}/deletion"},{"label":"Получить причины удаления сотрудника салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1member~1reasons~1deletion/get","routeSlug":"/openapi/salon/paths/~1api~1salon~1member~1reasons~1deletion/get","metadata":{"seo":{"title":"Получить причины удаления сотрудника салона","description":"Возвращает общий список причин удаления мастера или администратора салона.Пункт Другое не возвращается и добавляется клиентом отдельно."}},"httpPath":"/api/salon/member/reasons/deletion"},{"label":"Получить причины временного закрытия записи сотрудника салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/salon/paths/~1api~1salon~1member~1reasons~1booking-closure/get","routeSlug":"/openapi/salon/paths/~1api~1salon~1member~1reasons~1booking-closure/get","metadata":{"seo":{"title":"Получить причины временного закрытия записи сотрудника салона","description":"Возвращает общий список причин временного закрытия записи мастераили изменения рабочего статуса администратора салона.Пункт Другое не возвращается и добавляется клиентом отдельно."}},"httpPath":"/api/salon/member/reasons/booking-closure"}]},{"type":"group","label":"Календарь — рабочее время","link":"/openapi/kalendar-rabochee-vremya","routeSlug":"/openapi/kalendar-rabochee-vremya","items":[{"label":"Получить рабочее время мастера","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-rabochee-vremya/paths/~1api~1calendar~1master~1{id}~1work-time/get","routeSlug":"/openapi/kalendar-rabochee-vremya/paths/~1api~1calendar~1master~1{id}~1work-time/get","metadata":{"seo":{"title":"Получить рабочее время мастера","description":"Возвращает рабочее время мастера на указанную дату."}},"httpPath":"/api/calendar/master/{id}/work-time"},{"label":"Установить календарь текущего пользователя на указанную дату","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-rabochee-vremya/paths/~1api~1calendar/post","routeSlug":"/openapi/kalendar-rabochee-vremya/paths/~1api~1calendar/post","metadata":{"seo":{"title":"Установить календарь текущего пользователя на указанную дату","description":"Устанавливает временной интервал текущего авторизованного пользователя на указанную дату."}},"httpPath":"/api/calendar"},{"label":"Получить календарь текущего пользователя на указанную дату","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-rabochee-vremya/paths/~1api~1calendar~1{date}/get","routeSlug":"/openapi/kalendar-rabochee-vremya/paths/~1api~1calendar~1{date}/get","metadata":{"seo":{"title":"Получить календарь текущего пользователя на указанную дату","description":"Возвращает календарь текущего авторизованного пользователя для конкретной даты."}},"httpPath":"/api/calendar/{date}"},{"label":"Установить рабочее время мастера салона на дату","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-rabochee-vremya/paths/~1api~1calendar~1salon~1master~1{master_user_id}/post","routeSlug":"/openapi/kalendar-rabochee-vremya/paths/~1api~1calendar~1salon~1master~1{master_user_id}/post","metadata":{"seo":{"title":"Установить рабочее время мастера салона на дату","description":"Устанавливает рабочий интервал мастера салона на конкретную дату."}},"httpPath":"/api/calendar/salon/master/{master_user_id}"},{"label":"Получить рабочее время мастера салона на дату","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-rabochee-vremya/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1{date}/get","routeSlug":"/openapi/kalendar-rabochee-vremya/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1{date}/get","metadata":{"seo":{"title":"Получить рабочее время мастера салона на дату","description":"Возвращает рабочий интервал мастера салона на конкретную дату."}},"httpPath":"/api/calendar/salon/master/{master_user_id}/{date}"}]},{"type":"group","label":"Календарь — шаблон графика","link":"/openapi/kalendar-shablon-grafika","routeSlug":"/openapi/kalendar-shablon-grafika","items":[{"label":"Установить шаблон графика текущего мастера","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-shablon-grafika/paths/~1api~1calendar~1work-schedule/post","routeSlug":"/openapi/kalendar-shablon-grafika/paths/~1api~1calendar~1work-schedule/post","metadata":{"seo":{"title":"Установить шаблон графика текущего мастера","description":"Устанавливает одинаковое рабочее время и перерывы на включительный диапазонstart_day..end_day выбранного месяца."}},"httpPath":"/api/calendar/work-schedule"},{"label":"Получить шаблон рабочего графика","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-shablon-grafika/paths/~1api~1calendar~1work-schedule/get","routeSlug":"/openapi/kalendar-shablon-grafika/paths/~1api~1calendar~1work-schedule/get","metadata":{"seo":{"title":"Получить шаблон рабочего графика","description":"Возвращает рабочий график по id или список графиков по user_id и year."}},"httpPath":"/api/calendar/work-schedule"},{"label":"Удалить шаблон графика текущего мастера","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-shablon-grafika/paths/~1api~1calendar~1work-schedule~1{template_id}/delete","routeSlug":"/openapi/kalendar-shablon-grafika/paths/~1api~1calendar~1work-schedule~1{template_id}/delete","metadata":{"seo":{"title":"Удалить шаблон графика текущего мастера","description":"Удаляет только сохранённую информацию о шаблоне из PostgreSQL.Уже применённое расписание, рабочие интервалы и перерывы не изменяются.Доступно только индивидуальному мастеру; шаблон должен принадлежать текущему пользователю."}},"httpPath":"/api/calendar/work-schedule/{template_id}"},{"label":"Установить шаблон графика мастера салона","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-shablon-grafika/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1work-schedule/post","routeSlug":"/openapi/kalendar-shablon-grafika/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1work-schedule/post","metadata":{"seo":{"title":"Установить шаблон графика мастера салона","description":"Создаёт шаблон графика мастера салона на выбранный диапазон дней месяца.Поле days_off работает так же, как для шаблона текущего мастера: указанныедни становятся выходными, их интервалы удаляются, а наличие записи клиентаприводит к ответу 409 без частичного применения шаблона.Повторный шаблон для того же мастера, года и месяца также возвращает 409."}},"httpPath":"/api/calendar/salon/master/{master_user_id}/work-schedule"},{"label":"Получить шаблон графика мастера салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-shablon-grafika/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1work-schedule/get","routeSlug":"/openapi/kalendar-shablon-grafika/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1work-schedule/get","metadata":{"seo":{"title":"Получить шаблон графика мастера салона","description":"Возвращает постоянный график мастера салона по id или список графиков за year."}},"httpPath":"/api/calendar/salon/master/{master_user_id}/work-schedule"},{"label":"Удалить шаблон графика мастера салона","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-shablon-grafika/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1work-schedule~1{template_id}/delete","routeSlug":"/openapi/kalendar-shablon-grafika/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1work-schedule~1{template_id}/delete","metadata":{"seo":{"title":"Удалить шаблон графика мастера салона","description":"Удаляет только сохранённую информацию о шаблоне из PostgreSQL.Уже применённое расписание, рабочие интервалы и перерывы не изменяются.Доступно владельцу салона и администратору этого салона с разрешениемSTAFF_SCHEDULE_MANAGE. Шаблон должен принадлежать указанному мастеру."}},"httpPath":"/api/calendar/salon/master/{master_user_id}/work-schedule/{template_id}"}]},{"type":"group","label":"Календарь — перерывы","link":"/openapi/kalendar-pereryvy","routeSlug":"/openapi/kalendar-pereryvy","items":[{"label":"Установить перерывы мастера салона на дату","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-pereryvy/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1break/post","routeSlug":"/openapi/kalendar-pereryvy/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1break/post","metadata":{"seo":{"title":"Установить перерывы мастера салона на дату","description":"Заменяет список перерывов мастера салона на указанную дату."}},"httpPath":"/api/calendar/salon/master/{master_user_id}/break"},{"label":"Получить перерывы мастера салона на дату","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-pereryvy/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1break~1{date}/get","routeSlug":"/openapi/kalendar-pereryvy/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1break~1{date}/get","metadata":{"seo":{"title":"Получить перерывы мастера салона на дату","description":"Возвращает перерывы мастера салона на конкретную дату."}},"httpPath":"/api/calendar/salon/master/{master_user_id}/break/{date}"},{"label":"Установить перерывы текущего пользователя на указанную дату","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-pereryvy/paths/~1api~1calendar~1break/post","routeSlug":"/openapi/kalendar-pereryvy/paths/~1api~1calendar~1break/post","metadata":{"seo":{"title":"Установить перерывы текущего пользователя на указанную дату","description":"Сохраняет список пользовательских перерывов на указанную дату."}},"httpPath":"/api/calendar/break"},{"label":"Получить перерывы текущего пользователя на указанную дату","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-pereryvy/paths/~1api~1calendar~1break~1{date}/get","routeSlug":"/openapi/kalendar-pereryvy/paths/~1api~1calendar~1break~1{date}/get","metadata":{"seo":{"title":"Получить перерывы текущего пользователя на указанную дату","description":"Возвращает список перерывов текущего пользователя на указанную дату."}},"httpPath":"/api/calendar/break/{date}"}]},{"type":"group","label":"Календарь — параметры записи","link":"/openapi/kalendar-parametry-zapisi","routeSlug":"/openapi/kalendar-parametry-zapisi","items":[{"label":"Получить перерыв между записями мастера салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1break-after-record/get","routeSlug":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1break-after-record/get","metadata":{"seo":{"title":"Получить перерыв между записями мастера салона","description":"Возвращает длительность перерыва после записи для мастера салона."}},"httpPath":"/api/calendar/salon/master/{master_user_id}/break-after-record"},{"label":"Установить перерыв между записями мастера салона","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1break-after-record/post","routeSlug":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1break-after-record/post","metadata":{"seo":{"title":"Установить перерыв между записями мастера салона","description":"Устанавливает длительность перерыва после записи для мастера салона."}},"httpPath":"/api/calendar/salon/master/{master_user_id}/break-after-record"},{"label":"Получить минимальное время до записи мастера салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1min-booking-lead-time/get","routeSlug":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1min-booking-lead-time/get","metadata":{"seo":{"title":"Получить минимальное время до записи мастера салона","description":"Возвращает минимальное время до записи для мастера салона."}},"httpPath":"/api/calendar/salon/master/{master_user_id}/min-booking-lead-time"},{"label":"Установить минимальное время до записи мастера салона","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1min-booking-lead-time/post","routeSlug":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1min-booking-lead-time/post","metadata":{"seo":{"title":"Установить минимальное время до записи мастера салона","description":"Устанавливает минимальное время до записи для мастера салона."}},"httpPath":"/api/calendar/salon/master/{master_user_id}/min-booking-lead-time"},{"label":"Получить минимальное время до записи текущего мастера","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1min-booking-lead-time/get","routeSlug":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1min-booking-lead-time/get","metadata":{"seo":{"title":"Получить минимальное время до записи текущего мастера","description":"Возвращает значение min_booking_lead_time_minutes текущего авторизованного мастера."}},"httpPath":"/api/calendar/min-booking-lead-time"},{"label":"Установить минимальное время до записи текущего мастера","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1min-booking-lead-time/post","routeSlug":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1min-booking-lead-time/post","metadata":{"seo":{"title":"Установить минимальное время до записи текущего мастера","description":"Устанавливает значение min_booking_lead_time_minutes для текущего авторизованного мастера."}},"httpPath":"/api/calendar/min-booking-lead-time"},{"label":"Получить перерыв после услуги текущего мастера","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1break-after-reccord/get","routeSlug":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1break-after-reccord/get","metadata":{"seo":{"title":"Получить перерыв после услуги текущего мастера","description":"Возвращает значение break_after_service_min текущего авторизованного мастера."}},"httpPath":"/api/calendar/break-after-reccord"},{"label":"Установить перерыв после услуги текущего мастера","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1break-after-reccord/post","routeSlug":"/openapi/kalendar-parametry-zapisi/paths/~1api~1calendar~1break-after-reccord/post","metadata":{"seo":{"title":"Установить перерыв после услуги текущего мастера","description":"Устанавливает значение break_after_service_min для текущего авторизованного мастера."}},"httpPath":"/api/calendar/break-after-reccord"}]},{"type":"group","label":"Календарь — акции","link":"/openapi/kalendar-akcii","routeSlug":"/openapi/kalendar-akcii","items":[{"label":"Установить акции текущего пользователя на указанную дату","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-akcii/paths/~1api~1calendar~1action/post","routeSlug":"/openapi/kalendar-akcii/paths/~1api~1calendar~1action/post","metadata":{"seo":{"title":"Установить акции текущего пользователя на указанную дату","description":"Сохраняет список акционных интервалов на указанную дату."}},"httpPath":"/api/calendar/action"},{"label":"Получить услуги индивидуального мастера, доступные для акционного интервала","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-akcii/paths/~1api~1calendar~1action~1available-services/get","routeSlug":"/openapi/kalendar-akcii/paths/~1api~1calendar~1action~1available-services/get","metadata":{"seo":{"title":"Получить услуги индивидуального мастера, доступные для акционного интервала","description":"Возвращает услуги текущего индивидуального мастера, которые можно добавить в выбранный акционный интервал."}},"httpPath":"/api/calendar/action/available-services"},{"label":"Получить акции текущего пользователя на указанную дату","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-akcii/paths/~1api~1calendar~1action~1{date}/get","routeSlug":"/openapi/kalendar-akcii/paths/~1api~1calendar~1action~1{date}/get","metadata":{"seo":{"title":"Получить акции текущего пользователя на указанную дату","description":"Возвращает список акционных интервалов текущего пользователя на указанную дату."}},"httpPath":"/api/calendar/action/{date}"},{"label":"Удалить акцию по id","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-akcii/paths/~1api~1calendar~1action~1id~1{actionid}/delete","routeSlug":"/openapi/kalendar-akcii/paths/~1api~1calendar~1action~1id~1{actionid}/delete","metadata":{"seo":{"title":"Удалить акцию по id","description":"Удаляет одну акцию текущего мастера по id."}},"httpPath":"/api/calendar/action/id/{actionId}"},{"label":"Создать акцию для мастера салона","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-akcii/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1action/post","routeSlug":"/openapi/kalendar-akcii/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1action/post","metadata":{"seo":{"title":"Создать акцию для мастера салона","description":"Создает одну акцию со скидкой для конкретного мастера в салоне текущего пользователя."}},"httpPath":"/api/calendar/salon/master/{master_user_id}/action"},{"label":"Получить услуги мастера салона, доступные для акционного интервала","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-akcii/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1action~1available-services/get","routeSlug":"/openapi/kalendar-akcii/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1action~1available-services/get","metadata":{"seo":{"title":"Получить услуги мастера салона, доступные для акционного интервала","description":"Возвращает услуги мастера салона, которые можно добавить в выбранный акционный интервал."}},"httpPath":"/api/calendar/salon/master/{master_user_id}/action/available-services"},{"label":"Получить акции мастера салона по дате","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-akcii/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1action~1{date}/get","routeSlug":"/openapi/kalendar-akcii/paths/~1api~1calendar~1salon~1master~1{master_user_id}~1action~1{date}/get","metadata":{"seo":{"title":"Получить акции мастера салона по дате","description":"Возвращает акции со скидкой для конкретного мастера в салоне текущего пользователя на указанную дату."}},"httpPath":"/api/calendar/salon/master/{master_user_id}/action/{date}"},{"label":"Удалить акцию мастера салона по id","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-akcii/paths/~1api~1calendar~1salon~1action~1id~1{actionid}/delete","routeSlug":"/openapi/kalendar-akcii/paths/~1api~1calendar~1salon~1action~1id~1{actionid}/delete","metadata":{"seo":{"title":"Удалить акцию мастера салона по id","description":"Удаляет одну акцию мастера салона по UUID."}},"httpPath":"/api/calendar/salon/action/id/{actionId}"}]},{"type":"group","label":"Календарь — заметки","link":"/openapi/kalendar-zametki","routeSlug":"/openapi/kalendar-zametki","items":[{"label":"Получить заметки салона на дату","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-zametki/paths/~1api~1calendar~1notes~1{date}/get","routeSlug":"/openapi/kalendar-zametki/paths/~1api~1calendar~1notes~1{date}/get","metadata":{"seo":{"title":"Получить заметки салона на дату","description":"Возвращает все заметки салона на указанную дату в порядке возрастания id."}},"httpPath":"/api/calendar/notes/{date}"},{"label":"Создать заметку салона на дату","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-zametki/paths/~1api~1calendar~1notes~1{date}/post","routeSlug":"/openapi/kalendar-zametki/paths/~1api~1calendar~1notes~1{date}/post","metadata":{"seo":{"title":"Создать заметку салона на дату","description":"Создает заметку салона на указанную дату и возвращает полный список заметок этой даты,отсортированный по id."}},"httpPath":"/api/calendar/notes/{date}"},{"label":"Изменить заметки салона на дату","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-zametki/paths/~1api~1calendar~1notes~1{date}/patch","routeSlug":"/openapi/kalendar-zametki/paths/~1api~1calendar~1notes~1{date}/patch","metadata":{"seo":{"title":"Изменить заметки салона на дату","description":"Изменяет текст нескольких заметок салона на указанную дату.Тело запроса должно содержать непустой список объектов id → text."}},"httpPath":"/api/calendar/notes/{date}"},{"label":"Удалить заметку салона","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kalendar-zametki/paths/~1api~1calendar~1notes~1{date}/delete","routeSlug":"/openapi/kalendar-zametki/paths/~1api~1calendar~1notes~1{date}/delete","metadata":{"seo":{"title":"Удалить заметку салона","description":"Удаляет заметку по её положительному id."}},"httpPath":"/api/calendar/notes/{date}"}]},{"type":"group","label":"Услуги","link":"/openapi/uslugi","routeSlug":"/openapi/uslugi","items":[{"label":"Создать услугу","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/uslugi/paths/~1api~1service/post","routeSlug":"/openapi/uslugi/paths/~1api~1service/post","metadata":{"seo":{"title":"Создать услугу","description":"Создает новую услугу текущего мастера или участника салона."}},"httpPath":"/api/service"},{"label":"Получить свои услуги провайдера","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/uslugi/paths/~1api~1service~1provider/get","routeSlug":"/openapi/uslugi/paths/~1api~1service~1provider/get","metadata":{"seo":{"title":"Получить свои услуги провайдера","description":"Возвращает список услуг, где provider_id равен id текущего авторизованного пользователя."}},"httpPath":"/api/service/provider"},{"label":"Получить доступные шаблоны услуг по категории","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/uslugi/paths/~1api~1service-catalog~1by-category~1{categoryid}/get","routeSlug":"/openapi/uslugi/paths/~1api~1service-catalog~1by-category~1{categoryid}/get","metadata":{"seo":{"title":"Получить доступные шаблоны услуг по категории","description":"Возвращает персональный справочник шаблонов услуг для быстрого заполнения формы создания услуги."}},"httpPath":"/api/service-catalog/by-category/{categoryId}"},{"label":"Получить допустимые радиусы выезда к клиенту","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/uslugi/paths/~1api~1service~1client-place-radius-options/get","routeSlug":"/openapi/uslugi/paths/~1api~1service~1client-place-radius-options/get","metadata":{"seo":{"title":"Получить допустимые радиусы выезда к клиенту","description":"Получить допустимые радиусы выезда к клиенту"}},"httpPath":"/api/service/client-place-radius-options"},{"label":"Получить услугу по id","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/uslugi/paths/~1api~1service~1{serviceid}/get","routeSlug":"/openapi/uslugi/paths/~1api~1service~1{serviceid}/get","metadata":{"seo":{"title":"Получить услугу по id","description":"Возвращает услугу по ее идентификатору."}},"httpPath":"/api/service/{serviceId}"},{"label":"Обновить услугу","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/uslugi/paths/~1api~1service~1{serviceid}/patch","routeSlug":"/openapi/uslugi/paths/~1api~1service~1{serviceid}/patch","metadata":{"seo":{"title":"Обновить услугу","description":"Частично обновляет услугу по ее идентификатору."}},"httpPath":"/api/service/{serviceId}"},{"label":"Удалить услугу","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/uslugi/paths/~1api~1service~1{serviceid}/delete","routeSlug":"/openapi/uslugi/paths/~1api~1service~1{serviceid}/delete","metadata":{"seo":{"title":"Удалить услугу","description":"Удаляет услугу по ее идентификатору."}},"httpPath":"/api/service/{serviceId}"},{"label":"Получить услуги провайдера","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/uslugi/paths/~1api~1service~1provider~1{providerid}/get","routeSlug":"/openapi/uslugi/paths/~1api~1service~1provider~1{providerid}/get","metadata":{"seo":{"title":"Получить услуги провайдера","description":"Возвращает список услуг, принадлежащих указанному провайдеру."}},"httpPath":"/api/service/provider/{providerId}"},{"label":"Получить услуги салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/uslugi/paths/~1api~1service~1salon~1{salonid}/get","routeSlug":"/openapi/uslugi/paths/~1api~1service~1salon~1{salonid}/get","metadata":{"seo":{"title":"Получить услуги салона","description":"Возвращает список услуг салона по id салона."}},"httpPath":"/api/service/salon/{salonId}"},{"label":"Получить услуги салона по категориям","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/uslugi/paths/~1api~1service~1salon~1{salon_id}~1services~1by-category/get","routeSlug":"/openapi/uslugi/paths/~1api~1service~1salon~1{salon_id}~1services~1by-category/get","metadata":{"seo":{"title":"Получить услуги салона по категориям","description":"Возвращает услуги салона, сгруппированные по дереву категорий."}},"httpPath":"/api/service/salon/{salon_id}/services/by-category"},{"label":"Получить услуги мастера салона по категориям","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/uslugi/paths/~1api~1service~1salon~1master~1{master_user_id}~1services/get","routeSlug":"/openapi/uslugi/paths/~1api~1service~1salon~1master~1{master_user_id}~1services/get","metadata":{"seo":{"title":"Получить услуги мастера салона по категориям","description":"Возвращает услуги, назначенные мастеру салона, сгруппированные по дереву категорий."}},"httpPath":"/api/service/salon/master/{master_user_id}/services"},{"label":"Обновить услуги мастера салона","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/uslugi/paths/~1api~1service~1salon~1master~1{master_user_id}~1services/put","routeSlug":"/openapi/uslugi/paths/~1api~1service~1salon~1master~1{master_user_id}~1services/put","metadata":{"seo":{"title":"Обновить услуги мастера салона","description":"Полностью заменяет список услуг, назначенных мастеру салона."}},"httpPath":"/api/service/salon/master/{master_user_id}/services"},{"label":"Получить услуги мастера по категориям","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/uslugi/paths/~1api~1service~1master~1{master_user_id}~1services~1by-category/get","routeSlug":"/openapi/uslugi/paths/~1api~1service~1master~1{master_user_id}~1services~1by-category/get","metadata":{"seo":{"title":"Получить услуги мастера по категориям","description":"Возвращает услуги мастера, сгруппированные по дереву категорий."}},"httpPath":"/api/service/master/{master_user_id}/services/by-category"}]},{"type":"group","label":"Поиск","link":"/openapi/poisk","routeSlug":"/openapi/poisk","items":[{"type":"link","label":"Подключение карты","link":"/openapi/poisk/podklyuchenie-karty","routeSlug":"/openapi/poisk/podklyuchenie-karty"},{"label":"Получить станции метро по названию города","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/poisk/paths/~1api~1metro/get","routeSlug":"/openapi/poisk/paths/~1api~1metro/get","metadata":{"seo":{"title":"Получить станции метро по названию города","description":"Защищённый справочный endpoint для режима «По алфавиту». Требуется JWT пользователя."}},"httpPath":"/api/metro"},{"label":"Получить линии метро по названию города","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/poisk/paths/~1api~1metro~1lines/get","routeSlug":"/openapi/poisk/paths/~1api~1metro~1lines/get","metadata":{"seo":{"title":"Получить линии метро по названию города","description":"Защищённый справочный endpoint для режима «По линиям». Требуется JWT пользователя."}},"httpPath":"/api/metro/lines"},{"label":"Получить районы по названию города","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/poisk/paths/~1api~1districts/get","routeSlug":"/openapi/poisk/paths/~1api~1districts/get","metadata":{"seo":{"title":"Получить районы по названию города","description":"Возвращает только названия районов, отсортированные по русскому алфавиту. Требуется JWT пользователя."}},"httpPath":"/api/districts"},{"label":"Получить подсказки услуг, салонов и мастеров","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/poisk/paths/~1api~1search~1suggestions/get","routeSlug":"/openapi/poisk/paths/~1api~1search~1suggestions/get","metadata":{"seo":{"title":"Получить подсказки услуг, салонов и мастеров","description":"Выполняет один легковесный поиск сразу по трём индексам Meilisearch.Возвращает до 4 услуг с уникальными нормализованными названиями,затем до 1 салона и до 1 мастера."}},"httpPath":"/api/search/suggestions"},{"label":"Общий поиск услуг, салонов и мастеров","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/poisk/paths/~1api~1search~1all/get","routeSlug":"/openapi/poisk/paths/~1api~1search~1all/get","metadata":{"seo":{"title":"Общий поиск услуг, салонов и мастеров","description":"Возвращает смешанную поисковую выдачу услуг, салонов и мастеров.Один блок содержит до 8 услуг, 1 салона и 1 мастера в следующем порядке:4 услуги, 1 салон, 4 услуги, 1 мастер."}},"httpPath":"/api/search/all"},{"label":"Поиск услуг","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/poisk/paths/~1api~1search~1services/get","routeSlug":"/openapi/poisk/paths/~1api~1search~1services/get","metadata":{"seo":{"title":"Поиск услуг","description":"Выполняет поиск услуг с поддержкой текстового поиска,фильтрации по категории, цене и одному географическому режиму."}},"httpPath":"/api/search/services"},{"label":"Поиск мастеров","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/poisk/paths/~1api~1search~1masters/get","routeSlug":"/openapi/poisk/paths/~1api~1search~1masters/get","metadata":{"seo":{"title":"Поиск мастеров","description":"Выполняет поиск мастеров с поддержкой текстового поиска,фильтрации по категории, диапазону цен и одному географическому режиму."}},"httpPath":"/api/search/masters"},{"label":"Поиск салонов","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/poisk/paths/~1api~1search~1salons/get","routeSlug":"/openapi/poisk/paths/~1api~1search~1salons/get","metadata":{"seo":{"title":"Поиск салонов","description":"Ищет салоны по названию, адресу и категориям услуг.Поддерживает те же фильтры и сортировки, что и поиск мастеров:категорию с подкатегориями, диапазон цен, точку с радиусом, адрес,метро, районы и геолокацию профиля по умолчанию."}},"httpPath":"/api/search/salons"},{"label":"Подсчитать количество услуг","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/poisk/countservices","routeSlug":"/openapi/poisk/countservices","metadata":{"seo":{"title":"Подсчитать количество услуг","description":"Возвращает точное количество услуг, соответствующих текстовому запросу и фильтрам,без загрузки самих документов из Meilisearch."}},"httpPath":"/api/search/services/count"},{"label":"Подсчитать количество мастеров","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/poisk/countmasters","routeSlug":"/openapi/poisk/countmasters","metadata":{"seo":{"title":"Подсчитать количество мастеров","description":"Возвращает точное количество мастеров, соответствующих текстовому запросу и фильтрам,без загрузки самих документов из Meilisearch."}},"httpPath":"/api/search/masters/count"},{"label":"Подсчитать количество салонов","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/poisk/countsalons","routeSlug":"/openapi/poisk/countsalons","metadata":{"seo":{"title":"Подсчитать количество салонов","description":"Возвращает точное количество салонов, соответствующих текстовому запросу и фильтрам,без загрузки самих документов из Meilisearch."}},"httpPath":"/api/search/salons/count"},{"label":"Подсчитать общее количество результатов","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/poisk/countallsearchresults","routeSlug":"/openapi/poisk/countallsearchresults","metadata":{"seo":{"title":"Подсчитать общее количество результатов","description":"Возвращает сумму количества услуг, мастеров и салонов, соответствующих запросу и фильтрам.Документы из Meilisearch не загружаются."}},"httpPath":"/api/search/all/count"}]},{"type":"group","label":"Подсказки","link":"/openapi/podskazki","routeSlug":"/openapi/podskazki","items":[{"label":"Получить подсказки адресов с координатами","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/podskazki/paths/~1api~1search~1addresses/get","routeSlug":"/openapi/podskazki/paths/~1api~1search~1addresses/get","metadata":{"seo":{"title":"Получить подсказки адресов с координатами","description":"Возвращает подсказки адресов DaData с координатами."}},"httpPath":"/api/search/addresses"},{"label":"Получить город и адрес по координатам","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/podskazki/paths/~1api~1geocoder~1reverse/get","routeSlug":"/openapi/podskazki/paths/~1api~1geocoder~1reverse/get","metadata":{"seo":{"title":"Получить город и адрес по координатам","description":"Передайте координаты устройства, затем используйте полученные city и address вместе с исходными координатами в POST /api/user/addresses."}},"httpPath":"/api/geocoder/reverse"},{"label":"Поиск городов, ПГТ, сёл и деревень","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/podskazki/paths/~1api~1search~1places/get","routeSlug":"/openapi/podskazki/paths/~1api~1search~1places/get","metadata":{"seo":{"title":"Поиск городов, ПГТ, сёл и деревень","description":"Возвращает подсказки населённых пунктов России и признаки наличия метрои районов в справочниках поиска."}},"httpPath":"/api/search/places"},{"label":"Получить подсказки адресов","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/podskazki/paths/~1api~1suggestions~1address/get","routeSlug":"/openapi/podskazki/paths/~1api~1suggestions~1address/get","metadata":{"seo":{"title":"Получить подсказки адресов","description":"Возвращает список адресов с координатами для автозаполнения форм."}},"httpPath":"/api/suggestions/address"},{"label":"Получить подсказки городов и населённых пунктов","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/podskazki/paths/~1api~1suggestions~1cities/get","routeSlug":"/openapi/podskazki/paths/~1api~1suggestions~1cities/get","metadata":{"seo":{"title":"Получить подсказки городов и населённых пунктов","description":"Возвращает список городов, ПГТ, сёл и деревень из DaData для автозаполнения форм.Использует ту же выборку и порядок, что и /api/search/places, но возвращаеттолько названия без признаков метро и районов."}},"httpPath":"/api/suggestions/cities"}]},{"type":"group","label":"Категории","link":"/openapi/kategorii","routeSlug":"/openapi/kategorii","items":[{"label":"Получить корневые категории","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kategorii/paths/~1api~1category/get","routeSlug":"/openapi/kategorii/paths/~1api~1category/get","metadata":{"seo":{"title":"Получить корневые категории","description":"Возвращает список корневых категорий (parent_id = null)."}},"httpPath":"/api/category"},{"label":"Создать категорию","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kategorii/paths/~1api~1category/post","routeSlug":"/openapi/kategorii/paths/~1api~1category/post","metadata":{"seo":{"title":"Создать категорию","description":"Создаёт новую категорию."}},"httpPath":"/api/category"},{"label":"Получить категорию по id","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kategorii/paths/~1api~1category~1{categoryid}/get","routeSlug":"/openapi/kategorii/paths/~1api~1category~1{categoryid}/get","metadata":{"seo":{"title":"Получить категорию по id","description":"Возвращает категорию по идентификатору вместе со списком children."}},"httpPath":"/api/category/{categoryId}"},{"label":"Обновить категорию","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kategorii/paths/~1api~1category~1{categoryid}/patch","routeSlug":"/openapi/kategorii/paths/~1api~1category~1{categoryid}/patch","metadata":{"seo":{"title":"Обновить категорию","description":"Частично обновляет категорию по идентификатору."}},"httpPath":"/api/category/{categoryId}"},{"label":"Удалить категорию","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kategorii/paths/~1api~1category~1{categoryid}/delete","routeSlug":"/openapi/kategorii/paths/~1api~1category~1{categoryid}/delete","metadata":{"seo":{"title":"Удалить категорию","description":"Удаляет категорию по идентификатору."}},"httpPath":"/api/category/{categoryId}"},{"label":"Получить onboarding категории","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kategorii/paths/~1api~1category~1onboarding/get","routeSlug":"/openapi/kategorii/paths/~1api~1category~1onboarding/get","metadata":{"seo":{"title":"Получить onboarding категории","description":"Возвращает список категорий, у которых showInOnboarding = true."}},"httpPath":"/api/category/onboarding"},{"label":"Получить дочерние категории","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/kategorii/paths/~1api~1category~1{categoryid}~1children/get","routeSlug":"/openapi/kategorii/paths/~1api~1category~1{categoryid}~1children/get","metadata":{"seo":{"title":"Получить дочерние категории","description":"Возвращает непосредственных дочерних категорий для указанной категории."}},"httpPath":"/api/category/{categoryId}/children"}]},{"type":"group","label":"Запись","link":"/openapi/zapis","routeSlug":"/openapi/zapis","items":[{"label":"Создать запись","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1/post","routeSlug":"/openapi/zapis/paths/~1api~1record~1/post","metadata":{"seo":{"title":"Создать запись","description":"Создаёт запись на услугу."}},"httpPath":"/api/record/"},{"label":"Рассчитать checkout перед созданием записи","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1checkout/post","routeSlug":"/openapi/zapis/paths/~1api~1record~1checkout/post","metadata":{"seo":{"title":"Рассчитать checkout перед созданием записи","description":"Возвращает упорядоченную историю изменения цены для экрана подтверждения записи.Первый элемент всегда содержит базовую цену. Если действует акция, следующим элементомвозвращается цена после акции. После этого к уже сниженной цене применяется не более однойреферальной скидки с приоритетом:"}},"httpPath":"/api/record/checkout"},{"label":"Получить запись по id","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1{id}/get","routeSlug":"/openapi/zapis/paths/~1api~1record~1{id}/get","metadata":{"seo":{"title":"Получить запись по id","description":"Возвращает запись по идентификатору, если текущий пользователь имеет к ней доступ."}},"httpPath":"/api/record/{id}"},{"label":"Изменить общий комментарий мастера/салона","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1{id}/patch","routeSlug":"/openapi/zapis/paths/~1api~1record~1{id}/patch","metadata":{"seo":{"title":"Изменить общий комментарий мастера/салона","description":"Устанавливает или изменяет общий комментарий к активной записи.Пустая строка очищает комментарий."}},"httpPath":"/api/record/{id}"},{"label":"Отменить запись","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1{id}~1cancel/post","routeSlug":"/openapi/zapis/paths/~1api~1record~1{id}~1cancel/post","metadata":{"seo":{"title":"Отменить запись","description":"Отменяет существующую запись без физического удаления.Сервер переводит запись в статус CANCELED."}},"httpPath":"/api/record/{id}/cancel"},{"label":"Создать запрос на перенос записи","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1reschedule/post","routeSlug":"/openapi/zapis/paths/~1api~1record~1reschedule/post","metadata":{"seo":{"title":"Создать запрос на перенос записи","description":"Создаёт запрос на перенос существующей записи."}},"httpPath":"/api/record/reschedule"},{"label":"Получить запросы на перенос записи по дате","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1reschedule~1{date}/get","routeSlug":"/openapi/zapis/paths/~1api~1record~1reschedule~1{date}/get","metadata":{"seo":{"title":"Получить запросы на перенос записи по дате","description":"Возвращает список запросов на перенос записи на указанную дату."}},"httpPath":"/api/record/reschedule/{date}"},{"label":"Отклонить запрос на перенос записи","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1reschedule~1reject~1{id}/post","routeSlug":"/openapi/zapis/paths/~1api~1record~1reschedule~1reject~1{id}/post","metadata":{"seo":{"title":"Отклонить запрос на перенос записи","description":"Отклоняет ранее созданный запрос на перенос записи."}},"httpPath":"/api/record/reschedule/reject/{id}"},{"label":"Подтвердить запрос на перенос записи","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1reschedule~1approve~1{id}/post","routeSlug":"/openapi/zapis/paths/~1api~1record~1reschedule~1approve~1{id}/post","metadata":{"seo":{"title":"Подтвердить запрос на перенос записи","description":"Подтверждает ранее созданный запрос на перенос записи и задает новое время записи."}},"httpPath":"/api/record/reschedule/approve/{id}"},{"label":"Создать запрос на создание записи","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1create/post","routeSlug":"/openapi/zapis/paths/~1api~1record~1create/post","metadata":{"seo":{"title":"Создать запрос на создание записи","description":"Создаёт запрос на создание записи по услуге для выбранного пользователя."}},"httpPath":"/api/record/create"},{"label":"Получить запросы на создание записи по дате создания","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1create~1{date}/get","routeSlug":"/openapi/zapis/paths/~1api~1record~1create~1{date}/get","metadata":{"seo":{"title":"Получить запросы на создание записи по дате создания","description":"Возвращает список запросов на создание записи, созданных в указанную дату."}},"httpPath":"/api/record/create/{date}"},{"label":"Отклонить запрос на создание записи","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1create~1reject~1{id}/post","routeSlug":"/openapi/zapis/paths/~1api~1record~1create~1reject~1{id}/post","metadata":{"seo":{"title":"Отклонить запрос на создание записи","description":"Отклоняет ранее созданный запрос на создание записи."}},"httpPath":"/api/record/create/reject/{id}"},{"label":"Подтвердить запрос на создание записи","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1create~1approve~1{id}/post","routeSlug":"/openapi/zapis/paths/~1api~1record~1create~1approve~1{id}/post","metadata":{"seo":{"title":"Подтвердить запрос на создание записи","description":"Подтверждает ранее созданный запрос на создание записи и создаёт service recordна выбранный интервал времени."}},"httpPath":"/api/record/create/approve/{id}"},{"label":"Создать запрос на доплату","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1surcharge/post","routeSlug":"/openapi/zapis/paths/~1api~1record~1surcharge/post","metadata":{"seo":{"title":"Создать запрос на доплату","description":"Создаёт request на дополнительную оплату по услуге."}},"httpPath":"/api/record/surcharge"},{"label":"Получить запросы на доплату по дате создания","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1surcharge~1{date}/get","routeSlug":"/openapi/zapis/paths/~1api~1record~1surcharge~1{date}/get","metadata":{"seo":{"title":"Получить запросы на доплату по дате создания","description":"Возвращает список запросов на доплату, созданных в указанную дату."}},"httpPath":"/api/record/surcharge/{date}"},{"label":"Отклонить запрос на доплату","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1surcharge~1reject~1{id}/post","routeSlug":"/openapi/zapis/paths/~1api~1record~1surcharge~1reject~1{id}/post","metadata":{"seo":{"title":"Отклонить запрос на доплату","description":"Отклоняет ранее созданный запрос на доплату и сохраняет причину отказа."}},"httpPath":"/api/record/surcharge/reject/{id}"},{"label":"Тестово опубликовать событие успешной оплаты доплаты","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1surcharge~1pay~1{request_id}/post","routeSlug":"/openapi/zapis/paths/~1api~1record~1surcharge~1pay~1{request_id}/post","metadata":{"seo":{"title":"Тестово опубликовать событие успешной оплаты доплаты","description":"Тестовый endpoint для проверки flow оплаты запроса на доплату."}},"httpPath":"/api/record/surcharge/pay/{request_id}"},{"label":"Тестово отметить запись как оплаченную","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1pay~1{id}/post","routeSlug":"/openapi/zapis/paths/~1api~1record~1pay~1{id}/post","metadata":{"seo":{"title":"Тестово отметить запись как оплаченную","description":"Тестовый endpoint для фронтенд-проверки flow оплаты."}},"httpPath":"/api/record/pay/{id}"},{"label":"Получить доступные слоты для бронирования услуги","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1free-slots/get","routeSlug":"/openapi/zapis/paths/~1api~1record~1free-slots/get","metadata":{"seo":{"title":"Получить доступные слоты для бронирования услуги","description":"Возвращает список доступных слотов для выбранной услуги на указанную дату."}},"httpPath":"/api/record/free-slots"},{"label":"Получить записи текущего пользователя","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1user/get","routeSlug":"/openapi/zapis/paths/~1api~1record~1user/get","metadata":{"seo":{"title":"Получить записи текущего пользователя","description":"Возвращает список записей текущего пользователя."}},"httpPath":"/api/record/user"},{"label":"Получить записи текущего провайдера","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1provider/get","routeSlug":"/openapi/zapis/paths/~1api~1record~1provider/get","metadata":{"seo":{"title":"Получить записи текущего провайдера","description":"Возвращает список записей текущего провайдера."}},"httpPath":"/api/record/provider"},{"label":"Получить смешанное расписание провайдера за дату","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1provider~1schedule~1{date}/get","routeSlug":"/openapi/zapis/paths/~1api~1record~1provider~1schedule~1{date}/get","metadata":{"seo":{"title":"Получить смешанное расписание провайдера за дату","description":"Возвращает единый отсортированный по времени список записей и перерывов.Для записи type равен RECORD и передаётся её id.Для перерыва type равен BREAK, а id равен null."}},"httpPath":"/api/record/provider/schedule/{date}"},{"label":"Получить даты записей текущего провайдера за год","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1provider~1calendar/get","routeSlug":"/openapi/zapis/paths/~1api~1record~1provider~1calendar/get","metadata":{"seo":{"title":"Получить даты записей текущего провайдера за год","description":"Возвращает календарную сводку текущего провайдера за указанный год.В каждом месяце возвращаются номера дней, в которых есть записи со статусомBOOKED или COMPLETED. Записи со статусом CANCELED и записи, ожидающие оплаты,в сводку не включаются."}},"httpPath":"/api/record/provider/calendar"},{"label":"Получить записи текущего провайдера по дате","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/zapis/paths/~1api~1record~1provider~1{date}/get","routeSlug":"/openapi/zapis/paths/~1api~1record~1provider~1{date}/get","metadata":{"seo":{"title":"Получить записи текущего провайдера по дате","description":"Требования:"}},"httpPath":"/api/record/provider/{date}"}]},{"type":"group","label":"Аналитика","link":"/openapi/analitika","routeSlug":"/openapi/analitika","items":[{"label":"Получить аналитику мастера за дату","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/analitika/paths/~1api~1master~1analytics~1{date}/get","routeSlug":"/openapi/analitika/paths/~1api~1master~1analytics~1{date}/get","metadata":{"seo":{"title":"Получить аналитику мастера за дату","description":"Требования:"}},"httpPath":"/api/master/analytics/{date}"},{"label":"Получить мини-аналитику салона за день","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/analitika/paths/~1api~1salon~1analytics~1{date}/get","routeSlug":"/openapi/analitika/paths/~1api~1salon~1analytics~1{date}/get","metadata":{"seo":{"title":"Получить мини-аналитику салона за день","description":"Возвращает количество записей, свободные часы и загрузку салона за выбранный день.Доступ разрешен владельцу салона и администратору с правом RECORD_VIEW."}},"httpPath":"/api/salon/analytics/{date}"},{"label":"Получить аналитику текущего мастера за период","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/analitika/paths/~1api~1analytics~1master/get","routeSlug":"/openapi/analitika/paths/~1api~1analytics~1master/get","metadata":{"seo":{"title":"Получить аналитику текущего мастера за период","description":"Возвращает агрегированную аналитику текущего мастера за период дат."}},"httpPath":"/api/analytics/master"},{"label":"Получить аналитику текущего салона за период","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/analitika/paths/~1api~1analytics~1salon/get","routeSlug":"/openapi/analitika/paths/~1api~1analytics~1salon/get","metadata":{"seo":{"title":"Получить аналитику текущего салона за период","description":"Возвращает аналитику записей салона по provider_id владельца.Доступ разрешен владельцу и администратору салона."}},"httpPath":"/api/analytics/salon"}]},{"type":"group","label":"Отзывы","link":"/openapi/otzyvy","routeSlug":"/openapi/otzyvy","items":[{"label":"Создать отзыв по завершённой записи","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/otzyvy/paths/~1api~1review/post","routeSlug":"/openapi/otzyvy/paths/~1api~1review/post","metadata":{"seo":{"title":"Создать отзыв по завершённой записи","description":"Создаёт новый отзыв текущего пользователя по service record."}},"httpPath":"/api/review"},{"label":"Получить отзывы текущего пользователя","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/otzyvy/paths/~1api~1review~1user/get","routeSlug":"/openapi/otzyvy/paths/~1api~1review~1user/get","metadata":{"seo":{"title":"Получить отзывы текущего пользователя","description":"Возвращает все отзывы, оставленные текущим авторизованным пользователем."}},"httpPath":"/api/review/user"},{"label":"Получить отзывы индивидуального мастера","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/otzyvy/paths/~1api~1review~1provider~1{providerid}/get","routeSlug":"/openapi/otzyvy/paths/~1api~1review~1provider~1{providerid}/get","metadata":{"seo":{"title":"Получить отзывы индивидуального мастера","description":"Возвращает все отзывы индивидуального мастера.providerId — user id мастера (users.id), сохранённый в reviews.provider_id."}},"httpPath":"/api/review/provider/{providerId}"},{"label":"Получить отзывы салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/otzyvy/paths/~1api~1review~1salon~1{salonid}/get","routeSlug":"/openapi/otzyvy/paths/~1api~1review~1salon~1{salonid}/get","metadata":{"seo":{"title":"Получить отзывы салона","description":"Возвращает все отзывы салона по идентификатору сущности salons.id.Backend преобразует salonId в user id владельца салона и выбирает отзывы по reviews.provider_id."}},"httpPath":"/api/review/salon/{salonId}"},{"label":"Получить отзывы мастера внутри салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/otzyvy/paths/~1api~1review~1salon~1{salonid}~1master~1{masteruserid}/get","routeSlug":"/openapi/otzyvy/paths/~1api~1review~1salon~1{salonid}~1master~1{masteruserid}/get","metadata":{"seo":{"title":"Получить отзывы мастера внутри салона","description":"Возвращает отзывы указанного мастера только в рамках указанного салона.Фильтрация выполняется одновременно по reviews.provider_id владельца салонаи reviews.executor_id = masterUserId."}},"httpPath":"/api/review/salon/{salonId}/master/{masterUserId}"},{"label":"Получить отзывы по услуге","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/otzyvy/paths/~1api~1review~1service~1{service_id}/get","routeSlug":"/openapi/otzyvy/paths/~1api~1review~1service~1{service_id}/get","metadata":{"seo":{"title":"Получить отзывы по услуге","description":"Возвращает все отзывы, оставленные по записям указанной услуги."}},"httpPath":"/api/review/service/{service_id}"},{"label":"Получить отзывы по записи","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/otzyvy/paths/~1api~1review~1record~1{id}/get","routeSlug":"/openapi/otzyvy/paths/~1api~1review~1record~1{id}/get","metadata":{"seo":{"title":"Получить отзывы по записи","description":"Возвращает все отзывы, оставленные по указанной записи."}},"httpPath":"/api/review/record/{id}"},{"label":"Получить отзыв по идентификатору","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/otzyvy/paths/~1api~1review~1{id}/get","routeSlug":"/openapi/otzyvy/paths/~1api~1review~1{id}/get","metadata":{"seo":{"title":"Получить отзыв по идентификатору","description":"Возвращает один отзыв по его идентификатору."}},"httpPath":"/api/review/{id}"},{"label":"Изменить свой отзыв","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/otzyvy/paths/~1api~1review~1{id}/patch","routeSlug":"/openapi/otzyvy/paths/~1api~1review~1{id}/patch","metadata":{"seo":{"title":"Изменить свой отзыв","description":"Частично обновляет только переданные поля собственного отзыва."}},"httpPath":"/api/review/{id}"},{"label":"Удалить свой отзыв","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/otzyvy/paths/~1api~1review~1{id}/delete","routeSlug":"/openapi/otzyvy/paths/~1api~1review~1{id}/delete","metadata":{"seo":{"title":"Удалить свой отзыв","description":"Удаляет только отзыв текущего пользователя."}},"httpPath":"/api/review/{id}"},{"label":"Проверить возможность оставить отзыв","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/otzyvy/paths/~1api~1review~1record~1{id}~1eligibility/get","routeSlug":"/openapi/otzyvy/paths/~1api~1review~1record~1{id}~1eligibility/get","metadata":{"seo":{"title":"Проверить возможность оставить отзыв","description":"Возвращает причину недоступности, момент окончания 30-дневного cooldown и количество оставшихся дней."}},"httpPath":"/api/review/record/{id}/eligibility"}]},{"type":"group","label":"Блог","link":"/openapi/blog","routeSlug":"/openapi/blog","items":[{"label":"Получить свои посты","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/blog/paths/~1api~1blog/get","routeSlug":"/openapi/blog/paths/~1api~1blog/get","metadata":{"seo":{"title":"Получить свои посты","description":"Возвращает список постов текущего авторизованного пользователя."}},"httpPath":"/api/blog"},{"label":"Создать пост","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/blog/paths/~1api~1blog/post","routeSlug":"/openapi/blog/paths/~1api~1blog/post","metadata":{"seo":{"title":"Создать пост","description":"Создаёт новый пост текущего пользователя."}},"httpPath":"/api/blog"},{"label":"Получить пост по id","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/blog/paths/~1api~1blog~1{id}/get","routeSlug":"/openapi/blog/paths/~1api~1blog~1{id}/get","metadata":{"seo":{"title":"Получить пост по id","description":"Возвращает один пост по его идентификатору."}},"httpPath":"/api/blog/{id}"},{"label":"Обновить пост","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/blog/paths/~1api~1blog~1{id}/patch","routeSlug":"/openapi/blog/paths/~1api~1blog~1{id}/patch","metadata":{"seo":{"title":"Обновить пост","description":"Частично обновляет пост по его идентификатору."}},"httpPath":"/api/blog/{id}"},{"label":"Удалить пост","deprecated":false,"httpVerb":"delete","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/blog/paths/~1api~1blog~1{id}/delete","routeSlug":"/openapi/blog/paths/~1api~1blog~1{id}/delete","metadata":{"seo":{"title":"Удалить пост","description":"Удаляет пост по его идентификатору."}},"httpPath":"/api/blog/{id}"},{"label":"Получить посты салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/blog/paths/~1api~1blog~1salon~1{salonid}/get","routeSlug":"/openapi/blog/paths/~1api~1blog~1salon~1{salonid}/get","metadata":{"seo":{"title":"Получить посты салона","description":"Возвращает список постов салона."}},"httpPath":"/api/blog/salon/{salonId}"},{"label":"Получить посты пользователя","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/blog/paths/~1api~1blog~1master~1{userid}/get","routeSlug":"/openapi/blog/paths/~1api~1blog~1master~1{userid}/get","metadata":{"seo":{"title":"Получить посты пользователя","description":"Возвращает список постов указанного пользователя."}},"httpPath":"/api/blog/master/{userId}"}]},{"type":"group","label":"Избранное","link":"/openapi/izbrannoe","routeSlug":"/openapi/izbrannoe","items":[{"label":"Получить избранное по типу","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/izbrannoe/paths/~1api~1favorites/get","routeSlug":"/openapi/izbrannoe/paths/~1api~1favorites/get","metadata":{"seo":{"title":"Получить избранное по типу","description":"Возвращает список избранных сущностей текущего пользователя по выбранному типу."}},"httpPath":"/api/favorites"},{"label":"Добавить в избранное","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/izbrannoe/paths/~1api~1favorites/post","routeSlug":"/openapi/izbrannoe/paths/~1api~1favorites/post","metadata":{"seo":{"title":"Добавить в избранное","description":"Добавляет сущность выбранного типа в избранное текущего пользователя."}},"httpPath":"/api/favorites"}]},{"type":"group","label":"Чаты REST","link":"/openapi/chaty-rest","routeSlug":"/openapi/chaty-rest","items":[{"label":"Получить диалог по id","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-rest/paths/~1api~1dialogs~1{id}/get","routeSlug":"/openapi/chaty-rest/paths/~1api~1dialogs~1{id}/get","metadata":{"seo":{"title":"Получить диалог по id","description":"Возвращает диалог по идентификатору, если:"}},"httpPath":"/api/dialogs/{id}"},{"label":"Получить список диалогов текущего пользователя","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-rest/paths/~1api~1dialogs~1user/get","routeSlug":"/openapi/chaty-rest/paths/~1api~1dialogs~1user/get","metadata":{"seo":{"title":"Получить список диалогов текущего пользователя","description":"Возвращает все диалоги текущего пользователя. Диалог с поддержкой всегда закреплёнпервым. Если его ещё нет, при запросе создаётся пустой приватный диалог с системнымаккаунтом поддержки (id = -1) и возвращается с реальным ID диалога."}},"httpPath":"/api/dialogs/user"},{"label":"Получить общий список диалогов салона","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-rest/paths/~1api~1dialogs~1salon/get","routeSlug":"/openapi/chaty-rest/paths/~1api~1dialogs~1salon/get","metadata":{"seo":{"title":"Получить общий список диалогов салона","description":"Возвращает общие диалоги салона для текущего владельца или админа салона."}},"httpPath":"/api/dialogs/salon"},{"label":"Отправить сообщение в поддержку","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-rest/paths/~1api~1support~1messages~1send/post","routeSlug":"/openapi/chaty-rest/paths/~1api~1support~1messages~1send/post","metadata":{"seo":{"title":"Отправить сообщение в поддержку","description":"Создаёт приватный диалог пользователя с системным аккаунтом поддержки (id = -1)при первой отправке. Если последнее обращение закрыто, создаётся новое открытоеобращение. Для владельца и администратора салона сообщение отправляется черезединый диалог владельца: sender_id равен ID владельца, а фактический отправительсохраняется в real_sender_id. Разрешены текст, изображения и документы с purpose MESSAGE.Аудио, голосовые сообщения, видео, геолокация и реакции не поддерживаются."}},"httpPath":"/api/support/messages/send"},{"label":"Ответить на вопрос о решении проблемы","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-rest/paths/~1api~1support~1chat~1resolution-response/post","routeSlug":"/openapi/chaty-rest/paths/~1api~1support~1chat~1resolution-response/post","metadata":{"seo":{"title":"Ответить на вопрос о решении проблемы","description":"Доступно только после запроса подтверждения со стороны поддержки.После принятия ответа кнопки подтверждения исчезают на всех устройствахклиента через /user/queue/support.status. При resolved = true обращениезакрывается и поддержка отправляет сообщение «Спасибо! Обращение закрыто».При resolved = false обращение остаётся открытым и поддержка отправляетсообщение «Понял. Напишите, что осталось нерешённым»."}},"httpPath":"/api/support/chat/resolution-response"},{"label":"Отправить сообщение","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-rest/paths/~1api~1messages~1send/post","routeSlug":"/openapi/chaty-rest/paths/~1api~1messages~1send/post","metadata":{"seo":{"title":"Отправить сообщение","description":"Создаёт одно или несколько сообщений и возвращает список их идентификаторов."}},"httpPath":"/api/messages/send"},{"label":"Получить сообщения диалога","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-rest/paths/~1api~1messages/get","routeSlug":"/openapi/chaty-rest/paths/~1api~1messages/get","metadata":{"seo":{"title":"Получить сообщения диалога","description":"Возвращает сообщения диалога. Для новых клиентов рекомендуется cursor-пагинация:первый запрос выполняется с limit, последующие — с before_id, равнымnext_before_id из предыдущего ответа. Legacy-параметр offset сохранён дляобратной совместимости и не может использоваться вместе с before_id."}},"httpPath":"/api/messages"},{"label":"Пометить реакции прочитанными","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-rest/paths/~1api~1messages~1reactions~1read/post","routeSlug":"/openapi/chaty-rest/paths/~1api~1messages~1reactions~1read/post","metadata":{"seo":{"title":"Пометить реакции прочитанными","description":"Помечает прочитанными реакции на сообщения из message_ids.В ответе возвращаются только ID сообщений, для которых непрочитанная реакцияпринадлежала текущему пользователю или его салону. Чужие, несуществующие иуже прочитанные реакции пропускаются без ошибки."}},"httpPath":"/api/messages/reactions/read"},{"label":"Получить сообщение по идентификатору","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-rest/paths/~1api~1messages~1{id}/get","routeSlug":"/openapi/chaty-rest/paths/~1api~1messages~1{id}/get","metadata":{"seo":{"title":"Получить сообщение по идентификатору","description":"Возвращает одно сообщение по его идентификатору."}},"httpPath":"/api/messages/{id}"}]},{"type":"group","label":"Чаты WS","link":"/openapi/chaty-ws","routeSlug":"/openapi/chaty-ws","items":[{"label":"Отправить сообщение в поддержку через WebSocket","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-ws/paths/~1app~1support.send/post","routeSlug":"/openapi/chaty-ws/paths/~1app~1support.send/post","metadata":{"seo":{"title":"Отправить сообщение в поддержку через WebSocket","description":"STOMP destination: /app/support.send."}},"httpPath":"/app/support.send"},{"label":"Отправить сообщение через WebSocket","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-ws/paths/~1app~1chat.send/post","routeSlug":"/openapi/chaty-ws/paths/~1app~1chat.send/post","metadata":{"seo":{"title":"Отправить сообщение через WebSocket","description":"STOMP destination для отправки сообщений через WebSocket."}},"httpPath":"/app/chat.send"},{"label":"Отправить сообщение салону через WebSocket","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-ws/paths/~1app~1chat.salon.send/post","routeSlug":"/openapi/chaty-ws/paths/~1app~1chat.salon.send/post","metadata":{"seo":{"title":"Отправить сообщение салону через WebSocket","description":"STOMP destination для отправки сообщения в общий чат салона по salon_id."}},"httpPath":"/app/chat.salon.send"},{"label":"Отметить сообщения прочитанными через WebSocket","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-ws/paths/~1app~1chat.read/post","routeSlug":"/openapi/chaty-ws/paths/~1app~1chat.read/post","metadata":{"seo":{"title":"Отметить сообщения прочитанными через WebSocket","description":"STOMP destination для отметки сообщений как прочитанных."}},"httpPath":"/app/chat.read"},{"label":"Поставить или убрать реакцию через WebSocket","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-ws/paths/~1app~1chat.reaction/post","routeSlug":"/openapi/chaty-ws/paths/~1app~1chat.reaction/post","metadata":{"seo":{"title":"Поставить или убрать реакцию через WebSocket","description":"STOMP destination для установки реакции на сообщение."}},"httpPath":"/app/chat.reaction"},{"label":"Подписка клиента на подтверждение отправки сообщения в поддержку","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-ws/paths/~1user~1queue~1support.delivered/get","routeSlug":"/openapi/chaty-ws/paths/~1user~1queue~1support.delivered/get","metadata":{"seo":{"title":"Подписка клиента на подтверждение отправки сообщения в поддержку","description":"Персональная STOMP-очередь клиента. После успешной отправки сообщения через/app/support.send сервер возвращает созданные сообщения, dialog_id иактуальный case_id обращения."}},"httpPath":"/user/queue/support.delivered"},{"label":"Подписка клиента на изменение статуса обращения в поддержку","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-ws/paths/~1user~1queue~1support.status/get","routeSlug":"/openapi/chaty-ws/paths/~1user~1queue~1support.status/get","metadata":{"seo":{"title":"Подписка клиента на изменение статуса обращения в поддержку","description":"Персональная STOMP-очередь клиента для получения изменений состояния обращения:запроса подтверждения решения, закрытия и повторного открытия обращения.Для активного запроса подтверждения клиент получает status = OPEN инепустой resolution_requested_at. После ответа клиентаresolution_requested_at = null, поэтому кнопки должны исчезнуть на всехподключённых устройствах."}},"httpPath":"/user/queue/support.status"},{"label":"Подписка на подтверждение доставки отправителю","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-ws/paths/~1user~1queue~1chat.delivered/get","routeSlug":"/openapi/chaty-ws/paths/~1user~1queue~1chat.delivered/get","metadata":{"seo":{"title":"Подписка на подтверждение доставки отправителю","description":"Пользовательская очередь, в которую сервер отправляет результат успешнойотправки сообщения после вызова /app/chat.send."}},"httpPath":"/user/queue/chat.delivered"},{"label":"Подписка на новые входящие сообщения","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-ws/paths/~1user~1queue~1chat.new_message/get","routeSlug":"/openapi/chaty-ws/paths/~1user~1queue~1chat.new_message/get","metadata":{"seo":{"title":"Подписка на новые входящие сообщения","description":"Пользовательская очередь для получения новых сообщений от другого участникадиалога."}},"httpPath":"/user/queue/chat.new_message"},{"label":"Подписка на обновление статуса request-сообщения","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-ws/paths/~1user~1queue~1chat.update_status_request/get","routeSlug":"/openapi/chaty-ws/paths/~1user~1queue~1chat.update_status_request/get","metadata":{"seo":{"title":"Подписка на обновление статуса request-сообщения","description":"Пользовательская очередь для получения уведомления об изменении статусаrequest внутри сообщения, например когда собеседник подтвердил или отклонилзапрос на перенос записи."}},"httpPath":"/user/queue/chat.update_status_request"},{"label":"Подписка на событие прочтения сообщений","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-ws/paths/~1user~1queue~1chat.read_message/get","routeSlug":"/openapi/chaty-ws/paths/~1user~1queue~1chat.read_message/get","metadata":{"seo":{"title":"Подписка на событие прочтения сообщений","description":"Пользовательская очередь для уведомления о прочтении сообщений другимучастником диалога."}},"httpPath":"/user/queue/chat.read_message"},{"label":"Подписка на реакции в сообщениях","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-ws/paths/~1user~1queue~1chat.reaction/get","routeSlug":"/openapi/chaty-ws/paths/~1user~1queue~1chat.reaction/get","metadata":{"seo":{"title":"Подписка на реакции в сообщениях","description":"Пользовательская очередь для получения уведомлений о постановке илиудалении реакции другим участником диалога."}},"httpPath":"/user/queue/chat.reaction"},{"label":"Подписка на online-статус собеседников","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-ws/paths/~1user~1queue~1chat.user_online_status/get","routeSlug":"/openapi/chaty-ws/paths/~1user~1queue~1chat.user_online_status/get","metadata":{"seo":{"title":"Подписка на online-статус собеседников","description":"Пользовательская очередь для получения изменений online-статусасобеседников по диалогам."}},"httpPath":"/user/queue/chat.user_online_status"},{"label":"Подписка на ошибки WebSocket-модуля мессенджера","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/chaty-ws/paths/~1user~1queue~1errors/get","routeSlug":"/openapi/chaty-ws/paths/~1user~1queue~1errors/get","metadata":{"seo":{"title":"Подписка на ошибки WebSocket-модуля мессенджера","description":"Пользовательская очередь, в которую сервер отправляет ошибки валидации иобработки STOMP-сообщений."}},"httpPath":"/user/queue/errors"}]},{"type":"group","label":"Справочные подсказки","link":"/openapi/spravochnye-podskazki","routeSlug":"/openapi/spravochnye-podskazki","items":[{"label":"Получить справочную подсказку по коду","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/spravochnye-podskazki/paths/~1api~1reference-data~1hints~1{code}/get","routeSlug":"/openapi/spravochnye-podskazki/paths/~1api~1reference-data~1hints~1{code}/get","metadata":{"seo":{"title":"Получить справочную подсказку по коду","description":"Возвращает подсказку по code."}},"httpPath":"/api/reference-data/hints/{code}"}]},{"type":"group","label":"Справочные списки","link":"/openapi/spravochnye-spiski","routeSlug":"/openapi/spravochnye-spiski","items":[{"label":"Получить список причин жалобы","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/spravochnye-spiski/paths/~1api~1reference-data~1lists~1complaint-reasons/get","routeSlug":"/openapi/spravochnye-spiski/paths/~1api~1reference-data~1lists~1complaint-reasons/get","metadata":{"seo":{"title":"Получить список причин жалобы","description":"Возвращает список причин жалобы."}},"httpPath":"/api/reference-data/lists/complaint-reasons"},{"label":"Получить список причин удаления аккаунта","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/spravochnye-spiski/paths/~1api~1reference-data~1lists~1account-deletion-reasons/get","routeSlug":"/openapi/spravochnye-spiski/paths/~1api~1reference-data~1lists~1account-deletion-reasons/get","metadata":{"seo":{"title":"Получить список причин удаления аккаунта","description":"Возвращает список причин удаления аккаунта."}},"httpPath":"/api/reference-data/lists/account-deletion-reasons"},{"label":"Получить список причин отмены записи","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/spravochnye-spiski/paths/~1api~1reference-data~1lists~1record-cancellation-reasons/get","routeSlug":"/openapi/spravochnye-spiski/paths/~1api~1reference-data~1lists~1record-cancellation-reasons/get","metadata":{"seo":{"title":"Получить список причин отмены записи","description":"Возвращает список причин отмены записи."}},"httpPath":"/api/reference-data/lists/record-cancellation-reasons"},{"label":"Получить список причин отказа доплаты","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/spravochnye-spiski/paths/~1api~1reference-data~1lists~1surcharge-rejection-reasons/get","routeSlug":"/openapi/spravochnye-spiski/paths/~1api~1reference-data~1lists~1surcharge-rejection-reasons/get","metadata":{"seo":{"title":"Получить список причин отказа доплаты","description":"Возвращает список причин отказа доплаты."}},"httpPath":"/api/reference-data/lists/surcharge-rejection-reasons"}]}]}