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.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-запроса.
Не нашли нужной информации? Напишите нам в тех.поддержку