• Быстрый старт
    • Доступ и токен
  • СУЩНОСТИ
    • Страницы
      • 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

Справочник: пользователи и профиль

Здесь все эндпоинты пользователей сайта (/site/$SITE/users) и своего профиля (/me) с параметрами, ответами и отказами; зачем они и как ими пользоваться — на странице «Пользователи и профиль».

info

Во всех примерах API — https://onpress.pro/api/v2, SITE — id сайта (SITE_ID), OP_TOKEN — токен op_XXXX. Эндпоинты /me пишутся без /site/$SITE: они про вас, а не про сайт. Как получить токен и в какой форме приходят отказы — на странице «Доступ и токен».

Пользователи сайта

У сайта одна роль — администратор: каждый пользователь сайта читает и правит его целиком. Все три эндпоинта доступны только администратору сайта, остальным — 403 insufficient_role.

GET /users

Отдаёт пользователей сайта и приглашения: сначала пользователи по id, за ними приглашения по времени. Например:

curl -s "$API/site/$SITE/users" -H "Authorization: Bearer $OP_TOKEN"
{
  "success": true,
  "site_id": "x9HTLHECq",
  "total": 2,
  "users": [
    { "id": 42, "invite_id": null, "email": "anna@example.com", "name": "Anna", "avatar": "https://lh3.googleusercontent.com/…", "added_at": "2026-09-20T10:00:00.000Z", "last_login_at": "2026-10-27T09:02:10.000Z", "status": "active", "invited_by": null },
    { "id": null, "invite_id": 12, "email": "boris@example.com", "name": "Boris", "avatar": "https://secure.gravatar.com/avatar/…?s=96&d=mm&r=g", "added_at": "2026-10-25T20:25:37.000Z", "last_login_at": null, "status": "invited", "invited_by": 42 }
  ]
}
ПолеОписание
idid пользователя; у приглашения null
invite_idid приглашения; у пользователя null
email, nameпочта и имя
avatarфото, как в профиле
added_atкогда добавлен или приглашён
last_login_atпоследний вход; null — входов не было
statusactive — пользователь, invited — приглашение ещё не принято
invited_byid того, кто пригласил

can_impersonate в корне ответа — служебный признак консоли, агенту он не нужен.

POST /users

Добавляет человека на сайт администратором по почте. Если у почты уже есть учётная запись, человек сразу становится администратором сайта; если нет — создаётся приглашение, и он станет администратором после первого входа. Ответ приходит со статусом 201. Например, пригласить Бориса:

curl -s -X POST "$API/site/$SITE/users" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"email": "boris@example.com", "name": "Boris"}'
ПолеТипПо умолчаниюОписание
emailstring—почта, до 100 символов
namestring""имя для приглашения, до 250 символов
{ "success": true, "site_id": "x9HTLHECq", "user": { "id": null, "invite_id": 12, "email": "boris@example.com", "status": "invited", "…": "…" }, "created": true, "already_member": false, "invited": true }

invited: true — создано приглашение; invited: false — почта уже была на платформе, человек добавлен сразу.

КодСтатусКогдаЧто делать
invalid_email400не адрес почты или длиннее 100 символовисправьте email
invalid_name400name не строка или длиннее 250 символовисправьте name
insufficient_role403вы не администратор этого сайта—
already_member409человек уже на сайте; карточка в userничего делать не нужно
already_invited409приглашение уже есть; карточка в userничего делать не нужно

DELETE /users/{id}

Снимает пользователя с сайта или отзывает приглашение; учётная запись на платформе остаётся. {id} — id пользователя или invite-<id> приглашения. Например, отозвать приглашение 12:

curl -s -X DELETE "$API/site/$SITE/users/invite-12" -H "Authorization: Bearer $OP_TOKEN"
{ "success": true, "site_id": "x9HTLHECq", "removed": { "id": null, "invite_id": 12, "email": "boris@example.com", "name": "Boris" } }
КодСтатусКогдаЧто делать
invalid_user_id400в пути не число и не invite-<id>исправьте путь
insufficient_role403вы не администратор этого сайта—
not_member404такого пользователя на сайте нетпроверьте id в GET /users
invite_not_found404такого приглашения нетпроверьте invite_id
cannot_remove_self409снять себя нельзяпопросите другого администратора
last_admin409это последний администратор сайтасначала добавьте другого

Свой профиль

GET /me

Отдаёт ваш профиль, число ваших сайтов и сведения о токене. Например:

curl -s "$API/me" -H "Authorization: Bearer $OP_TOKEN"
{
  "success": true,
  "user": { "id": 42, "name": "Anna", "email": "anna@example.com", "avatar": "…", "is_super_admin": false, "registered": "2025-03-01T10:00:00.000Z", "last_login_at": "2026-09-25T09:02:10.000Z", "dashboard_lang": "ru" },
  "sites_count": 3,
  "api_token": { "prefix": "op_xxxxxxxx", "created_at": "2026-09-16T13:04:25.000Z", "last_used_at": "2026-09-25T20:11:36.000Z" },
  "impersonated_by": null
}
ПолеОписание
user.dashboard_langязык консоли: en, ru или "" — по языку браузера
sites_countсколько у вас сайтов
api_tokenпрефикс, дата выпуска и последнего обращения; null — токена нет. Сам токен отдаёт GET /me/api-token

Аватар

user.avatar — фото аккаунта Google, если вы входили через Google; иначе фото Telegram, если входили через Telegram; иначе Gravatar по почте (серый силуэт, если картинки на Gravatar нет). Фото Google обновляется при каждом входе через Google. Тот же адрес отдают строки GET /users. Своей загрузки аватара нет. Картинки Google не открываются со сторонним Referer — выводите их с referrerpolicy="no-referrer".

PATCH /me

Меняет имя, почту или язык консоли; передайте одно поле или несколько. Ответ — как у GET /me. Например, сменить имя:

curl -s -X PATCH "$API/me" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"name": "Anna"}'
ПолеТипПо умолчаниюОписание
namestring—не пустое, до 250 символов
emailstring—адрес почты, свободный на платформе
dashboard_langstring—en, ru или "" — по языку браузера
КодСтатусКогдаЧто делать
nothing_to_update400нет ни одного поляпередайте name, email или dashboard_lang
invalid_name400пустое или длиннее 250 символовисправьте name
invalid_email400не адрес почтыисправьте email
invalid_dashboard_lang400язык не поддерживается; допустимые — в allowedвозьмите значение из allowed
email_taken409почта занята другой учётной записьювыберите другую

Вход и пароль

Оба эндпоинта работают с входом того пользователя, чьим токеном или сессией сделан запрос. Если служба входа временно недоступна, они отвечают 503 firebase_admin_key_missing или 503 auth_not_configured — повторите позже.

GET /me/auth

Отдаёт, чем вы на самом деле входите: есть ли пароль и подключён ли Google. Ответ не кэшируется. Например:

curl -s "$API/me/auth" -H "Authorization: Bearer $OP_TOKEN"
{
  "success": true,
  "email": "anna@example.com",
  "last_login_at": "2026-10-07T10:04:19.000Z",
  "firebase": "linked",
  "has_password": true,
  "google": { "email": "anna@example.com" }
}
ПолеОписание
emailпочта учётной записи
last_login_atпоследний вход; null — входов не было
firebaselinked — аккаунт входа найден; none — входа ещё нет
has_passwordможно ли войти по почте с паролем
google{email} — вход через Google подключён; null — нет

firebase: "none", has_password: false и google: null вместе — не ошибка, а честное «входа ещё нет»: пароль можно задать через POST /me/password.

POST /me/password

Задаёт вам новый пароль. Пароль был — он заменяется; пароля не было (вход только через Google) — он добавляется, а вход через Google сохраняется. Подтверждение вторым полем и прежний пароль не нужны: правом служит сам токен или сессия. Не больше 20 запросов в минуту. Например:

curl -s -X POST "$API/me/password" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"password": "NEW_PASSWORD"}'
ПолеТипПо умолчаниюОписание
passwordstring—от 8 до 4096 символов
{ "success": true, "user": { "id": 42, "email": "anna@example.com", "name": "Anna" } }
КодСтатусКогдаЧто делать
weak_password400короче 8 символов или слишком простойвозьмите пароль сложнее
invalid_password400длиннее 4096 символовсократите
user_not_found404учётной записи нет или она заблокировананапишите в поддержку
no_email409у учётной записи нет почтызадайте почту через PATCH /me
firebase_email_taken409эту почту уже занял другой аккаунт входанапишите в поддержку
firebase_admin_error502служба входа отказала, код в firebase_codeповторите позже

Токен API

GET /me/api-token

Отдаёт ваш действующий токен целиком — например, чтобы передать его агенту. Токен хранится зашифрованным, поэтому показывается сколько угодно раз, но только выпущенный с 1 октября 2026 года: у более старых сохранён только отпечаток, их нужно один раз выпустить заново. Ответ с Cache-Control: no-store. Например:

curl -s "$API/me/api-token" -H "Authorization: Bearer $OP_TOKEN"
{ "success": true, "token": "op_XXXX" }
КодСтатусКогдаЧто делать
token_missing404токена нетвыпустите его через POST /me/api-token
token_not_recoverable409токен выпущен до 1 октября 2026 годавыпустите заново

POST /me/api-token

Выпускает токен заново. Прежний токен перестаёт работать сразу — у всех скриптов и агентов, которые им пользуются. Ответ — как у GET /me плюс token — новый токен целиком; потом его можно снова получить через GET /me/api-token. Например:

curl -s -X POST "$API/me/api-token" -H "Authorization: Bearer $OP_TOKEN"

DELETE /me/api-token

Отзывает токен: войти по нему больше нельзя. Ответ — как у GET /me с api_token: null и revoked — true, если было что отзывать. Например:

curl -s -X DELETE "$API/me/api-token" -H "Authorization: Bearer $OP_TOKEN"
arrow_backНазад
Языки
Далееarrow_forward
Справочник: входящие
На этой странице
  • Пользователи сайта
    • GET /users
      • POST /users
        • DELETE /users/{id}
      • Свой профиль
        • GET /me
          • Аватар
            • PATCH /me
          • Вход и пароль
            • GET /me/auth
              • POST /me/password
            • Токен API
              • GET /me/api-token
                • POST /me/api-token
                  • DELETE /me/api-token
                1. Главная
                2. Docs
                3. Документация OnPress v2
                4. Справочник API
                5. Справочник: пользователи и профиль
                OnPress
                OnPress
                ИП Зуев И.В. ИНН: 360408359441
                info@onpress.pro
                © 2026
                политика конфиденциальности публичная оферта
                • visa
                • mastercard
                • sber
                • tpay