IZEK API · Вебмастер
API Вебмастера
Получайте показатели своих сайтов и ставьте подтверждённый сайт на переобход. Доступ ограничен владельцем аккаунта и выданными scope.
Bearer авторизация60 запросов в минутуJSON · UTF-8 формат ответа
1
Где взять токен и ID сайта
- Создайте приложение в личном кабинете.
- Запустите обычную OAuth-авторизацию, но добавьте
webmaster.readилиwebmaster.writeв параметрscope. - Обменяйте code на
access_tokenчерез/api/oauth/token. - Выполните запрос списка сайтов. Значение поля
idи естьSITE_ID. Тот же ID теперь явно указан на карточке сайта в Вебмастере как API ID. Это ID записи сайта пользователя, а не внутреннийsites.site_idпоискового робота.
Запрашиваем чтение
scope=profile%20webmaster.readЗапрашиваем чтение и переобход
scope=profile%20webmaster.writewebmaster.write уже включает чтение.Не запрашивайте оба scope одновременно и не просите право записи, если интеграция только показывает статистику.2
Список сайтов
GET
https://izek.ru/api/webmaster/sitescURL
curl 'https://izek.ru/api/webmaster/sites' \
-H 'Authorization: Bearer ACCESS_TOKEN'Ответ
{
"sites": [{
"id": 17,
"host": "example.ru",
"start_url": "https://example.ru/",
"verification_status": "verified",
"verified_at": "2026-08-09 12:40:00",
"known_pages": 1240,
"indexed_pages": 1188,
"index_percent": 96,
"noindex_pages": 21,
"http_errors": 8,
"queue": {"pending": 4, "processing": 1, "failed": 2},
"last_crawl_at": "2026-08-09 14:22:03"
}]
}Примеры клиента
PHP 8+
$token = getenv('IZEK_ACCESS_TOKEN');
$ch = curl_init('https://izek.ru/api/webmaster/sites');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer '.$token],
]);
$data = json_decode((string)curl_exec($ch), true, 512, JSON_THROW_ON_ERROR);
foreach ($data['sites'] ?? [] as $site) {
echo $site['id'].' '.$site['host'].PHP_EOL;
}Python
import os, requests
token = os.environ['IZEK_ACCESS_TOKEN']
r = requests.get(
'https://izek.ru/api/webmaster/sites',
headers={'Authorization': f'Bearer {token}'},
timeout=15,
)
r.raise_for_status()
for site in r.json().get('sites', []):
print(site['id'], site['host'])3
Данные одного сайта
GET
https://izek.ru/api/webmaster/sites/SITE_IDПодставьте id из массива sites или значение API ID с карточки Вебмастера. Ответ содержит объект в поле site с тем же набором параметров. Чужой ID намеренно возвращается как 404 site_not_found.
Ответ
{"site":{"id":17,"host":"example.ru","verification_status":"verified","known_pages":1240,"indexed_pages":1188,"index_percent":96,"queue":{"pending":4,"processing":1,"failed":2}}}4
Запрос переобхода
POST
https://izek.ru/api/webmaster/sites/SITE_ID/reindexНужен scope webmaster.write. Сайт должен принадлежать пользователю и иметь статус verified.
cURL
curl -X POST 'https://izek.ru/api/webmaster/sites/17/reindex' \
-H 'Authorization: Bearer ACCESS_TOKEN'PHP 8+
$siteId = 17;
$token = getenv('IZEK_ACCESS_TOKEN');
$ch = curl_init('https://izek.ru/api/webmaster/sites/'.$siteId.'/reindex');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer '.$token],
]);
$result = json_decode((string)curl_exec($ch), true, 512, JSON_THROW_ON_ERROR);202 Accepted
{"ok":true,"site_id":17,"status":"queued"}{ }
Параметры сайта
idЧисловой ID сайта. Используется вместо SITE_ID.hostНормализованное доменное имя.start_urlСтартовый URL, добавленный владельцем.verification_statuspending, verified или failed.verified_atДата подтверждения прав или null.known_pagesСколько URL сайта известно роботу.indexed_pagesСколько страниц участвует в поиске.index_percentДоля проиндексированных URL, целое число от 0 до 100.noindex_pagesКоличество страниц, исключённых директивой noindex.http_errorsКоличество URL с HTTP-ошибками.queue.pendingОжидают обхода.queue.processingОбрабатываются сейчас.queue.failedПоследняя попытка завершилась ошибкой.last_crawl_atДата последнего обхода или null.!
Ошибки API
401 invalid_tokenТокен отсутствует, истёк или отозван.403 insufficient_scopeВ ответе есть required_scope с нужным правом.404 site_not_foundID не существует или сайт принадлежит другому пользователю.409 reindex_unavailableСайт не подтверждён, действует лимит или переобход пока невозможен. Поле message содержит пояснение.405 method_not_allowedДля адреса выбран неверный HTTP-метод.429 rate_limitedПревышено 60 запросов за минуту.500 server_errorВнутренняя ошибка при постановке в очередь.