Анализ сайта
Вход

API: массовая проверка доменов

API инструмента «Массовая проверка доменов» позволяет получить сохранённые SEO-показатели нескольких сайтов и отдельно запросить их обновление. Для работы нужен ключ из настроек API.

1. Создайте задачу чтения

Отправьте POST https://apis.pr-cy.ru/api/v2.1.0/tool-tasks/ с заголовками Content-Type: application/vnd.api+json и Api-Key: ВАШ_КЛЮЧ.

{
  "data": {
    "type": "toolTasks",
    "attributes": {
      "toolName": "checkDomains",
      "params": {
        "domains": ["example.com", "example.org"],
        "checkedDomains": [],
        "testsNames": {
          "ip.ip": true,
          "mainPageTitle.title": true
        }
      }
    }
  }
}

domains — список доменов, testsNames — нужные поля со значением true. Максимальное число доменов в одном запросе зависит от тарифа. При превышении API вернёт ошибку. Условия — в разделе «Тарифы и цены».

Пустой checkedDomains означает чтение сохранённых данных. Если данных по домену нет, результат для него может оказаться пустым. Такой ответ не означает, что автоматически запущен полный анализ первого домена.

2. Получите результат

Сохраните data.id из ответа и выполните:

GET https://apis.pr-cy.ru/api/v2.1.0/tool-tasks/ID_ЗАДАЧИ?include=tests&filter[since]=0
Api-Key: ВАШ_КЛЮЧ

Повторяйте чтение с паузой, пока задача выполняется. Результат теста checkDomainsTool находится в included[].attributes.results.checkDomainsDomainsTests. Для домена смотрите tests, дату updated и признак isActual. Поля разных тестов могут иметь разные даты и быть незаполненными.

Короткий пример содержимого included[].attributes.results:

{
  "progress": 1,
  "checkDomainsDomainsTests": [
    {
      "domain": "example.com",
      "updated": "2026-09-28T10:00:00+00:00",
      "isActual": true,
      "isUpdating": false,
      "tests": {
        "mainPageTitle": {
          "title": "Пример сайта",
          "updated": "2026-09-28T10:00:00+00:00"
        }
      }
    }
  ]
}

3. Обновите выбранные домены

После получения первоначального результата повторите создание задачи с теми же domains и testsNames, указав в checkedDomains домены, которые нужно обновить. Они должны входить в domains.

Обновление расходует лимиты и выполняется асинхронно. Получайте состояние по ID задачи; не отправляйте новые запросы создания только ради ожидания.

Стоимость

Чтение сохранённых данных и принудительное обновление рассчитываются по-разному:

  • Чтение — 1 лимит за каждый домен с сохранёнными данными, который не указан в checkedDomains.
  • Обновление — 1 лимит за каждую выбранную группу полей на каждый домен из checkedDomains. Группы перечислены ниже. Несколько полей одной группы оплачиваются как одна группа. Группа «Содержимое страницы» учитывается всегда: при обновлении API проверяет HTTP-статус домена.
  • Если выбраны поля посещаемости, к обновлению добавляются ещё 2 лимита на домен. Применение доплаты зависит от тарифа — см. «Тарифы и цены»; точную сумму вернёт запрос стоимости ниже.
  • При обновлении существующей задачи с теми же domains и testsNames повторного списания за чтение нет; оплачивается обновление доменов из checkedDomains.
  • Если все домены из domains указаны в checkedDomains, чтение бесплатно.

Получайте готовый результат через GET по ID задачи. Повторный POST с пустым checkedDomains после завершения задачи снова запускает чтение и расходует лимиты.

До запуска отправьте то же тело в POST https://apis.pr-cy.ru/api/v2.1.0/tool-tasks/cost. Используйте возвращённую стоимость для конкретных параметров и тарифа вместо фиксированного примера цены.

Допустимые поля

Ниже приведены группы полей, поддерживаемые текущей реализацией. Наличие поля в списке не гарантирует, что у каждого домена есть свежие данные.

Индексация и показатели Яндекса

  • googleIndex.googleIndex
  • yandexAchievements.yandexAchievementsHttps
  • yandexAchievements.yandexAchievementsMarketRating
  • yandexAchievements.yandexAchievementsOfficial
  • yandexAchievements.yandexAchievementsTurbo
  • yandexIndex.yandexIndex
  • yandexReviews.count
  • yandexSqi.yandexSqi

Домен и технологии безопасности

  • ip.ip
  • ipCountry.ipCountryCode
  • ipIsp.ipIspName
  • ipIsp.ipOrganizationName
  • prcyRank.prcyRankTotal
  • ahrefsDomainRating.ahrefsDomainRating
  • roskomnadzor.roskomnadzorDomainForbidden
  • roskomnadzor.roskomnadzorIpForbidden
  • whoisCreationDate.whoisCreationDate
  • whoisExpirationDate.whoisExpirationDate
  • googleTransparencyReport.googleTransparencyReportValue
  • yandexSafeBrowsing.yandexSafeBrowsing

Посещаемость

  • avgVisitDuration.avgVisitDuration
  • bounceRate.bounceRate
  • category.categoryTopName
  • publicStatisticsPrcy.publicStatisticsPrcyPageViewsMonthly
  • publicStatisticsPrcy.publicStatisticsPrcyVisitsMonthly
  • publicStatisticsPrcy.publicStatisticsPrcyVisitsMonthlyHistory
  • similarWebRank.similarWebGlobalRank
  • trafficSources.trafficSourcesDirect
  • trafficSources.trafficSourcesOrganicSearch
  • trafficSources.trafficSourcesPaidSearch
  • trafficSources.trafficSourcesReferrals
  • trafficSources.trafficSourcesSocial

Счётчики ссылок

  • socialCounters.overallCount

Внешние SEO-показатели

  • semRush.semRushCosts
  • semRush.semRushDlinks
  • semRush.semRushHlinks
  • semRush.semRushKwords
  • semRush.semRushRank
  • semRush.semRushTraffic
  • semRush.semRushUlinks

Социальные сети

  • telegramChannels.telegramChannels
  • vkontakteSocial.groupName
  • vkontakteSocial.groupMembersCount

Содержимое страницы

  • httpStatusCode.finalStatusCode
  • loadTime.loadTime
  • mainPageDescription.description
  • mainPageTitle.title
  • mainPagePageSize.pageSize
  • mainPageTextLength.textLength
  • mainPageTechs.browserTechs
  • mainPageHeaders.headers

Общий порядок авторизации, ожидания и обработки ошибок описан в инструкции для первого API-запроса.

Не нашли нужной информации? Напишите нам в тех.поддержку

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