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.googleIndexyandexAchievements.yandexAchievementsHttpsyandexAchievements.yandexAchievementsMarketRatingyandexAchievements.yandexAchievementsOfficialyandexAchievements.yandexAchievementsTurboyandexIndex.yandexIndexyandexReviews.countyandexSqi.yandexSqi
Домен и технологии безопасности
ip.ipipCountry.ipCountryCodeipIsp.ipIspNameipIsp.ipOrganizationNameprcyRank.prcyRankTotalahrefsDomainRating.ahrefsDomainRatingroskomnadzor.roskomnadzorDomainForbiddenroskomnadzor.roskomnadzorIpForbiddenwhoisCreationDate.whoisCreationDatewhoisExpirationDate.whoisExpirationDategoogleTransparencyReport.googleTransparencyReportValueyandexSafeBrowsing.yandexSafeBrowsing
Посещаемость
avgVisitDuration.avgVisitDurationbounceRate.bounceRatecategory.categoryTopNamepublicStatisticsPrcy.publicStatisticsPrcyPageViewsMonthlypublicStatisticsPrcy.publicStatisticsPrcyVisitsMonthlypublicStatisticsPrcy.publicStatisticsPrcyVisitsMonthlyHistorysimilarWebRank.similarWebGlobalRanktrafficSources.trafficSourcesDirecttrafficSources.trafficSourcesOrganicSearchtrafficSources.trafficSourcesPaidSearchtrafficSources.trafficSourcesReferralstrafficSources.trafficSourcesSocial
Счётчики ссылок
socialCounters.overallCount
Внешние SEO-показатели
semRush.semRushCostssemRush.semRushDlinkssemRush.semRushHlinkssemRush.semRushKwordssemRush.semRushRanksemRush.semRushTrafficsemRush.semRushUlinks
Социальные сети
telegramChannels.telegramChannelsvkontakteSocial.groupNamevkontakteSocial.groupMembersCount
Содержимое страницы
httpStatusCode.finalStatusCodeloadTime.loadTimemainPageDescription.descriptionmainPageTitle.titlemainPagePageSize.pageSizemainPageTextLength.textLengthmainPageTechs.browserTechsmainPageHeaders.headers
Общий порядок авторизации, ожидания и обработки ошибок описан в инструкции для первого API-запроса.
Не нашли нужной информации? Напишите нам в тех.поддержку