# SYNO — Полная документация API ## AI-помощник для рефлексии и подготовки к супервизии > SYNO анализирует анонимизированные заметки психологов о сессиях > и за 30 секунд возвращает: ключевые темы, вопросы для рефлексии, > структурированный отчёт для супервизора и аналитику паттернов. --- ## Аутентификация Все запросы к API требуют авторизации через Bearer-токен в заголовке: ``` Authorization: Bearer <ваш_токен> ``` Токен выдаётся при регистрации на https://getsyno.ru --- ## Эндпоинты ### POST /api/v1/analyze Анализ анонимизированной заметки о терапевтической сессии. #### Заголовки | Заголовок | Значение | Обязательный | |-----------------|-----------------------|--------------| | Authorization | Bearer <токен> | Да | | Content-Type | application/json | Да | #### Тело запроса (JSON) | Поле | Тип | Обязательное | Описание | |------------------|--------|--------------|-------------------------------------------------------------| | anonymized_text | string | Да | Анонимизированный текст заметки (без имён, дат, мест) | | session_label | string | Нет | Пометка пользователя, например "Клиент 3, сессия 12" | #### Пример запроса ```json POST /api/v1/analyze Content-Type: application/json Authorization: Bearer eyJhbGciOiJIUzI1NiIs... { "anonymized_text": "[КЛИЕНТ] продемонстрировал значительный прогресс в работе с автоматическими мыслями. Удалось выявить связь между ситуациями на работе и тревожными реакциями. Применили технику когнитивной реструктуризации.", "session_label": "Клиент 3, сессия 12" } ``` #### Пример ответа (200 OK) ```json { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "created_at": "2026-03-08T14:30:00Z", "session_label": "Клиент 3, сессия 12", "analysis_result": { "themes": [ { "name": "Тревога на работе", "description": "Клиент испытывает выраженную тревогу, связанную с рабочей средой и профессиональными ситуациями.", "intensity": "высокая" }, { "name": "Когнитивная реструктуризация", "description": "Применена техника работы с автоматическими мыслями с умеренной эффективностью.", "intensity": "средняя" } ], "dynamics": { "summary": "Клиент демонстрирует прогресс в осознании автоматических мыслей. Наблюдается переход от пассивной позиции к активному наблюдению за своими реакциями.", "therapeutic_alliance": "стабильный", "client_engagement": "высокое" }, "interventions": [ { "name": "Когнитивная реструктуризация", "effectiveness": "умеренная", "notes": "Клиент начал замечать автоматические мысли, но пока затрудняется в их оспаривании." } ], "reflection_questions": [ "Какие чувства вызвала у вас эта сессия?", "В какой момент вы почувствовали наибольшее сопротивление клиента?", "Что бы вы сделали иначе в работе с когнитивной реструктуризацией?", "Как ваш собственный опыт тревоги мог повлиять на ход сессии?", "Какие ресурсы клиента вы заметили, но не использовали?" ], "supervision_report": { "summary": "Клиент демонстрирует выраженную тревогу, связанную с рабочей средой. В ходе сессии применена когнитивная реструктуризация с умеренной эффективностью. Клиент начал замечать моменты нарастания тревоги.", "key_moments": [ "Момент осознания связи между рабочими ситуациями и тревогой", "Первый успешный опыт наблюдения за автоматическими мыслями" ], "questions_for_supervisor": [ "Стоит ли усилить поведенческий компонент работы?", "Как работать с возможным избеганием глубинных тем?" ], "recommendations": [ "Обсудить стратегии совладания на следующей сессии", "Рассмотреть введение дневника автоматических мыслей" ] } } } ``` #### Коды ответов | Код | Описание | |-----|------------------------------------------------| | 200 | Успешный анализ | | 400 | Некорректный запрос (пустой текст и т.д.) | | 401 | Не авторизован (невалидный или отсутствует токен) | | 429 | Превышен лимит запросов (Free: 3/мес) | | 500 | Внутренняя ошибка сервера | --- ### GET /api/v1/analyses Получение списка сохранённых анализов текущего пользователя. #### Параметры запроса (query) | Параметр | Тип | По умолчанию | Описание | |----------|--------|--------------|----------------------------------| | limit | number | 20 | Количество записей (макс. 100) | | offset | number | 0 | Смещение для пагинации | | order | string | desc | Сортировка по дате: asc / desc | #### Пример запроса ``` GET /api/v1/analyses?limit=10&offset=0&order=desc Authorization: Bearer eyJhbGciOiJIUzI1NiIs... ``` #### Пример ответа (200 OK) ```json { "data": [ { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "created_at": "2026-03-08T14:30:00Z", "session_label": "Клиент 3, сессия 12", "themes_preview": ["Тревога на работе", "Когнитивная реструктуризация"] } ], "total": 42, "limit": 10, "offset": 0 } ``` --- ### GET /api/v1/analyses/:id Получение полного анализа по ID. #### Пример запроса ``` GET /api/v1/analyses/a1b2c3d4-e5f6-7890-abcd-ef1234567890 Authorization: Bearer eyJhbGciOiJIUzI1NiIs... ``` Возвращает объект анализа в формате, аналогичном ответу POST /api/v1/analyze. --- ### DELETE /api/v1/analyses/:id Удаление анализа. Полностью удаляет запись из базы данных. #### Пример запроса ``` DELETE /api/v1/analyses/a1b2c3d4-e5f6-7890-abcd-ef1234567890 Authorization: Bearer eyJhbGciOiJIUzI1NiIs... ``` #### Ответ (204 No Content) Пустое тело ответа. --- ## Безопасность - **Анонимизация на стороне клиента**: данные клиентов анонимизируются в браузере до отправки на сервер - **Шифрование**: AES-256 при передаче и хранении - **Соответствие 152-ФЗ**: платформа соответствует российскому законодательству о персональных данных - **Хранение**: исходные (неанонимизированные) заметки никогда не сохраняются на сервере - **RLS**: каждый пользователь имеет доступ только к своим данным ## Лимиты | План | Анализов/мес | Вопросов для рефлексии | Отчёт для супервизора | Аналитика паттернов | |-------|-------------|------------------------|----------------------|---------------------| | Free | 3 | 1 | Нет | Нет | | Pro | ∞ | 5 | Да | Да | | Team | ∞ | 5 | Да | Да (общая) | ## Контакты - Email: bandina.larisa@yandex.ru - Сайт: https://getsyno.ru