• Быстрый старт
    • Демо
  • УСТРОЙСТВО
    • Страницы
      • Markdown
      • Аналитика страниц
    • Фреймы
      • Поля данных
      • Сборка
    • Данные
    • Приложения
      • Данные приложения
    • Медиа
  • УПРАВЛЕНИЕ
    • Создание сайтов
    • Настройки
    • Меню
    • Языки
    • Свой домен
    • Пользователи
    • Стили и оформление
    • Соцсети и контакты
    • Ошибки и проблемы
  • ИНСТРУМЕНТЫ
    • SEO
    • Индексация
    • Кросспостинг
    • Аналитика
    • Кэш
    • Почта на домене
    • Редиректы
  • КЕЙСЫ
    • Загрузить HTML
    • Миграция
    • Перевод страницы
    • Чат с OpenAI
    • Справочник API
    • Общие правила
  • УСТРОЙСТВО
    • Страницы
    • Фреймы
      • Поля данных
      • Повторитель
      • Вставка фрейма и служебные блоки
      • Готовые фреймы
      • Сборка
    • Данные
    • Медиа
  • УПРАВЛЕНИЕ
    • Создание сайтов
    • Настройки
    • Меню
    • Языки
    • Свой домен
    • Пользователи
    • Кредиты
    • Автоматизация
    • Авторизация
      • Состояние API
    • Стили и оформление
    • Соцсети и контакты
    • Ошибки и проблемы
  • ИНСТРУМЕНТЫ
    • SEO
      • Семантика
    • Индексация
    • Кросспостинг
    • Аналитика
    • Кэш
    • Почта на домене
    • Редиректы
OnPress OnPress
Документация Справочник API Контакты
Войти Начать
Документация Справочник API Контакты Войти
    • Быстрый старт
    • Демо
  • УСТРОЙСТВО
    • Страницы
      • Markdown
      • Аналитика страниц
    • Фреймы
      • Поля данных
      • Сборка
    • Данные
    • Приложения
      • Данные приложения
    • Медиа
  • УПРАВЛЕНИЕ
    • Создание сайтов
    • Настройки
    • Меню
    • Языки
    • Свой домен
    • Пользователи
    • Стили и оформление
    • Соцсети и контакты
    • Ошибки и проблемы
  • ИНСТРУМЕНТЫ
    • SEO
    • Индексация
    • Кросспостинг
    • Аналитика
    • Кэш
    • Почта на домене
    • Редиректы
  • КЕЙСЫ
    • Загрузить HTML
    • Миграция
    • Перевод страницы
    • Чат с OpenAI
    • Справочник API
    • Общие правила
  • УСТРОЙСТВО
    • Страницы
    • Фреймы
      • Поля данных
      • Повторитель
      • Вставка фрейма и служебные блоки
      • Готовые фреймы
      • Сборка
    • Данные
    • Медиа
  • УПРАВЛЕНИЕ
    • Создание сайтов
    • Настройки
    • Меню
    • Языки
    • Свой домен
    • Пользователи
    • Кредиты
    • Автоматизация
    • Авторизация
      • Состояние API
    • Стили и оформление
    • Соцсети и контакты
    • Ошибки и проблемы
  • ИНСТРУМЕНТЫ
    • SEO
      • Семантика
    • Индексация
    • Кросспостинг
    • Аналитика
    • Кэш
    • Почта на домене
    • Редиректы
Справочник API Управление Авторизация
Markdown
Открыть в ИИ
  • Открыть в ChatGPT
  • Открыть в Claude
  • Открыть в Gemini
  • Открыть в Perplexity
  • Открыть в Grok
  • Открыть в DeepSeek

Состояние API

API состояния и сессий позволяет проверить доступность сервиса, открыть и продлить сессию консоли, выйти и получить билет для запроса к сайту.

МетодПутьДействие
GET/healthПроверить состояние API
POST/auth/sessionОткрыть сессию
POST/auth/telegramВойти через Telegram
POST/auth/refreshПродлить сессию
POST/auth/logoutЗакрыть текущую сессию
POST/auth/logout-allЗакрыть все свои сессии
GET/auth/meПолучить текущую сессию
POST/auth/ticketПолучить билет для запроса к сайту
info

Во всех примерах API — https://onpress.pro/api/v2, SITE — id сайта (SITE_ID), OP_TOKEN — токен op_XXXX. Полный перечень эндпоинтов — в справочнике API.

Проверить состояние API

GET /health

Отвечает, жив ли сервис и доступна ли база; токен не нужен, префикса сайта нет. Например:

curl -s "$API/health"

Параметры пути. У операции нет собственных параметров пути.

Параметры строки запроса. Дополнительных параметров нет.

Тело запроса. Не требуется.

Ответ

{ "ok": true, "db": true, "realm": "prod" }
ПолеТипОписание
okbooleanсервис отвечает
dbbooleanбаза доступна
realmстрокаокружение экземпляра API: prod у https://onpress.pro/api/v2

Ошибки

КодHTTPКогдаЧто делать
—503сервис жив, база недоступна: "db": falseповторить позже

Эндпоинты /auth

Эндпоинты /auth обслуживают сессию консоли и работают без префикса сайта. Все они, кроме GET /auth/me, принимают только POST; на GET они отвечают 405 method_not_allowed с заголовком Allow: POST. Все, кроме входа, работают по кукам сессии, а на запрос с чужого адреса API отвечает 403 cross_origin. Отказы приходят в форме {code, message, data: {status}}, попыток входа — до 30 в минуту с одного адреса. Например, проверка сессии без куки:

curl -s "$API/auth/me"
{ "code": "no_session", "message": "sign in first", "data": { "status": 401 } }

Открыть сессию

POST /auth/session

Обменивает ID-токен Firebase на сессию консоли. API принимает вход почтой с паролем и через Google; почта должна быть подтверждена, а человек — уже быть пользователем OnPress или приглашенным на сайт. Ответ — 201 и две httpOnly-куки: сессионная на 15 минут и долгая для продления на 30 дней. Например:

curl -s -X POST "$API/auth/session" \
  -H "Authorization: Bearer $FIREBASE_ID_TOKEN"

Параметры пути. У операции нет собственных параметров пути.

Заголовки. Передайте ID-токен в Authorization: Bearer либо id_token в теле JSON.

Параметры строки запроса. Дополнительных параметров нет.

Параметры тела

ПараметрТипОбязателенПо умолчаниюОписание
id_tokenstringесли нет Authorization—ID-токен Firebase после входа; заголовок Authorization: Bearer имеет приоритет

Ответ

{
  "success": true,
  "user": { "id": 42, "email": "anna@example.com", "name": "Anna", "avatar": "https://lh3.googleusercontent.com/…", "is_super_admin": false },
  "session": { "id": "…", "expires_at": "…", "expires_in": 900, "realm": "prod" },
  "impersonated_by": null
}

avatar — фото Google, иначе Telegram, иначе Gravatar; вход через Google обновляет фото при каждом входе.

Ошибки

КодHTTPКогдаЧто делать
missing_id_token401нет ID-токенапередать токен в Authorization: Bearer
invalid_id_token401ID-токен не прошел проверку или истеквойти в Firebase заново
email_required403у аккаунта Firebase нет почтывойти почтой или через Google
email_not_verified403почта не подтвержденаоткрыть письмо Firebase и подтвердить
provider_not_allowed403вход не почтой и не через Googleвойти почтой с паролем или через Google
user_not_found403почты нет среди пользователей OnPressпопросить администратора сайта добавить почту
cross_origin403запрос не с адреса консоливойти из консоли
too_many_requests429больше 30 попыток входа в минутуподождать Retry-After секунд
auth_not_configured503вход не настроен на сервереповторить позже

Войти через Telegram

POST /auth/telegram

Открывает сессию по данным виджета входа Telegram; аккаунт Telegram должен быть уже привязан к пользователю OnPress. Ответ и куки — как у POST /auth/session. Например:

curl -s -X POST "$API/auth/telegram" \
  -H "Content-Type: application/json" \
  -d '{"id": 123456789, "first_name": "Anna", "auth_date": 1793135000, "hash": "…"}'

Параметры пути. У операции нет собственных параметров пути.

Параметры строки запроса. Дополнительных параметров нет.

Параметры тела

ПолеТипОбязателенПо умолчаниюОписание
idчислода—id пользователя Telegram
auth_dateчислода—время входа, unix; не старше суток
hashстрокада—подпись виджета
first_name, last_name, username, photo_urlстроканет—остальные поля виджета, как он их прислал

Ответ

{
  "success": true,
  "user": {
    "id": 42,
    "email": "anna@example.com",
    "name": "Anna",
    "avatar": null,
    "is_super_admin": false
  },
  "session": {
    "id": "SESSION_ID",
    "expires_at": "2026-10-30T16:15:00.000Z",
    "expires_in": 900,
    "realm": "prod"
  },
  "impersonated_by": null
}

Ошибки

КодHTTPКогдаЧто делать
invalid_telegram_data400нет id, auth_date или hashпередать данные виджета целиком
invalid_telegram_hash401подпись не сходитсявойти через виджет заново
telegram_auth_expired401вход старше сутоквойти через виджет заново
user_not_found403Telegram не привязан к пользователю OnPressвойти почтой или через Google
cross_origin403запрос не с адреса консоливойти из консоли
too_many_requests429больше 30 попыток входа в минутуподождать Retry-After секунд

Продлить сессию

POST /auth/refresh

Продлевает сессию по долгой куке и меняет ее секрет. Ответ — как у POST /auth/session, со статусом 200. Например:

curl -s -X POST "$API/auth/refresh" -b cookies.txt -c cookies.txt

Параметры пути. У операции нет собственных параметров пути.

Параметры строки запроса. Дополнительных параметров нет.

Тело запроса. Не требуется.

Ответ

{
  "success": true,
  "user": {
    "id": 42,
    "email": "anna@example.com",
    "name": "Anna",
    "avatar": null,
    "is_super_admin": false
  },
  "session": {
    "id": "SESSION_ID",
    "expires_at": "2026-10-30T16:15:00.000Z",
    "expires_in": 900,
    "realm": "prod"
  },
  "impersonated_by": null
}

Ошибки

КодHTTPКогдаЧто делать
no_session401нет долгой кукивойти заново
session_expired401сессия истекла или отозванавойти заново
user_not_found403пользователя больше нетпроверьте параметр из message и повторите запрос

Закрыть текущую сессию

POST /auth/logout

Закрывает сессию на этом устройстве и стирает куки. Если сессии уже нет, запрос завершается успешно с revoked: 0. Например:

curl -s -X POST "$API/auth/logout" -b cookies.txt

Параметры пути. У операции нет собственных параметров пути.

Параметры строки запроса. Дополнительных параметров нет.

Тело запроса. Не требуется.

Ответ

{ "success": true, "revoked": 1 }

Ошибки

КодHTTPКогдаЧто делать
cross_origin403Origin не совпадает с адресом консолиотправьте запрос из консоли

Закрыть все свои сессии

POST /auth/logout-all

Закрывает все сессии пользователя на всех устройствах; токен API продолжает работать. Например:

curl -s -X POST "$API/auth/logout-all" -b cookies.txt

Параметры пути. У операции нет собственных параметров пути.

Параметры строки запроса. Дополнительных параметров нет.

Тело запроса. Не требуется.

Ответ

{ "success": true, "revoked": 3 }

Ошибки

КодHTTPКогдаЧто делать
no_session401нет действующей сессиивойти

Получить текущую сессию

GET /auth/me

Возвращает, кто вошел, и id сессии; профиль целиком — GET /me из справочника пользователей. Например:

curl -s "$API/auth/me" -b cookies.txt

Параметры пути. У операции нет собственных параметров пути.

Параметры строки запроса. Дополнительных параметров нет.

Тело запроса. Не требуется.

Ответ

{
  "success": true,
  "user": { "id": 42, "email": "anna@example.com", "name": "Anna", "avatar": "https://lh3.googleusercontent.com/…", "is_super_admin": false },
  "session": { "id": "…", "realm": "prod" },
  "impersonated_by": null
}

Ошибки

КодHTTPКогдаЧто делать
no_session401нет действующей сессиивойти
user_not_found403пользователя больше нетпроверьте параметр из message и повторите запрос

Получить билет для запроса к сайту

POST /auth/ticket

Выдает одноразовый билет на две минуты для запроса консоли к API на домене сайта: браузер не отправляет куку консоли на чужой домен. API выдает билет только по сессии консоли; с токеном op_ билет не нужен — API на домене сайта принимает токен напрямую. Назовите сайт полем site_id или domain в теле или строке запроса, а билет передайте сайту заголовком Authorization: Bearer или X-OnPress-Ticket. Например:

curl -s -X POST "$API/auth/ticket" -b cookies.txt \
  -H "Content-Type: application/json" \
  -d '{"site_id": "x9HTLHECq"}'

Параметры пути. У операции нет собственных параметров пути.

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

ПараметрТипОбязателенПо умолчаниюОписание
site_idstringsite_id или domain—id сайта, если его нет в теле
domainstringесли нет site_id—домен сайта, если его нет в теле

Параметры тела

ПолеТипОбязателенПо умолчаниюОписание
site_idстрокаsite_id или domain—id сайта
domainстрокаесли нет site_id—домен сайта, если site_id не задан

Ответ

{ "success": true, "ticket": "…", "issued_at": 1793135000, "expires_at": 1793135120, "blog_id": 233, "jti": "…", "ttl": 120 }
ПолеОписание
ticketбилет
issued_at, expires_atвремя выдачи и конца действия, unix
blog_idвнутренний id сайта
jtiid билета
ttlсрок действия в секундах

Ошибки

КодHTTPКогдаЧто делать
no_session401нет сессии консоли — например, запрос с токеном op_с токеном обращаться к API сайта напрямую
blog_required400сайт не названпередать site_id
site_not_found404сайта с таким site_id или доменом нетпроверить site_id или домен
insufficient_role403вы не администратор этого сайтавойти под администратором сайта
cross_origin403запрос не с адреса консолизапросить билет из консоли
arrow_backНазад
Авторизация
Далееarrow_forward
Данные
На этой странице
  • Проверить состояние API
    • Ответ
      • Ошибки
    • Эндпоинты /auth
      • Открыть сессию
        • Параметры тела
          • Ответ
            • Ошибки
          • Войти через Telegram
            • Параметры тела
              • Ответ
                • Ошибки
              • Продлить сессию
                • Ответ
                  • Ошибки
                • Закрыть текущую сессию
                  • Ответ
                    • Ошибки
                  • Закрыть все свои сессии
                    • Ответ
                      • Ошибки
                    • Получить текущую сессию
                      • Ответ
                        • Ошибки
                      • Получить билет для запроса к сайту
                        • Параметры строки запроса
                          • Параметры тела
                            • Ответ
                              • Ошибки
                            1. Главная
                            2. Docs
                            3. Документация OnPress v2
                            4. Справочник API
                            5. Авторизация
                            6. Состояние API
                            © 2026 OnPress ИП Зуев И.В. ИНН: 360408359441 info@onpress.pro Политика конфиденциальности Публичная оферта
                            • Visa
                            • Mastercard
                            • Сбер Pay
                            • T-Pay