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

Состояние API

Здесь проверка сервиса и эндпоинты входа в консоль; агенту с токеном op_ из них нужен только GET /health, а как устроен вход для человека — на странице «Дашборд и вход».

info

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

GET /health

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

curl -s "$API/health"
{ "ok": true, "db": true, "realm": "prod" }
ПолеТипОписание
okbooleanсервис отвечает
dbbooleanбаза доступна
realmстрокаконтур экземпляра API: prod у рабочего адреса https://onpress.pro/api/v2
КодСтатусКогдаЧто делать
—503сервис жив, база недоступна: "db": falseповторить позже

Эндпоинты /auth

Эндпоинты /auth обслуживают сессию консоли и работают без префикса сайта. Все они, кроме GET /auth/me, принимают только POST; на GET они отвечают 405 method_not_allowed с заголовком Allow: POST. Все, кроме входа, работают по кукам сессии, а запрос с чужого адреса отклоняется 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 на сессию консоли. Вход принимается почтой с паролем и через Google; почта должна быть подтверждена, а человек — уже быть пользователем OnPress или приглашённым на сайт. Ответ — 201 и две httpOnly-куки: сессионная на 15 минут и долгая для продления на 30 дней. Например:

curl -s -X POST "$API/auth/session" \
  -H "Authorization: Bearer $FIREBASE_ID_TOKEN"
ПолеГдеТипПо умолчаниюОписание
ID-токенAuthorization: Bearerстрока—ID-токен Firebase после входа
id_tokenтелострока—то же, если заголовка нет
{
  "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 обновляет фото при каждом входе.

КодСтатусКогдаЧто делать
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вход не настроен на сервереповторить позже

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строка—остальные поля виджета, как он их прислал
КодСтатусКогдаЧто делать
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
КодСтатусКогдаЧто делать
no_session401нет долгой кукивойти заново
session_expired401сессия истекла или отозванавойти заново
user_not_found403пользователя больше нет—

POST /auth/logout

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

curl -s -X POST "$API/auth/logout" -b cookies.txt
{ "success": true, "revoked": 1 }

POST /auth/logout-all

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

curl -s -X POST "$API/auth/logout-all" -b cookies.txt
{ "success": true, "revoked": 3 }
КодСтатусКогдаЧто делать
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
}
КодСтатусКогдаЧто делать
no_session401нет действующей сессиивойти
user_not_found403пользователя больше нет—

POST /auth/ticket

Выдаёт одноразовый билет на две минуты для запроса консоли к API на домене сайта: кука консоли на чужой домен не едет. Билет выдаётся только по сессии консоли; с токеном op_ он не нужен — API на домене сайта принимает токен напрямую. Сайт называется полем site_id, blog_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_idстрока—id сайта
blog_idчисло—номер сайта, если site_id не задан
domainстрока—домен сайта, если не задано ни то ни другое
{ "success": true, "ticket": "…", "issued_at": 1793135000, "expires_at": 1793135120, "blog_id": 233, "jti": "…", "ttl": 120 }
КодСтатусКогдаЧто делать
no_session401нет сессии консоли — например, запрос с токеном op_с токеном обращаться к API сайта напрямую
blog_required400сайт не названпередать site_id
invalid_blog_id400blog_id — не положительное целоепередать site_id
site_not_found404сайта с таким id или доменом нетпроверить id сайта
insufficient_role403у вас нет доступа к этому сайту—
cross_origin403запрос не с адреса консолизапросить билет из консоли
arrow_backНазад
Медиа
Далееarrow_forward
Редиректы
На этой странице
  • GET /health
    • Эндпоинты /auth
      • POST /auth/session
        • POST /auth/telegram
          • POST /auth/refresh
            • POST /auth/logout
              • POST /auth/logout-all
                • GET /auth/me
                  • POST /auth/ticket
                1. Главная
                2. Docs
                3. Документация OnPress v2
                4. Справочник API
                5. Состояние API
                OnPress
                OnPress
                ИП Зуев И.В. ИНН: 360408359441
                info@onpress.pro
                © 2026
                политика конфиденциальности публичная оферта
                • visa
                • mastercard
                • sber
                • tpay