• Docs
        • Документация OnPress v2
            • Документация OnPress v2
              • Как устроена платформа
              • Быстрый старт
              • Доступ, роли и выбор сайта
                • Страницы
                  • Frontmatter: все поля
                  • Синтаксис markdown
                  • Языки и переводы страниц
                • Фреймы
                  • Вставки onpress/
                  • Бинды data-op-bind
                  • Сборка страницы и статическая копия
                • Готовые фреймы
                  • Фрейм 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: тарифы
                • Наборы данных и системные источники
                  • Повторитель onpress/repeat
              • Стили и оформление
              • Меню
              • Сайдбар документации
              • Языки сайта
              • Настройки, главная и кэш
              • SEO
              • Медиа
              • Сайты и домены
              • Пользователи и профиль
              • Дашборд и вход
                • Рецепты
                  • Сайт с нуля
                  • Раздел документации
                  • Лендинг из конструктора
                  • FAQ на странице
                  • Свой фрейм из готового
                  • Многоязычный сайт
                  • Поменять меню
                  • Перенести страницу
                  • Картинки в статье
                  • Список из данных
                  • Сменить оформление
                • Справочник API
                  • Справочник: страницы
                  • Справочник: переводы
                  • Справочник: фреймы
                  • Справочник: данные
                  • Справочник: меню
                  • Справочник: сайдбар документации
                  • Справочник: стили
                  • Справочник: настройки, главная, кэш
                  • Справочник: языки
                  • Справочник: SEO
                  • Справочник: медиа
                  • Справочник: сайты
                  • Справочник: пользователи и профиль
                  • Справочник: вход и служебное
                • Ошибки и частые проблемы
                  • Коды ошибок
        • Старая документация v1
            • Старая документация v1
              • Начало
              • Привязка домена
              • Виджеты
              • Структура ссылок
              • Connector.js
              • Шапка
              • Подвал
              • Мультиязычность
              • Меню
              • Как настроить стили сайта через Design
              • Schema разметка
              • Open Graph
              • Аналитика
              • FAQ
              • Robots.txt
              • Sitemap
OnPress OnPress
  • Документация
  • Контакты
Войти
    • Docs
        • Документация OnPress v2
            • Документация OnPress v2
              • Как устроена платформа
              • Быстрый старт
              • Доступ, роли и выбор сайта
                • Страницы
                  • Frontmatter: все поля
                  • Синтаксис markdown
                  • Языки и переводы страниц
                • Фреймы
                  • Вставки onpress/
                  • Бинды data-op-bind
                  • Сборка страницы и статическая копия
                • Готовые фреймы
                  • Фрейм 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: тарифы
                • Наборы данных и системные источники
                  • Повторитель onpress/repeat
              • Стили и оформление
              • Меню
              • Сайдбар документации
              • Языки сайта
              • Настройки, главная и кэш
              • SEO
              • Медиа
              • Сайты и домены
              • Пользователи и профиль
              • Дашборд и вход
                • Рецепты
                  • Сайт с нуля
                  • Раздел документации
                  • Лендинг из конструктора
                  • FAQ на странице
                  • Свой фрейм из готового
                  • Многоязычный сайт
                  • Поменять меню
                  • Перенести страницу
                  • Картинки в статье
                  • Список из данных
                  • Сменить оформление
                • Справочник API
                  • Справочник: страницы
                  • Справочник: переводы
                  • Справочник: фреймы
                  • Справочник: данные
                  • Справочник: меню
                  • Справочник: сайдбар документации
                  • Справочник: стили
                  • Справочник: настройки, главная, кэш
                  • Справочник: языки
                  • Справочник: SEO
                  • Справочник: медиа
                  • Справочник: сайты
                  • Справочник: пользователи и профиль
                  • Справочник: вход и служебное
                • Ошибки и частые проблемы
                  • Коды ошибок
        • Старая документация v1
            • Старая документация v1
              • Начало
              • Привязка домена
              • Виджеты
              • Структура ссылок
              • Connector.js
              • Шапка
              • Подвал
              • Мультиязычность
              • Меню
              • Как настроить стили сайта через Design
              • Schema разметка
              • Open Graph
              • Аналитика
              • FAQ
              • Robots.txt
              • Sitemap
Документация 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 — только префикс и даты, сам токен здесь не бывает никогда; null — токена нет.

Изменить

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. Аватар — Gravatar по почте, своей загрузки нет.

Токен

# выпустить заново — единственный раз, когда токен виден
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}'

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

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