• Как устроено
  • Быстрый старт
  • Доступ и токен
    • Страницы
      • Frontmatter
      • Синтаксис markdown
      • Переводы страниц
    • Фреймы
      • Вставки onpress/
      • Бинды data-op-bind
      • Сборка и копии
      • Фреймы в markdown
      • Фреймы с данными
    • Готовые фреймы
      • assistant
      • outline
      • faq
      • article
      • docs
      • site__header
      • site__footer
      • article__faq
      • landing
      • assistant__chat
      • site__404
      • news
      • news__category
      • news__post
      • news__more
      • news__share
      • author__page
      • author__byline
      • author__card
      • author__avatar
      • author__socials
      • author__head
      • home
      • pricing
      • page-feed
    • Данные
      • Повторитель onpress/repeat
  • Стили
  • Меню
  • Сайдбар документации
  • Языки сайта
  • Настройки и кэш
  • SEO
  • Медиа
  • Сайты и домены
  • Пользователи и профиль
  • Дашборд и вход
    • Рецепты
      • Сайт с нуля
      • Раздел документации
      • Лендинг
      • FAQ
      • Свой фрейм из готового
      • Многоязычный сайт
      • Поменять меню
      • Перенести страницу
      • Картинки в статье
      • Список из данных
      • Сменить оформление
  • Кейсы
    • Справочник API
      • Страницы
      • Переводы
      • Фреймы
      • Данные
      • Меню
      • Сайдбар документации
      • Стили
      • Настройки, главная, кэш
      • Языки
      • SEO
      • Медиа
      • Сайты
      • Пользователи и профиль
      • Вход и служебное
      • Кредиты и автоматизация
      • Входящие
      • Редиректы
      • Суперадмин
      • Кросспостинг
    • Ошибки и проблемы
      • Коды ошибок
OnPress OnPress
  • Документация
  • Контакты
Войти
  • Как устроено
  • Быстрый старт
  • Доступ и токен
    • Страницы
      • Frontmatter
      • Синтаксис markdown
      • Переводы страниц
    • Фреймы
      • Вставки onpress/
      • Бинды data-op-bind
      • Сборка и копии
      • Фреймы в markdown
      • Фреймы с данными
    • Готовые фреймы
      • assistant
      • outline
      • faq
      • article
      • docs
      • site__header
      • site__footer
      • article__faq
      • landing
      • assistant__chat
      • site__404
      • news
      • news__category
      • news__post
      • news__more
      • news__share
      • author__page
      • author__byline
      • author__card
      • author__avatar
      • author__socials
      • author__head
      • home
      • pricing
      • page-feed
    • Данные
      • Повторитель onpress/repeat
  • Стили
  • Меню
  • Сайдбар документации
  • Языки сайта
  • Настройки и кэш
  • SEO
  • Медиа
  • Сайты и домены
  • Пользователи и профиль
  • Дашборд и вход
    • Рецепты
      • Сайт с нуля
      • Раздел документации
      • Лендинг
      • FAQ
      • Свой фрейм из готового
      • Многоязычный сайт
      • Поменять меню
      • Перенести страницу
      • Картинки в статье
      • Список из данных
      • Сменить оформление
  • Кейсы
    • Справочник API
      • Страницы
      • Переводы
      • Фреймы
      • Данные
      • Меню
      • Сайдбар документации
      • Стили
      • Настройки, главная, кэш
      • Языки
      • SEO
      • Медиа
      • Сайты
      • Пользователи и профиль
      • Вход и служебное
      • Кредиты и автоматизация
      • Входящие
      • Редиректы
      • Суперадмин
      • Кросспостинг
    • Ошибки и проблемы
      • Коды ошибок
Документация OnPress v2
Markdown
Открыть в ИИ
  • Открыть в ChatGPT
  • Открыть в Claude
  • Открыть в Gemini
  • Открыть в Perplexity
  • Открыть в Grok
  • Открыть в DeepSeek

Пользователи и профиль

В v2 у сайта одна роль — администратор этого сайта. Добавить человека на сайт — значит сделать его администратором; ролей «редактор» или «читатель» в API нет. Суперадмин сети отличается охватом (видит все сайты и делает сетевые операции), а не правами на сайте.

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

Ручки под $API/site/$SITE/users; доступны администратору этого сайта и суперадмину.

Список

curl -s -H "Authorization: Bearer $OP_TOKEN" "$API/site/$SITE/users" | jq '{total, users: [.users[] | {id, invite_id, email, name, status, added_at, last_login_at}]}'
{
  "total": 2,
  "users": [
    { "id": 42, "invite_id": null, "email": "anna@example.com", "name": "Anna", "status": "active", "added_at": "2026-09-22T18:14:41.000Z", "last_login_at": "2026-09-25T09:02:10.000Z" },
    { "id": null, "invite_id": 12, "email": "new@example.com", "name": "Новый человек", "status": "invited", "added_at": "2026-09-25T20:25:37.000Z", "last_login_at": null }
  ]
}

Строка двух видов, форма одна:

ПолеСмысл
statusactive — человек сети, состоящий на сайте; invited — приглашённая почта, учётной записи ещё нет
idid пользователя; у приглашения null
invite_idid приглашения; у человека null
email, name, avatarпочта, отображаемое имя, аватар Gravatar
is_super_adminсуперадмин сети
added_atкогда добавлен на сайт (у давних — дата регистрации), у приглашения — когда приглашён
last_login_atпоследний вход; отсчёт начат 22.09.2026, у входивших раньше null
invited_byкто пригласил (у приглашения)

Сначала идут участники, затем приглашения. Суперадмин, которого не добавляли на сайт, в списке не появляется: доступ у него есть, но участником сайта он не является.

Добавить

curl -s -X POST "$API/site/$SITE/users" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"email": "new@example.com", "name": "Новый человек"}' | jq '{user: .user | {id, invite_id, status}, created, invited, already_member}'
{ "user": { "id": null, "invite_id": 12, "status": "invited" }, "created": true, "invited": true, "already_member": false }

Два исхода:

  • почта уже есть в сети — человек сразу становится администратором сайта: created: false, invited: false, в user его карточка;
  • почты в сети нет — создаётся только приглашение (201, created: true, invited: true). Ни учётной записи, ни пароля, ни письма. Как только человек войдёт с этой почтой любым способом (дашборд через Firebase, форма входа, регистрация), он получит роль администратора на всех пригласивших его сайтах, а приглашения закроются сами.

Письмо платформа не шлёт — сообщите человеку адрес дашборда сами: https://onpress.pro/dashboard/.

Отказы: 400 invalid_email (не адрес, длиннее 100 символов или запрещённый домен), 400 invalid_name, 409 already_member, 409 already_invited (в теле — карточка).

Снять с сайта

curl -s -X DELETE "$API/site/$SITE/users/42"       -H "Authorization: Bearer $OP_TOKEN" | jq .removed   # человек
curl -s -X DELETE "$API/site/$SITE/users/invite-12" -H "Authorization: Bearer $OP_TOKEN" | jq .removed   # приглашение

Человек снимается с сайта, но не удаляется из сети — он может состоять на других сайтах. Запреты: себя снять нельзя (409 cannot_remove_self), последнего администратора — нельзя (409 last_admin), суперадмина может снять только суперадмин (403 insufficient_role). Нет такого — 404 not_member или 404 invite_not_found; путь не id и не invite-<id> — 400 invalid_user_id.

Свой профиль

/me — сетевые ручки: префикса сайта нет, blog_id и заголовки выбора сайта не читаются. Каждый видит и правит только себя. Работают и с токеном, и с сессией дашборда.

curl -s -H "Authorization: Bearer $OP_TOKEN" "$API/me" | jq .
{
  "success": true,
  "user": {
    "id": 42,
    "name": "Anna",
    "email": "anna@example.com",
    "avatar": "https://secure.gravatar.com/avatar/…?s=96&d=mm&r=g",
    "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" }
}

sites_count — сколько живых сайтов вы администрируете (у суперадмина — вся сеть). api_token — только префикс и даты, сам токен здесь не бывает никогда (его отдаёт GET /me/api-token); null — токена нет.

avatar — фото аккаунта Google, если вы входили через Google, иначе фото Telegram, иначе Gravatar по почте (серый силуэт, если на Gravatar картинки нет). Фото Google обновляется при каждом входе. Тот же адрес — в строках списка пользователей сайта.

Изменить

curl -s -X PATCH "$API/me" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"name": "Анна", "dashboard_lang": "ru"}' | jq .user
ПолеПравило
nameотображаемое имя, не пустое, до 250 символов
emailадрес, свободный во всей сети (409 email_taken); меняется сразу, без письма-подтверждения
dashboard_langязык интерфейса дашборда: en или ru; "" — сбросить выбор (дашборд снова угадывает по браузеру). Это не язык сайта и не язык содержимого

Пустое тело — 400 nothing_to_update. Ответ — тот же вид, что у GET /me. Пароля в профиле нет: вход идёт через Firebase. Своей загрузки аватара нет.

Токен

# показать свой действующий токен
curl -s "$API/me/api-token" -H "Authorization: Bearer $OP_TOKEN" | jq -r .token

# выпустить заново: новый токен в поле token
curl -s -X POST "$API/me/api-token" -H "Authorization: Bearer $OP_TOKEN" | jq '{prefix: .api_token.prefix, token}'

# отозвать
curl -s -X DELETE "$API/me/api-token" -H "Authorization: Bearer $OP_TOKEN" | jq '{revoked, api_token}'

Показать можно токен, выпущенный с 1 октября 2026 года; более старый отвечает 409 token_not_recoverable — его нужно один раз выпустить заново. Перевыпуск убивает прежний токен сразу, отзыв оставляет без токена (revoked: true, если было что отзывать). В дашборде то же самое: меню пользователя → «Настройки» → «API-ключи» (https://onpress.pro/dashboard/settings/api), блоки «Токен API» и «Отзыв токена». Подробно про свойства токена — доступ.

arrow_backНазад
Сайты и домены
Далееarrow_forward
Дашборд и вход
На этой странице
  • Пользователи сайта
    • Список
      • Добавить
        • Снять с сайта
      • Свой профиль
        • Изменить
          • Токен
        1. Главная
        2. Docs
        3. Документация OnPress v2
        4. Документация OnPress v2
        5. Пользователи и профиль
        OnPress
        OnPress
        ИП Зуев И.В. ИНН: 360408359441
        info@onpress.pro
        © 2026
        политика конфиденциальности публичная оферта
        • visa
        • mastercard
        • sber
        • tpay