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

Домены

Свой домен подключается одним адресом /sites/{id}/custom-domain: POST начинает подключение, GET показывает статус и DNS-записи и заодно продвигает подключение, DELETE отменяет его или возвращает сайт на адрес платформы. Дальше платформа ведёт подключение сама: ждёт записей DNS, выпускает сертификат и переводит сайт на домен. Эндпоинты пишутся без префикса /site/$SITE: сайт задаёт {id} в пути, как у всех эндпоинтов сайтов. По шагам с записями у регистратора — Домены.

info

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

POST /sites/{id}/custom-domain

Начинает подключение своего домена к сайту. Дальше платформа ведёт подключение сама: ждёт записи DNS, выпускает сертификат и переводит сайт на домен. Сайт на другом своём домене работает на нём, пока новый не станет active; старый домен после перевода снимается с сервера. Повтор после failed начинает подключение заново. Например, подключить example.com:

curl -s -X POST "$API/sites/$SITE/custom-domain" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"domain": "example.com"}'
ПолеТипПо умолчаниюОписание
domainstring—домен, например example.com или shop.example.com; схема, путь, порт и www. в начале отбрасываются, кириллический домен переводится в punycode
dry_runboolfalseпроверить домен и показать записи DNS, ничего не меняя; можно и ?dry_run=1
{ "success": true, "site_id": "FJyyv3Xiv", "changed": true, "status": "pending_dns", "domain": "example.com", "site_domain": "mysite.onpress.pro", "site_url": "https://mysite.onpress.pro", "server_ip": "31.128.47.177", "started_at": "2026-10-27T12:03:56+00:00", "elapsed": 0, "dns": { "ok": false, "records": [ { "type": "A", "host": "example.com", "value": "31.128.47.177", "found": [], "ok": false }, { "type": "A", "host": "www.example.com", "value": "31.128.47.177", "found": [], "ok": false } ], "problems": [] }, "previous_domain": "mysite.onpress.pro", "next": "add the DNS records from dns.records at your registrar; …" }

changed: false — этот домен уже active или уже ждёт DNS, тогда проверка просто запускается заново. Поля ответа — как у GET /sites/{id}/custom-domain.

КодСтатусКогдаЧто делать
invalid_domain400не имя хостапередайте домен вида example.com
platform_domain400домен в зоне onpress.proподключайте только свой домен
unknown_field400в теле лишнее полеоставьте domain и dry_run
site_not_found404сайта нет или он не вашпроверьте {id}
domain_taken409домен уже у другого сайтаснимите его там или выберите другой
domain_busy409идёт выпуск сертификата или переезд, текущий статус в current_statusповторите через минуту
main_site_locked409домен главного сайта платформы не меняется—
wrong_realm409запрос пришёл не в тот контурповторите на адресе из сообщения
domain_step_failed, internal_unavailable502шаг подключения не выполнилсяповторите запрос

GET /sites/{id}/custom-domain

Отдаёт статус подключения. Каждое чтение заодно продвигает подключение, не дожидаясь плановой проверки раз в пять минут, а первое чтение после перевода доводит сайт: сбрасывает кэши и пересобирает фреймы; что сделано — один раз в поле finished. Например:

curl -s "$API/sites/$SITE/custom-domain" -H "Authorization: Bearer $OP_TOKEN"
{ "success": true, "site_id": "x9HTLHECq", "status": "none", "domain": null, "site_domain": "test.onpress.pro", "site_url": "https://test.onpress.pro", "server_ip": "31.128.47.177", "next": "POST /sites/{id}/custom-domain with {\"domain\": \"example.com\"} to connect a domain" }
statusЧто происходит
noneсвоего домена и подключения нет
pending_dnsждём A-записи example.com и www.example.com на server_ip; проверка через публичные DNS (8.8.8.8, 1.1.1.1, 9.9.9.9)
issuing_certвыпускается сертификат Let’s Encrypt на example.com и www.example.com
switchingсайт переходит на https://example.com
activeсайт работает на домене; www и http:// ведут на https://example.com
disconnectingсайт возвращается на адрес платформы
failedостановлено: failed_stage — dns (записи не появились за 24 часа), cert (сертификат не выпущен), switch или disconnect; причина — в error
ПолеОписание
domainподключаемый или действующий свой домен, иначе null
site_domain, site_urlгде сайт отвечает сейчас
server_ipадрес для A-записей
dns.records[]что прописать: type, host (полное имя записи), value; found — что отдают публичные DNS сейчас, ok
dns.problems[]что помешает сертификату: aaaa_record (IPv6-запись), cloudflare_proxy (включён прокси Cloudflare), extra_a_record (лишний адрес рядом с адресом сервера)
started_at, elapsedначало подключения и секунды с него
previous_domainадрес платформы, на который вернёт DELETE
finishedadopt, cache, rebake — один раз после перевода
nextчто делать дальше, одной строкой

dns приходит, пока ждём записи, и после отказа на dns или cert. Вместо A-записи у www можно поставить CNAME на основной домен. Отказ — 404 site_not_found, если сайта нет или он не ваш.

DELETE /sites/{id}/custom-domain

Отменяет подключение или возвращает сайт на адрес платформы. Незавершённое подключение (pending_dns, failed) отменяется: сайт остаётся на прежнем адресе, а настройки сервера и сертификат домена, если успели появиться, удаляются — mode: "cancel", cleanup.result: removed, nothing или denied. Сайт на своём домене возвращается на адрес платформы — mode: "move_back", status: "disconnecting", затем none; домен снимается с сервера, записи DNS у регистратора удаляете вы. Без подключения — changed: false. Например:

curl -s -X DELETE "$API/sites/$SITE/custom-domain" -H "Authorization: Bearer $OP_TOKEN"
ПолеТипПо умолчаниюОписание
tostringprevious_domainадрес платформы, на который вернуть сайт, например mysite.onpress.pro; только зона onpress.pro и только свободный адрес
dry_runboolfalseпоказать, что будет, ничего не меняя; можно и ?dry_run=1
{ "success": true, "site_id": "FJyyv3Xiv", "changed": true, "mode": "move_back", "to": "mysite.onpress.pro", "status": "disconnecting", "domain": "example.com", "site_domain": "example.com", "site_url": "https://example.com", "server_ip": "31.128.47.177", "previous_domain": "mysite.onpress.pro", "next": "the site is moving back to the platform address; check again in a minute" }
КодСтатусКогдаЧто делать
invalid_to400to не адрес в зоне onpress.proпередайте адрес вида mysite.onpress.pro
fallback_required400нет previous_domainпередайте to
unknown_field400в теле лишнее полеоставьте to и dry_run
site_not_found404сайта нет или он не вашпроверьте {id}
domain_taken409адрес to занятвыберите другой
domain_busy409идёт выпуск сертификата или переезд (current_status)повторите через минуту
main_site_locked, wrong_realm409как у POST—
internal_unavailable502шаг не выполнилсяповторите запрос
arrow_backНазад
Кэш
На этой странице
  • POST /sites/{id}/custom-domain
    • GET /sites/{id}/custom-domain
      • DELETE /sites/{id}/custom-domain
      1. Главная
      2. Docs
      3. Документация OnPress v2
      4. Справочник API
      5. Домены
      OnPress
      OnPress
      ИП Зуев И.В. ИНН: 360408359441
      info@onpress.pro
      © 2026
      политика конфиденциальности публичная оферта
      • visa
      • mastercard
      • sber
      • tpay