• Как устроено
  • Быстрый старт
  • Доступ и токен
    • Страницы
      • 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
      • Медиа
      • Сайты
      • Пользователи и профиль
      • Вход и служебное
      • Кредиты и автоматизация
      • Входящие
      • Редиректы
      • Суперадмин
      • Кросспостинг
    • Ошибки и проблемы
      • Коды ошибок
Справочник API
Markdown
Открыть в ИИ
  • Открыть в ChatGPT
  • Открыть в Claude
  • Открыть в Gemini
  • Открыть в Perplexity
  • Открыть в Grok
  • Открыть в DeepSeek

Справочник: входящие

Что здесь. Письма, которые приходят на любой адрес домена сайта (info@, sales@, support@), сшиваются в переписки. Отсюда их читают, отвечают письмом, убирают в архив и держат шаблоны ответа. В дашборде это раздел «Входящие», настройки ящика — «Настройки → Почта сайта». Каждая ручка, поле и код отказа на этой странице сверены с кодом; чтение, отметки и настройки прогнаны вызовом на тестовом сайте.

Адреса. Ручки сайта: https://onpress.pro/api/v2/site/{siteId}/inbox/…, права — администратор сайта или суперадмин сети. В примерах op_XXXX — ваш токен, SITE_ID — внешний идентификатор сайта (поле site_id ответа GET /sites/{id}). Как выбирается сайт и в какой форме приходят отказы — доступ.

Модель. У переписки два признака: прочитана она или нет (unread) и лежит во входящих или в архиве (archived). Статусов «открыта» и «закрыта» нет. Новое письмо делает переписку непрочитанной и возвращает её из архива во входящие.

Переписки

ПунктРучкаТело
СписокGET /inbox/threads?archived=0&unread=1&q=…
Ящики и счётчикиGET /inbox/filters—
Счётчик непрочитанныхGET /inbox/unread-count—
Прочитать всёPOST /inbox/read-all{}
Переписка с письмамиGET /inbox/threads/{id}?mark_read=0
Архив и «прочитано»PATCH /inbox/threads/{id}{"archived": true}, {"read": false}
Письмо как пришлоGET /inbox/threads/{id}/messages/{mid}/html—
Исходник письмаGET /inbox/messages/{id}/raw—
ВложениеGET /inbox/attachments/{id}—

Список

Параметры, все необязательные:

ПараметрЗначенияПо умолчанию
archived0 — входящие, 1 — архив, all — всё0
unread1 — только непрочитанные, 0 — только прочитанныевсе
mailboxадрес ящика, на который писаливсе
has_attachments1 или 0все
qпоиск по теме, адресу и имени собеседника, началу письма—
sortlast_message_at, created_at, messages_count, contactlast_message_at
dirdesc или ascdesc
page, per_pageстраница и размер, per_page до 2001, 30

Ответ — threads, total, page, per_page и unread_count (непрочитанные во входящих, без архива). Переписка:

{
  "id": 7,
  "blog_id": 233,
  "domain": "example.com",
  "mailbox": "info@example.com",
  "subject": "Вопрос по заказу",
  "archived": false,
  "unread": true,
  "contact": { "email": "client@example.org", "name": "Анна" },
  "messages_count": 1,
  "preview": "Добрый день! …",
  "has_attachments": false,
  "last_direction": "in",
  "last_message_at": "2026-10-02T17:44:19Z",
  "created_at": "2026-10-02T17:44:19Z",
  "updated_at": "2026-10-02T19:22:38Z",
  "resolved_by": "mail_domain",
  "external_ref": ""
}

last_direction — чьё последнее письмо: in собеседника, out наше. Непустой external_ref значит, что переписка ведётся в Framesuite: здесь она только для чтения, ответ отказывает 409 thread_read_only. Неизвестный sort — 400 invalid_sort.

curl -s "https://onpress.pro/api/v2/site/SITE_ID/inbox/threads?unread=1" -H "Authorization: Bearer op_XXXX"

Ящики и счётчики

mailboxes — ящики, на которые уже писали, с числом переписок threads и непрочитанных unread; counts — inbox (во входящих), archived (в архиве), unread; плюс unread_count и has_unread.

Счётчик непрочитанных

{"unread_count": 3} — непрочитанные во входящих, архив не считается. По нему дашборд рисует число у пункта меню.

Прочитать всё

Снимает «непрочитано» со всех переписок сайта. Ответ — {"success": true, "updated": 3}.

Переписка с письмами

Ответ — thread и messages по порядку. Чтение снимает «непрочитано»; ?mark_read=0 — прочитать, не снимая. Письмо: direction (in или out), from (email, name), to, cc, subject, body_text, has_html, attachments (id, name, mime, size, stored), mail_status (inbound, sending, sent, draft, failed), mail_error, mail_error_code, template_ids, created_at. Чужая или несуществующая переписка — 404 thread_not_found, одинаково.

Архив и «прочитано»

Тело — любое из двух полей или оба: archived (true — в архив, false — во входящие), read (false — отметить непрочитанной, true — прочитанной). Ответ — {"success": true, "thread": {…}}. Пустое тело — 400 nothing_to_update.

curl -s -X PATCH "https://onpress.pro/api/v2/site/SITE_ID/inbox/threads/7" \
  -H "Authorization: Bearer op_XXXX" -H "Content-Type: application/json" \
  -d '{"read": false}'

То же для «прочитано» умеет и прежняя POST /inbox/threads/{id}/read с телом {"read": false}.

Письмо как пришло

{"message_id": 10, "thread_id": 7, "html": "…"} — HTML письма без обработки; null, если HTML-части не было. Показывать только в изолированной рамке без скриптов: содержимое чужое.

Исходник и вложение

Исходник — файл .eml из архива почты, только у полученных писем; иначе 404 raw_not_found. Вложение — файл с заголовком скачивания; id вида <письмо>-<номер> из attachments письма. Файла нет или он не был сохранён (письмо пришло с описью без содержимого) — 404 attachment_not_found.

Ответ письмом

ПунктРучкаТело
ОтветитьPOST /inbox/threads/{id}/reply{"body": "…", "attachments": ["upl_…"], "template_ids": [3]}
Загрузить вложениеPOST /inbox/uploads{"name": "a.pdf", "mime": "application/pdf", "content": "base64"}
Повторить неушедшееPOST /inbox/messages/{id}/retry{}
С какого адреса уйдёт ответGET /inbox/sender—

Ответить

Поля: body — текст ответа, до 100 000 знаков; attachments — токены загрузок, до 10 и не больше 7 МБ на письмо; template_ids — какие шаблоны ответа применены (для счётчика применений). Нужен текст или хотя бы одно вложение. Подпись из настроек ящика дописывается в конец текста. Ответ уходит собеседнику с темой «Re: …» и правильными ссылками на предыдущие письма, так что в его почте он ложится в ту же цепочку. Переписка становится прочитанной и не меняет папку.

ИсходКодЧто значит
Отправлено200, status: "sent"письмо ушло
Черновик409 sender_not_verifiedотправка с адреса сайта ещё не включена; письмо сохранено черновиком с state, повторяется ручкой «Повторить»
Не ушло502 или 422 send_failedretryable — стоит ли повторять; письмо сохранено в переписке
Пусто400 empty_replyнет ни текста, ни вложений
Длинно400 body_too_longбольше 100 000 знаков
Некому422 no_recipientу переписки нет адреса собеседника
Только чтение409 thread_read_onlyпереписка ведётся в Framesuite

В черновике и отказе приходят draft (сохранённое письмо) и thread.

Загрузить вложение

content — файл в base64. Ответ — {"success": true, "upload": {"token": "upl_…", "name": "a.pdf", "mime": "application/pdf", "size": 1024}}; токен идёт в attachments ответа. Отказы: 400 invalid_upload (нет или пустое содержимое, не тот токен), 413 attachment_too_large, 400 too_many_attachments, 400 upload_not_found (токен истёк).

Повторить неушедшее

Только наши письма в draft или failed; отправитель пересчитывается заново. Иначе 400 not_outgoing или 409 not_retryable. Исходы — те же, что у ответа.

С какого адреса уйдёт ответ

{
  "from": "mysite-abc123xyz@onpress.pro",
  "from_name": "Мой сайт",
  "site_address": "mysite-abc123xyz@onpress.pro",
  "reply_to": "mysite-abc123xyz@onpress.pro",
  "domain": "onpress.pro",
  "platform_domain": "onpress.pro",
  "ready": null,
  "state": "unknown",
  "checked_at": null
}

Ответы уходят с личного адреса сайта на домене площадки: <имя-сайта>-<SITE_ID>@onpress.pro. Ответ собеседника на него возвращается в ту же переписку. ready — готова ли отправка по итогу последней попытки: true, false или null (ещё не отправляли); state — ready, not_verified, identity_missing или unknown.

Настройки ящика

ПунктРучкаТело
НастройкиGET /inbox/settings
PATCH /inbox/settings
{"from_name": "…", "signature": "…"}

Настройки

Ответ:

{
  "success": true,
  "settings": { "from_name": "", "signature": "", "updated_at": null },
  "limits": { "from_name": 120, "signature": 2000 },
  "domains": ["example.com"],
  "mailboxes": [
    { "address": "info@example.com", "threads": 1, "last_message_at": "2026-10-02T17:44:19Z" }
  ],
  "sender": { "from": "mysite-abc123xyz@onpress.pro", "from_name": "Мой сайт", "ready": null, "state": "unknown" }
}

Меняются два поля, остальное только для чтения:

from_name — имя отправителя, которое собеседник видит рядом с адресом, до 120 знаков, без <, >, " и @. Пустая строка — название сайта.

signature — подпись, которая дописывается в конец каждого ответа через пустую строку, до 2000 знаков. Пустая строка — без подписи.

domains — домены, письма на которые попадают в этот сайт: подходит любой адрес на них. mailboxes — адреса, на которые уже писали, с числом переписок. sender — то же, что GET /inbox/sender.

Ответ PATCH — те же настройки целиком. Отказы: 400 invalid_from_name, 400 invalid_signature, 400 nothing_to_update (нет ни одного поля).

curl -s -X PATCH "https://onpress.pro/api/v2/site/SITE_ID/inbox/settings" \
  -H "Authorization: Bearer op_XXXX" -H "Content-Type: application/json" \
  -d '{"from_name": "Поддержка", "signature": "С уважением,\nкоманда сайта"}'

Шаблоны ответа

ПунктРучкаТело
СписокGET /inbox/templates?all=1&order=usage
СоздатьPOST /inbox/templates{"title": "Спасибо", "body": "…"}
ИзменитьPUT /inbox/templates/{id}{"quick_reply": true}
УдалитьDELETE /inbox/templates/{id}—
Зачесть применениеPOST /inbox/templates/{id}/used{}

Список

Шаблоны сайта и общие шаблоны сети (blog_id: 0). По умолчанию только включённые; all=1 — все. order: sort (по умолчанию), usage (чаще применяемые первыми), title. Шаблон: id, scope (site или network), blog_id, title, body, locale, category, sort, is_active, quick_reply, usage_count, last_used_at.

Создать, изменить, удалить

Поля: title (обязательно, до 190 знаков), body (обязательно, до 20 000 знаков), locale, category, sort, is_active — показывать в полосе шаблонов под полем ответа, quick_reply — кнопка под полем ответа, которая сразу отправляет этот текст. Менять и удалять можно только шаблоны своего сайта; чужой или сетевой — 404 template_not_found. Неверные поля — 400 invalid_template, пустой PUT — 400 nothing_to_update. Сетевые шаблоны правит только суперадмин сети.

Зачесть применение

Увеличивает usage_count. Обычно не нужна: ответ с template_ids засчитывает применение сам, когда письмо ушло.

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