• Быстрый старт
    • Демо
  • УСТРОЙСТВО
    • Страницы
      • Markdown
      • Аналитика страниц
    • Фреймы
      • Поля данных
      • Сборка
    • Данные
    • Приложения
      • Данные приложения
    • Медиа
  • УПРАВЛЕНИЕ
    • Создание сайтов
    • Настройки
    • Меню
    • Языки
    • Свой домен
    • Пользователи
    • Стили и оформление
    • Соцсети и контакты
    • Ошибки и проблемы
  • ИНСТРУМЕНТЫ
    • SEO
    • Индексация
    • Кросспостинг
    • Аналитика
    • Кэш
    • Почта на домене
    • Редиректы
  • КЕЙСЫ
    • Загрузить HTML
    • Миграция
    • Перевод страницы
    • Чат с OpenAI
    • Справочник API
    • Общие правила
  • УСТРОЙСТВО
    • Страницы
    • Фреймы
      • Поля данных
      • Повторитель
      • Вставка фрейма и служебные блоки
      • Готовые фреймы
      • Сборка
    • Данные
    • Медиа
  • УПРАВЛЕНИЕ
    • Создание сайтов
    • Настройки
    • Меню
    • Языки
    • Свой домен
    • Пользователи
    • Кредиты
    • Автоматизация
    • Авторизация
      • Состояние API
    • Стили и оформление
    • Соцсети и контакты
    • Ошибки и проблемы
  • ИНСТРУМЕНТЫ
    • SEO
      • Семантика
    • Индексация
    • Кросспостинг
    • Аналитика
    • Кэш
    • Почта на домене
    • Редиректы
OnPress OnPress
Документация Справочник API Контакты
Войти Начать
Документация Справочник API Контакты Войти
    • Быстрый старт
    • Демо
  • УСТРОЙСТВО
    • Страницы
      • Markdown
      • Аналитика страниц
    • Фреймы
      • Поля данных
      • Сборка
    • Данные
    • Приложения
      • Данные приложения
    • Медиа
  • УПРАВЛЕНИЕ
    • Создание сайтов
    • Настройки
    • Меню
    • Языки
    • Свой домен
    • Пользователи
    • Стили и оформление
    • Соцсети и контакты
    • Ошибки и проблемы
  • ИНСТРУМЕНТЫ
    • SEO
    • Индексация
    • Кросспостинг
    • Аналитика
    • Кэш
    • Почта на домене
    • Редиректы
  • КЕЙСЫ
    • Загрузить HTML
    • Миграция
    • Перевод страницы
    • Чат с OpenAI
    • Справочник API
    • Общие правила
  • УСТРОЙСТВО
    • Страницы
    • Фреймы
      • Поля данных
      • Повторитель
      • Вставка фрейма и служебные блоки
      • Готовые фреймы
      • Сборка
    • Данные
    • Медиа
  • УПРАВЛЕНИЕ
    • Создание сайтов
    • Настройки
    • Меню
    • Языки
    • Свой домен
    • Пользователи
    • Кредиты
    • Автоматизация
    • Авторизация
      • Состояние API
    • Стили и оформление
    • Соцсети и контакты
    • Ошибки и проблемы
  • ИНСТРУМЕНТЫ
    • SEO
      • Семантика
    • Индексация
    • Кросспостинг
    • Аналитика
    • Кэш
    • Почта на домене
    • Редиректы
Справочник API Инструменты SEO
Markdown
Открыть в ИИ
  • Открыть в ChatGPT
  • Открыть в Claude
  • Открыть в Gemini
  • Открыть в Perplexity
  • Открыть в Grok
  • Открыть в DeepSeek

Семантика

API собирает семантический план сайта и связывает запросы со страницами. Сценарии — в гайде.

info

API — https://onpress.pro/api/v2, SITE — id сайта, OP_TOKEN — токен op_XXXX. Пути на этой странице начинаются с $API/site/$SITE. Токен и права — в «Авторизации», общий формат — в «Общих правилах».

Форма ответа может измениться.

Эндпоинты

Профильные операции /data/… возвращают результат в items[0]; наружные name, origin: "system" и total: 1 описывают системные данные. Названия полей результата ниже относятся к items[0]. Неподдерживаемый метод дает 405 wrong_method_for_source, пробный прогон без поддержки — 400 dry_run_not_supported. Прежние URL продолжают работать со своим форматом ответа.

МетодПутьДействие
GET/data/seo.semanticПрочитать семантический план (бета)
PUT/data/seo.semanticИмпортировать запросы (бета)
PUT/data/seo.semantic.syncСопоставить запросы со страницами (бета)
PUT/data/seo.semantic.groupsСоздать группу (бета)
PATCH/data/seo.semantic.groupsИзменить группу (бета)
DELETE/data/seo.semantic.groupsУдалить группу (бета)
PUT/data/seo.semantic.pageСоздать страницу для группы (бета)
PATCH/data/seo.semantic.keywordsИзменить запрос (бета)
DELETE/data/seo.semantic.keywordsУдалить запрос (бета)

Прочитать семантический план (бета)

GET /data/seo.semantic

Отдает план: группы с запросами и найденными страницами, число запросов и все страницы сайта для выбора. Подробнее в гайде.

curl -s "$API/site/$SITE/data/seo.semantic" -H "Authorization: Bearer $OP_TOKEN"

Параметр адресации передается в строке запроса; тела нет.

Ответ

{
  "success": true,
  "name": "seo.semantic",
  "origin": "system",
  "total": 1,
  "items": [
    {
      "version": 3,
      "groups": [
        {
          "id": "0b6f2c1e-6d0a-4c43-9a51-2f6e1c7d9a10",
          "title": "чат бот онлайн",
          "lang": "ru",
          "intent": "",
          "type": "article",
          "priority": "1",
          "status": "todo",
          "planned_url": "/chat-bot/",
          "page_id": null,
          "keywords": [
            {
              "id": "4d1c0e2a9b7f6e5d4c3b2a19",
              "phrase": "чат бот онлайн",
              "frequency": 12000,
              "page": null,
              "match_count": 0
            }
          ],
          "page": null,
          "match": null,
          "candidates": []
        }
      ],
      "total": 1,
      "pages": [
        {
          "id": 6261,
          "parent": 0,
          "title": "Данные",
          "status": "publish",
          "lang": "ru",
          "url": "/docs/v2/ru/guides/data/"
        }
      ],
      "limit": 5000
    }
  ]
}
ПолеОписание
versionверсия плана для записи; у пустого плана 0
groupsгруппы, поля — в таблице ниже
totalчисло запросов во всех группах
pagesвсе страницы сайта: id, parent, title, status, lang, url
limitсколько запросов вмещает план
Поле группыОписание
idid группы
titleназвание группы
langязык группы; "" — без языка, тогда подходят страницы любого языка
intentинтент, свободный текст
typereview, article, landing, hub, comparison или instruction
priority1, 2 или none
statustodo, progress, published или paused
planned_urlплановый адрес страницы
page_idпривязанная страница; null — привязки нет
keywordsзапросы группы: id, phrase, frequency (null — частотность неизвестна), page — страница запроса, match_count — сколько страниц совпало с фразой
pageстраница группы: id, parent, title, status, url, link, lang; null — не найдена
matchкак найдена страница: manual — по page_id, exact — одна страница по совпадению, ambiguous — совпало несколько, null — ни одной
candidatesстраницы, которые совпали с группой

Ошибки

Специальные коды — в таблице ошибок. Общие ошибки авторизации — в общих кодах.

Импортировать запросы (бета)

PUT /data/seo.semantic

Добавляет запросы списком или таблицей. Подробнее в гайде.

curl -s -X PUT "$API/site/$SITE/data/seo.semantic" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"version": 3, "lang": "ru", "group": "чат бот онлайн", "keywords": [{"phrase": "чат бот без регистрации", "frequency": 3400}, "бесплатный чат бот"]}'

Тело запроса

ПолеТипОбязательноеПо умолчаниюОписание
versionnumber, stringда—обязательно; версия из GET /data/seo.semantic, можно и строкой запроса ?version=
keywordsarrayнет—запросы: строка или объект {phrase, frequency, group, lang}; от 1 до 5000; нужно keywords или text
textstringнет—таблица текстом, строка на запрос: фраза, частотность, группа; колонки через табуляцию или ;
langstringнет""язык запросов, код вроде ru или en
groupstringнетБез группыгруппа для запросов, у которых она не указана

Ответ

Запрос, который в плане уже есть на том же языке, API пропускает. Группу API ищет по названию и языку и создает, если ее нет; без названия группы запрос попадает в группу «Без группы». Ответ — {"success": true, "name": "seo.semantic", "origin": "system", "total": 1, "items": [{"version": 4, "added": 2, "skipped": 1}]}.

В text первая строка — заголовок, если первая ячейка запрос, keyword, query или phrase; только с заголовком API читает четвертую колонку — язык строки. Фраза — до 400 знаков, частотность — целое число от 0, пробелы внутри числа API убирает.

Ошибки

КодHTTPКогдаЧто делать
invalid_keywords422список пустой, больше 5000 строк, строка не строка и не объект или таблица не читаетсяисправьте список
invalid_semantic_text422пустая фраза или название группы, длиннее 400 знаковисправьте строку
invalid_frequency422частотность не целое число от 0исправьте число
invalid_language422язык не код вроде ru или enисправьте lang
semantic_limit422в плане станет больше 5000 запросовудалите лишние запросы

Сопоставить запросы со страницами (бета)

PUT /data/seo.semantic.sync

Забирает в план ключи страниц: по запросу на каждую страницу, у которой задан focus_keyword. Подробнее в гайде.

curl -s -X PUT "$API/site/$SITE/data/seo.semantic.sync" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"version": 4}'

Тело запроса

ПолеТипОбязательноеПо умолчаниюОписание
versionnumber, stringда—обязательно; версия из GET /data/seo.semantic, можно и строкой запроса ?version=

Ответ

Запрос попадает в группу, привязанную к этой странице, а если такой нет — в новую группу с названием страницы. Группа получает page_id, плановый адрес — адрес страницы, статус published у опубликованной страницы и progress у остальных. Частотность приходит из keywordFrequencyYandex страницы, которую задает PUT /pages/{ref}/keyword-frequency. Запрос, который в плане уже есть, API пропускает. Ответ — {"success": true, "name": "seo.semantic.sync", "origin": "system", "total": 1, "items": [{"version": 5, "added": 12, "skipped": 3}]}.

Ошибки

КодHTTPКогдаЧто делать
semantic_limit422в плане станет больше 5000 запросовудалите лишние запросы

Создать группу (бета)

PUT /data/seo.semantic.groups

Создает пустую группу. Подробнее в гайде.

curl -s -X PUT "$API/site/$SITE/data/seo.semantic.groups" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"version": 5, "title": "чат бот для сайта", "lang": "ru"}'

Тело запроса

ПолеТипОбязательноеПо умолчаниюОписание
versionnumber, stringда—обязательно; версия из GET /data/seo.semantic, можно и строкой запроса ?version=
titlestringнетНовая группаназвание, до 400 знаков
langstringнет""язык группы

Ответ

Ответ — {"success": true, "name": "seo.semantic.groups", "origin": "system", "total": 1, "items": [{"version": 6, "group_id": "…"}]}. Новая группа получает тип review, приоритет 1 и статус todo.

Ошибки

КодHTTPКогдаЧто делать
semantic_limit422на сайте уже 1000 группудалите лишние группы
invalid_semantic_text422название длиннее 400 знаковсократите
invalid_language422язык не код вроде ru или enисправьте lang

Изменить группу (бета)

PATCH /data/seo.semantic.groups

Меняет переданные поля группы. Подробнее в гайде.

curl -s -X PATCH "$API/site/$SITE/data/seo.semantic.groups" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"id": "0b6f2c1e-6d0a-4c43-9a51-2f6e1c7d9a10", "version": 6, "planned_url": "/chat-bot/", "type": "article"}'

Поля адресации в теле запроса

ПолеТипОбязательноеПо умолчаниюОписание
idstringда—Id ресурса из ответа чтения.

Тело запроса

ПолеТипОбязательноеПо умолчаниюОписание
versionnumber, stringда—обязательно; версия из GET /data/seo.semantic, можно и строкой запроса ?version=
titlestringнет—название, до 400 знаков
intentstringнет—интент, до 200 знаков; "" — очистить
planned_urlstringнет—путь от корня с / на конце, до 500 знаков: /guide/topic/; "" — очистить
langstringнет—язык группы; "" — без языка
typestringнет—review, article, landing, hub, comparison или instruction
prioritystringнет—1, 2 или none
statusstringнет—todo, progress, published или paused
page_idnumberнет—привязать страницу сайта того же языка; null — снять привязку

Ответ

Ответ — {"success": true, "name": "seo.semantic.groups", "origin": "system", "total": 1, "items": [{"version": 7}]}.

Ошибки

КодHTTPКогдаЧто делать
semantic_group_not_found404группы нетвозьмите id из GET /data/seo.semantic
invalid_semantic_text422пустое или длинное название или интентисправьте поле
invalid_planned_url422адрес не путь вида /guide/topic/исправьте planned_url
invalid_language422язык не код вроде ru или enисправьте lang
invalid_semantic_field422type, priority или status вне спискавозьмите значение из таблицы
semantic_page_not_found422страницы нет на сайте или она на другом языкевозьмите id из pages
duplicate_keyword422после смены языка фразы группы повторят запросы другой группы того же языкауберите повторы

Удалить группу (бета)

DELETE /data/seo.semantic.groups

Удаляет группу вместе с ее запросами; страницу сайта эндпоинт не трогает. Подробнее в гайде.

curl -s -X DELETE "$API/site/$SITE/data/seo.semantic.groups" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"id": "0b6f2c1e-6d0a-4c43-9a51-2f6e1c7d9a10", "version": 7}'

Поля адресации в теле запроса

ПолеТипОбязательноеПо умолчаниюОписание
idstringда—Id ресурса из ответа чтения.

Тело запроса

ПолеТипОбязательноеПо умолчаниюОписание
versionnumber, stringда—обязательно; версия из GET /data/seo.semantic, можно и строкой запроса ?version=

Ответ

Ответ — {"success": true, "name": "seo.semantic.groups", "origin": "system", "total": 1, "items": [{"version": 8}]}.

Ошибки

КодHTTPКогдаЧто делать
semantic_group_not_found404группы нетвозьмите id из GET /data/seo.semantic

Создать страницу для группы (бета)

PUT /data/seo.semantic.page

Дает группе страницу. Подробнее в гайде.

curl -s -X PUT "$API/site/$SITE/data/seo.semantic.page" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"id": "0b6f2c1e-6d0a-4c43-9a51-2f6e1c7d9a10", "version": 8}'

Поля адресации в теле запроса

ПолеТипОбязательноеПо умолчаниюОписание
idstringда—Id ресурса из ответа чтения.

Тело запроса

ПолеТипОбязательноеПо умолчаниюОписание
versionnumber, stringда—обязательно; версия из GET /data/seo.semantic, можно и строкой запроса ?version=

Ответ

Если API находит страницу группы, эндпоинт привязывает ее и отвечает reused: true. Иначе он создает черновик: название и H1 — название группы, адрес — planned_url или адрес из названия группы, focus_keyword — первый запрос группы, а без запросов — название группы, язык — язык группы; группа получает page_id, этот адрес в planned_url и статус progress. Ответ — {"success": true, "name": "seo.semantic.page", "origin": "system", "total": 1, "items": [{"version": 9, "page_id": 7150, "reused": false}]}.

Отказы публикации черновика — как у POST /pages/markdown.

Ошибки

КодHTTPКогдаЧто делать
semantic_group_not_found404группы нетвозьмите id из GET /data/seo.semantic
ambiguous_page409с группой совпало несколько страницпривяжите нужную через PATCH с page_id
semantic_url_taken409плановый адрес занят другой страницей того же языкапривяжите ее через page_id или смените planned_url
semantic_home_page422плановый адрес — /привяжите главную через page_id
semantic_page_failed502черновик не созданповторите запрос

Изменить запрос (бета)

PATCH /data/seo.semantic.keywords

Меняет частотность запроса, переносит его в другую группу того же языка или ставит первым в группе. Подробнее в гайде.

curl -s -X PATCH "$API/site/$SITE/data/seo.semantic.keywords" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"id": "4d1c0e2a9b7f6e5d4c3b2a19", "version": 9, "group_id": "0b6f2c1e-6d0a-4c43-9a51-2f6e1c7d9a10", "primary": true}'

Поля адресации в теле запроса

ПолеТипОбязательноеПо умолчаниюОписание
idstringда—Id ресурса из ответа чтения.

Тело запроса

ПолеТипОбязательноеПо умолчаниюОписание
versionnumber, stringда—обязательно; версия из GET /data/seo.semantic, можно и строкой запроса ?version=
frequencynumberнет—частотность, целое от 0; null — неизвестна
group_idstringнет—группа, в которую перенести запрос
primaryboolнет—true — поставить запрос первым в группе

Ответ

Первый запрос группы становится focus_keyword черновика, который создает PUT /data/seo.semantic.page. Ответ — {"success": true, "name": "seo.semantic.keywords", "origin": "system", "total": 1, "items": [{"version": 10}]}.

Ошибки

КодHTTPКогдаЧто делать
semantic_keyword_not_found404запроса нетвозьмите id из keywords
semantic_group_not_found404группы group_id нетвозьмите id из GET /data/seo.semantic
language_mismatch422группа на другом языкевыберите группу того же языка
invalid_frequency422частотность не целое число от 0исправьте число

Удалить запрос (бета)

DELETE /data/seo.semantic.keywords

Удаляет запрос из плана. Подробнее в гайде.

curl -s -X DELETE "$API/site/$SITE/data/seo.semantic.keywords" \
  -H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
  -d '{"id": "4d1c0e2a9b7f6e5d4c3b2a19", "version": 10}'

Поля адресации в теле запроса

ПолеТипОбязательноеПо умолчаниюОписание
idstringда—Id ресурса из ответа чтения.

Тело запроса

ПолеТипОбязательноеПо умолчаниюОписание
versionnumber, stringда—обязательно; версия из GET /data/seo.semantic, можно и строкой запроса ?version=

Ответ

Ответ — {"success": true, "name": "seo.semantic.keywords", "origin": "system", "total": 1, "items": [{"version": 11}]}.

Ошибки

КодHTTPКогдаЧто делать
semantic_keyword_not_found404запроса нетвозьмите id из keywords

Общие отказы записи

КодСтатусКогдаЧто делать
semantic_version_required422нет version или это не целое число от 0 и не строка из цифрпередайте version из GET /data/seo.semantic
semantic_changed409план поменяли после чтения; ничего не записано, текущая версия — в versionперечитайте план и повторите с новой версией
semantic_busy409план сейчас записывает другой запросповторите через несколько секунд
arrow_backНазад
SEO
Далееarrow_forward
Аналитика
На этой странице
  • Эндпоинты
    • Прочитать семантический план (бета)
      • Ответ
        • Ошибки
      • Импортировать запросы (бета)
        • Тело запроса
          • Ответ
            • Ошибки
          • Сопоставить запросы со страницами (бета)
            • Тело запроса
              • Ответ
                • Ошибки
              • Создать группу (бета)
                • Тело запроса
                  • Ответ
                    • Ошибки
                  • Изменить группу (бета)
                    • Поля адресации в теле запроса
                      • Тело запроса
                        • Ответ
                          • Ошибки
                        • Удалить группу (бета)
                          • Поля адресации в теле запроса
                            • Тело запроса
                              • Ответ
                                • Ошибки
                              • Создать страницу для группы (бета)
                                • Поля адресации в теле запроса
                                  • Тело запроса
                                    • Ответ
                                      • Ошибки
                                    • Изменить запрос (бета)
                                      • Поля адресации в теле запроса
                                        • Тело запроса
                                          • Ответ
                                            • Ошибки
                                          • Удалить запрос (бета)
                                            • Поля адресации в теле запроса
                                              • Тело запроса
                                                • Ответ
                                                  • Ошибки
                                                • Общие отказы записи
                                                1. Главная
                                                2. Docs
                                                3. Документация OnPress v2
                                                4. Справочник API
                                                5. SEO
                                                6. Семантика
                                                © 2026 OnPress ИП Зуев И.В. ИНН: 360408359441 info@onpress.pro Политика конфиденциальности Публичная оферта
                                                • Visa
                                                • Mastercard
                                                • Сбер Pay
                                                • T-Pay