API и бейдж
Получайте отчёты в JSON и показывайте ранг сайта на своих страницах
Доступ
OpenAPI 3 (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}.
Коды ошибок
| code | HTTP | Повтор | Значение |
|---|---|---|---|
missing | 401 | нет | Не передан ключ. Добавьте заголовок X-Api-Key или Authorization: Bearer. |
invalid | 401 | нет | Ключ не найден. Проверьте, что он скопирован целиком. |
revoked | 401 | нет | Ключ отозван. Выпустите новый в кабинете. |
expired | 401 | нет | Срок действия ключа истёк. Выпустите новый. |
ip | 403 | нет | Запрос с адреса, которого нет в списке разрешённых для ключа. |
blocked | 403 | нет | Аккаунт недоступен. |
closed | 503 | да | Сервис закрыт на тестирование: доступ только для администратора. |
scope | 403 | нет | У ключа нет нужного права (read, run или write). |
limit | 429 | да | Исчерпан лимит запросов ключа или лимит тарифа. Повторите после паузы из заголовка Retry-After. |
not_found | 404 | нет | Сайт, задача, задание или данные не найдены (или принадлежат другому аккаунту). |
not_ready | 409 | да | Данных ещё нет: проверка не выполнялась или не завершена. Запустите проверку или дождитесь задания. |
method | 405 | нет | Для этого адреса такой HTTP-метод не поддерживается. |
bad_request | 400 | нет | Запрос составлен неверно: смотрите текст ошибки. |
bad_host | 400 | нет | Не удалось распознать домен. |
bad_status | 400 | нет | Недопустимое значение статуса. |
bad_param | 400 | нет | Один из параметров запроса имеет недопустимое значение. |
unsupported | 422 | нет | Операция для этого объекта невозможна (например, задачу этого типа нельзя перепроверить автоматически). |
idem_conflict | 422 | нет | Idempotency-Key уже использован с другим запросом. Возьмите новый ключ. |
idem_busy | 409 | да | Запрос с этим Idempotency-Key ещё выполняется. Повторите через секунду. |
tool_off | 503 | нет | Утилита отключена администратором. Выберите другую из каталога или повторите позже. |
service_off | 503 | нет | Внешний сервис, на котором работает этот раздел, отключён администратором для всех пользователей. Используйте другие данные или повторите позже. |
tool_failed | 422 | нет | Утилита не смогла обработать эти данные или адрес (текст ошибки — в error): исправьте ввод. |
maintenance | 503 | да | Сервис на обслуживании. Повторите позже (Retry-After). |
server | 500 | да | Внутренняя ошибка. Повторите позже и сообщите 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}
Бейдж с рангом
Картинка с актуальным рангом сайта из последней проверки. Ключ не нужен; бейдж сам не запускает проверку — сначала проверьте сайт.
HTML
<a href="https://400.su/report/example.com"><img src="https://400.su/badge/example.com.svg" alt="Ранг SEOMaster"></a>
Markdown
[](https://400.su/report/example.com)