API и бейдж

Получайте отчёты в JSON и показывайте ранг сайта на своих страницах

API работает по ключу: заголовок X-Api-Key или Authorization: Bearer. Ключей может быть несколько, у каждого свои права (read — чтение, run — запуск проверок, write — изменение данных), срок действия, список разрешённых адресов и лимит запросов в час (по умолчанию 120). Передача ключа в адресе запрещена. Ключ можно отозвать в любой момент, статистику и журнал запросов вы видите в кабинете.

Версия контракта 1.1. Возможности для программ — /api/v1/capabilities (без ключа). Полная документация: руководство и справочник методов с примерами (RU/EN). У каждого метода есть имя команды CLI и инструмента MCP — они уже закреплены. MCP-сервер для ИИ-помощников — /mcp (руководство, подключение — в кабинете).

Зарегистрироваться Войти

Методы

Ключ

GET/api/v1/me read CLI: seomaster auth whoami · MCP: get_account

Сведения о ключе и владельце: права, срок, лимит, расход за текущий час.

GET/api/v1/usage read CLI: seomaster auth usage · MCP: get_key_usage

Запросы этого ключа по дням за последние 30 суток. Параметры: days.

Сайты

GET/api/v1/sites read CLI: seomaster sites list · MCP: list_sites

Сайты в мониторинге с последней оценкой.

POST/api/v1/sites write CLI: seomaster sites add · MCP: add_site

Добавить сайт в мониторинг (с учётом лимита тарифа). Параметры: host*, interval.

DELETE/api/v1/sites/example.com write CLI: seomaster sites remove · MCP: remove_site

Убрать сайт из мониторинга. Параметры: host*.

Данные сайта

GET/api/v1/site/example.com read CLI: seomaster site show · MCP: get_site

Карточка сайта: оценка, задачи, динамика. Параметры: host*.

GET/api/v1/report/example.com read CLI: seomaster site report · MCP: get_report

Последний отчёт по сайту. Параметры: host*.

GET/api/v1/history/example.com read CLI: seomaster site history · MCP: get_history

История проверок. Параметры: host*.

GET/api/v1/crawl/example.com read CLI: seomaster crawl show · MCP: get_crawl

Последний аудит страниц. Параметры: host*.

GET/api/v1/links/example.com read CLI: seomaster crawl links · MCP: get_links

Перелинковка: сироты, битые ссылки, дубли. Параметры: host*.

GET/api/v1/external/example.com read CLI: seomaster crawl external · MCP: get_external_links

Внешние ссылки по результатам аудита. Параметры: host*.

GET/api/v1/uptime/example.com read CLI: seomaster uptime show · MCP: get_uptime

Доступность: аптайм за 24 часа, 7 и 30 дней, инциденты. Параметры: host*.

Задачи

GET/api/v1/tasks/example.com read CLI: seomaster tasks list · MCP: list_site_tasks

Задачи по сайту с идентификаторами и статусами. Параметры: host*.

PATCH/api/v1/tasks/123 write CLI: seomaster tasks set-status · MCP: set_task_status

Сменить статус задачи: open, done, ignored. Параметры: id*, status*.

События

GET/api/v1/events read CLI: seomaster events · MCP: list_events

Лента событий с фильтрами и курсором after_id для опроса. Параметры: type, level, host, days, limit, offset, after_id.

Трафик

GET/api/v1/traffic/example.com read CLI: seomaster traffic forecast · MCP: get_traffic_forecast

Прогноз органического трафика на 14 дней с диапазоном, тренд, необычные дни, оценка трафика конкурентов по вашим запросам и потенциал роста. Параметры: host*.

Позиции

GET/api/v1/positions/example.com/pages read CLI: seomaster positions pages · MCP: get_position_pages

Какие страницы сайта держат видимость и по каким запросам, плюс каннибализация (по запросу в выдаче разные страницы). Параметры: host*.

GET/api/v1/positions/example.com/volatility read CLI: seomaster positions volatility · MCP: get_serp_volatility

Волатильность выдачи по дням: смена состава топ-10 и сдвиги ваших позиций, дни, похожие на обновление выдачи. Параметры: host*, days.

Глубокий обход

GET/api/v1/deep/example.com/js read CLI: seomaster deep js · MCP: get_js_dependency

Зависимость сайта от JS по последней проверке рендерингом: разделы, страницы выборки, что добавляет JS (текст, ссылки, мета-данные), найденные фреймворки. Параметры: host*.

Сторонние API

GET/api/v1/providers read CLI: seomaster providers list · MCP: list_providers

Реестр провайдеров: подключён ли, свежесть данных, бюджет ошибок за 30 суток, атрибуция, можно ли показывать данные публично, срок хранения и когда вы сверяли условия. Параметр all=1 добавляет неиспользуемых провайдеров. Параметры: all.

Соцсети

GET/api/v1/social/example.com read CLI: seomaster social show · MCP: get_social

Ссылки на соцсети на главной, карточки Open Graph, состояние страниц ВКонтакте и Telegram, число подписчиков и замечания аудита (по последней проверке). Параметры: host*.

Конкуренты

GET/api/v1/competitors/example.com/history read CLI: seomaster competitors history · MCP: get_competitor_history

Динамика доли видимости вас и главных конкурентов по срезам выдачи (параметры points до 26, step 7 или 30) и кто вас обогнал или резко вырос. Параметры: host*, points, step.

GET/api/v1/competitors/example.com read CLI: seomaster competitors show · MCP: get_competitors

Доля видимости сайта и конкурентов по вашим запросам, угрозы, площадки в выдаче, кластеры запросов, намерения и сложность. Параметры: host*.

GET/api/v1/keyword-gap/example.com read CLI: seomaster keyword-gap · MCP: get_keyword_gap

Разрыв по запросам: где конкуренты в топ-10, а вас нет (kind=missing) или они выше (kind=behind). С оценкой потенциала и сложности. Параметры: host*, kind, limit.

Диагностика

GET/api/v1/diagnosis read CLI: seomaster diagnosis all · MCP: get_diagnosis_all

Диагноз всех ваших сайтов: уровень, оценка здоровья, первопричина. Самые тяжёлые первыми.

GET/api/v1/diagnosis/example.com read CLI: seomaster diagnosis show · MCP: get_diagnosis

Полный диагноз сайта: зоны здоровья, первопричина, динамика, полнота данных и рекомендуемый порядок действий с оценкой времени и прироста индекса. Параметры: host*.

GET/api/v1/diagnosis/example.com/history read CLI: seomaster diagnosis history · MCP: get_diagnosis_history

Здоровье сайта по дням: оценка, уровень, зоны, первопричина и изменения за неделю. Параметры: host*, days.

Вебхуки

GET/api/v1/webhooks read CLI: seomaster webhooks list · MCP: list_webhooks

Ваши адреса вебхуков и их состояние (без секретов).

GET/api/v1/webhooks/123/deliveries read CLI: seomaster webhooks deliveries · MCP: list_webhook_deliveries

Последние доставки на адрес: статус, код ответа, число попыток. Параметры: id*, limit.

POST/api/v1/webhooks/123/test write CLI: seomaster webhooks test · MCP: test_webhook

Отправить на адрес тестовое событие и вернуть результат. Параметры: id*.

Проверки

GET/api/v1/analyze?d=example.com run CLI: seomaster analyze now · MCP: analyze_site_sync

Проверить сайт (или взять свежий отчёт из кэша). Параметры: d*, fresh.

GET/api/v1/check/indexability?url=https://example.com/ run CLI: seomaster check page · MCP: check_page

Одна проверка страницы (meta, headings, images и т. д.). Параметры: tool*, url*.

GET/api/v1/full?url=https://example.com/ run CLI: seomaster check full · MCP: check_page_full

Все проверки страницы сразу. Параметры: url*.

GET/api/v1/ssl/example.com run CLI: seomaster check ssl · MCP: check_ssl

Сертификат сайта (живое подключение). Параметры: host*.

GET/api/v1/dns/example.com run CLI: seomaster check dns · MCP: check_dns

DNS-записи домена (живой запрос). Параметры: host*.

Сайты

GET/api/v1/overview read CLI: seomaster sites overview · MCP: get_overview

Все сайты в одной таблице: ранг и его изменение, критичные и открытые задачи, доступность, давность проверки, проект и важность; с фильтрами, сортировкой и постраничным выводом. Для сайтов с типом (профилем) ранг учитывает исключения, рядом rank_without_exclusions. Параметры: q, project, state, importance, rmax, sort, dir, limit, offset.

Задачи

GET/api/v1/plan read CLI: seomaster plan · MCP: get_plan

Открытые задачи по всем сайтам (или по одному), самые полезные первыми. План пересобирается с учётом типа сайта. Параметры: host, level, limit, offset.

Данные сайта

GET/api/v1/issues/example.com read CLI: seomaster site issues · MCP: get_top_issues

Пять главных проблем простыми словами: что это, чем грозит, сколько баллов ранга даст исправление, трудоёмкость; итог «если исправить всё». Параметры: host*, apply_profile.

GET/api/v1/changes/example.com read CLI: seomaster site changes · MCP: get_changes

Различия двух проверок: новые, устранённые и вернувшиеся замечания, ухудшения и улучшения, изменение ранга и групп, технологии. По умолчанию — последняя и предыдущая проверки. Параметры: host*, from, to.

Индексация

GET/api/v1/indexing/example.com read CLI: seomaster indexing show · MCP: get_indexing

Диагностика индексации: страницы вне индекса и причины по данным Яндекса и Google, собственная проверка, расхождения, действия. Параметры: host*.

Рынок

GET/api/v1/market/example.com read CLI: seomaster market show · MCP: get_market

Рыночная аналитика по загруженным данным подключённого источника (Ahrefs, Semrush): конкуренты, пересечения, упущенные запросы и потенциал. Данные только ваши и только из разрешённых источников. Параметры: host*, src, filter, limit, offset.

Тип сайта

GET/api/v1/profile/example.com read CLI: seomaster profile show · MCP: get_site_profile

Тип сайта (магазин, форум, блог, корпоративный, портал), исключённые проверки, ранг с профилем и без исключений, допустимые типы и исключения. Параметры: host*.

PUT/api/v1/profile/example.com write CLI: seomaster profile set · MCP: set_site_profile

Задать тип сайта и исключения. Каждое исключение нужно подтвердить в confirm: исключаются только проверки из белого списка, не больше 5 и не больше половины веса группы. Без exclude берутся исключения типа по умолчанию. Параметры: host*, profile*, exclude, confirm.

DELETE/api/v1/profile/example.com write CLI: seomaster profile reset · MCP: reset_site_profile

Сбросить тип сайта: применяется стандартный набор проверок. Параметры: host*.

Справка

GET/api/v1/explain read CLI: seomaster explain list · MCP: list_explanations

Список кодов проверок, для которых есть объяснение и инструкция. Параметры: limit, offset.

GET/api/v1/explain/{code} read CLI: seomaster explain show · MCP: explain_check

Объяснение проверки: что это значит, примеры хорошего и плохого значения, почему важно, трудоёмкость и ссылка на пошаговую инструкцию. Параметр lang=ru|en. Параметры: code*, lang.

Задачи

POST/api/v1/tasks/123/recheck run CLI: seomaster tasks recheck · MCP: recheck_task

Перепроверить одну задачу: сайт проверяется заново, ответ — было, стало, исправлено ли. Свежий отчёт (моложе двух минут) используется повторно; действует суточный предел перепроверок. Параметры: id*.

Проверки

POST/api/v1/analyze?d=example.com run CLI: seomaster analyze start · MCP: start_analysis · задание

Запустить проверку сайта в фоне: ответ 202 с заданием, ход — GET /jobs/{id}. Свежий отчёт из кэша возвращается как готовое задание; fresh=true — проверить заново. Параметры: host*, fresh.

POST/api/v1/crawl/example.com run CLI: seomaster crawl start · MCP: start_crawl · задание

Запустить аудит страниц сайта из мониторинга в фоне: ответ 202 с заданием. Считается как три проверки в лимите. Параметры: host*.

Задания

GET/api/v1/jobs read CLI: seomaster jobs list · MCP: list_jobs

Последние фоновые задания, запущенные через API. Параметры: limit, offset.

GET/api/v1/jobs/123 read CLI: seomaster jobs show · MCP: get_job

Состояние задания: queued, running, done или error, прогресс, ссылки на результат; poll_after_s — через сколько секунд спрашивать снова. Параметры: id*.

Вебхуки

POST/api/v1/webhooks write CLI: seomaster webhooks add · MCP: add_webhook

Создать адрес вебхука. Секрет для проверки подписи показывается один раз. Параметры: url*, name, events, hosts.

DELETE/api/v1/webhooks/123 write CLI: seomaster webhooks remove · MCP: remove_webhook

Удалить адрес вебхука вместе с журналом доставок. Параметры: id*.

POST/api/v1/webhooks/123/rotate-secret write CLI: seomaster webhooks rotate-secret · MCP: rotate_webhook_secret

Выпустить новый секрет подписи; старый перестаёт действовать, новый показывается один раз. Параметры: id*.

Данные сайта

GET/api/v1/performance/example.com read CLI: seomaster site performance · MCP: get_performance

Скорость и мобильная версия: проверки скорости и адаптации из последнего отчёта и показатели браузера (LCP, CLS, INP, TBT) по телефону и компьютеру. Параметры: host*.

Поиск и ссылки

GET/api/v1/queries/example.com read CLI: seomaster search queries · MCP: list_search_queries

Поисковые запросы сайта из Яндекс.Вебмастера и Google Search Console: клики, позиция и их прежние значения. Параметры: host*, engine, limit, offset.

GET/api/v1/opportunities/example.com read CLI: seomaster search opportunities · MCP: list_search_opportunities

Возможности роста по данным поиска: запросы «почти в топе», низкий CTR и каннибализация страниц, с ожидаемым приростом кликов. Параметры: host*, engine, kind, limit, offset.

GET/api/v1/positions/example.com read CLI: seomaster positions list · MCP: list_positions

Позиции отслеживаемых запросов: сейчас, в прошлую проверку, неделю назад, лучшая; trend=down — просевшие за неделю, up — выросшие, lost — выпавшие из выдачи. Параметры: host*, trend, limit, offset.

GET/api/v1/backlinks/example.com read CLI: seomaster backlinks list · MCP: list_backlinks

Обратные ссылки из подключённых источников: живые или пропавшие, с анкором, типом и рейтингом источника. Параметры: host*, state, limit, offset.

Задачи

GET/api/v1/effects/example.com read CLI: seomaster tasks effects · MCP: get_fix_effects

Эффект исправлений: помогла ли выполненная задача (показатель до и после, изменение в процентах, вывод). Параметры: host*, limit, offset.

GET/api/v1/work/example.com read CLI: seomaster tasks history · MCP: get_work_history

История работ по сайту: что исправлено, какие были инциденты, ваши пометки за период (days, до 90). Параметры: host*, days.

Утилиты

GET/api/v1/utilities read CLI: seomaster utils list · MCP: list_utilities

Каталог утилит сервиса (86 штук: проверки сайта, текст, разработчику, сеть, подсказки и превью, изображения, расчёты): группа, название, обращается ли к чужим сайтам (net), работает ли через API. Фильтры: group, q (поиск), net. Параметры: group, q, net, limit, offset.

GET/api/v1/utilities/123 read CLI: seomaster utils show · MCP: get_utility

Описание одной утилиты: поля ввода с типами, допустимыми значениями и пределами, нужное право, пример input. Вызывайте перед запуском. Параметры: id*.

POST/api/v1/utilities/123 read CLI: seomaster utils run · MCP: run_utility

Запустить утилиту. Результат: result (данные), blocks (готовые блоки: таблицы, пары, код, сравнение) и warnings. Утилиты, которые ходят на чужие сайты, требуют право run. Данные нигде не сохраняются. Параметры: id*, input*.

Сводки

GET/api/v1/today read CLI: seomaster today · MCP: get_today

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

GET/api/v1/incidents read CLI: seomaster incidents · MCP: list_incidents

Инциденты: связанные сигналы (падение, недоступность, изменение выдачи) с началом, концом, уровнем и советом. Фильтры: host, days, status. Параметры: host, days, status, limit, offset.

Служебное

GET/api/v1/capabilities CLI: seomaster api capabilities · MCP: get_capabilities

Возможности API для CLI и MCP-сервера: версия контракта, права, лимиты, соглашения, каталог ошибок, события вебхуков и все методы с именами команд и инструментов. Ключ не нужен.

GET/api/v1/openapi.json CLI: seomaster api spec · MCP: get_openapi_spec

Это описание API в формате OpenAPI 3. Ключ не нужен.

Примеры:

curl -H "X-Api-Key: smk_ваш_ключ" "https://400.su/api/v1/analyze?d=example.com"
curl -X POST -H "X-Api-Key: smk_ключ_с_правом_write" -H "Content-Type: application/json" -d '{"host":"example.com"}' "https://400.su/api/v1/sites"

Ответы — JSON. Ошибка всегда {"error": "...", "code": "..."}, программе нужен стабильный code. В каждом ответе: X-Request-Id, X-API-Version, X-RateLimit-Limit, X-RateLimit-Remaining; при 429 — Retry-After.

Общие правила

  • Постраничность: limit (до 200) и offset; в ответе page.next_offset.
  • Идемпотентность: заголовок Idempotency-Key для POST, PUT, PATCH, DELETE — повтор в течение суток вернёт тот же ответ.
  • ETag: повторите GET с If-None-Match — получите 304 без тела.
  • Задания: долгие операции отвечают 202, ход — GET /api/v1/jobs/{id}.

Коды ошибок

codeHTTPПовторЗначение
missing401нетНе передан ключ. Добавьте заголовок X-Api-Key или Authorization: Bearer.
invalid401нетКлюч не найден. Проверьте, что он скопирован целиком.
revoked401нетКлюч отозван. Выпустите новый в кабинете.
expired401нетСрок действия ключа истёк. Выпустите новый.
ip403нетЗапрос с адреса, которого нет в списке разрешённых для ключа.
blocked403нетАккаунт недоступен.
closed503даСервис закрыт на тестирование: доступ только для администратора.
scope403нетУ ключа нет нужного права (read, run или write).
limit429даИсчерпан лимит запросов ключа или лимит тарифа. Повторите после паузы из заголовка Retry-After.
not_found404нетСайт, задача, задание или данные не найдены (или принадлежат другому аккаунту).
not_ready409даДанных ещё нет: проверка не выполнялась или не завершена. Запустите проверку или дождитесь задания.
method405нетДля этого адреса такой HTTP-метод не поддерживается.
bad_request400нетЗапрос составлен неверно: смотрите текст ошибки.
bad_host400нетНе удалось распознать домен.
bad_status400нетНедопустимое значение статуса.
bad_param400нетОдин из параметров запроса имеет недопустимое значение.
unsupported422нетОперация для этого объекта невозможна (например, задачу этого типа нельзя перепроверить автоматически).
idem_conflict422нетIdempotency-Key уже использован с другим запросом. Возьмите новый ключ.
idem_busy409даЗапрос с этим Idempotency-Key ещё выполняется. Повторите через секунду.
tool_off503нетУтилита отключена администратором. Выберите другую из каталога или повторите позже.
service_off503нетВнешний сервис, на котором работает этот раздел, отключён администратором для всех пользователей. Используйте другие данные или повторите позже.
tool_failed422нетУтилита не смогла обработать эти данные или адрес (текст ошибки — в error): исправьте ввод.
maintenance503даСервис на обслуживании. Повторите позже (Retry-After).
server500даВнутренняя ошибка. Повторите позже и сообщите X-Request-Id, если повторяется.

Вебхуки

События мониторинга приходят POST-запросом с JSON на ваши адреса (можно несколько, с фильтрами по типам событий и сайтам). Подпись — заголовок X-SeoMaster-Signature-V2: t=<время>,v1=<HMAC-SHA256 от «время.тело»>; ответьте 2xx за 8 секунд, иначе доставка повторится (1 мин, 5 мин, 30 мин, 2 ч, 12 ч). Журнал доставок с ручным повтором — в кабинете.

{"type":"events","host":"example.com","events":[{"text":"Сайт недоступен"}],"event":"events","delivery":4821,"sent_at":1760000000}

Бейдж с рангом

Картинка с актуальным рангом сайта из последней проверки. Ключ не нужен; бейдж сам не запускает проверку — сначала проверьте сайт.

Ранг SEOMasterпример для example.com

HTML

<a href="https://400.su/report/example.com"><img src="https://400.su/badge/example.com.svg" alt="Ранг SEOMaster"></a>

Markdown

[![Ранг SEOMaster](https://400.su/badge/example.com.svg)](https://400.su/report/example.com)