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

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

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

Перед созданием или обновлением задачи отправьте её тело в POST. Ответ покажет расход лимитов для выбранных параметров и тарифа.

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: ВАШ_КЛЮЧ

Повторяйте чтение с паузой. Проверяйте состояние задачи и завершайте ожидание по правилам из инструкции по работе с API. Результат теста 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 задачи; не отправляйте новые запросы создания только ради ожидания.

Стоимость

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

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

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

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

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

В testsNames укажите нужные поля из списка ниже. Доступность и свежесть данных зависят от домена, проверяйте updated и isActual в результате.

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

  • 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 и сбором технических данных для улучшения работы сайта согласно политике конфиденциальности.