Обзор ресурсов API. Руководство разработчика
/user/ | Получение идентификатора пользователя | ||
/user/{user-id}/hosts/ | Получение списка сайтов пользователя | Добавление сайта | |
/user/{user-id}/hosts/{host-id}/ | Получение информации о сайте | Удаление сайта | |
/user/{user-id}/hosts/{host-id}/summary/ | Получение статистики сайта | ||
/user/{user-id}/hosts/{host-id}/important-urls/ | Мониторинг важных страниц | ||
/user/{user-id}/hosts/{host-id}/important-urls/history/ | Получение истории изменений важной страницы | ||
/user/{user-id}/hosts/{host-id}/verification/ | Получение информации о подтверждении сайта | Запуск процедуры подтверждения прав | |
/user/{user-id}/hosts/{host-id}/owners/ | Получение списка пользователей, подтвердивших права на сайт | ||
/user/{user-id}/hosts/{host-id}/sitemaps/ | Получение списка файлов Sitemap | ||
/user/{user-id}/hosts/{host-id}/sitemaps/{sitemap-id}/ | Получение информации о файле Sitemap | ||
/user/{user-id}/hosts/{host-id}/user-added-sitemaps/ | Получение списка файлов Sitemap, добавленных пользователем | Добавление файла Sitemap | |
/user/{user-id}/hosts/{host-id}/user-added-sitemaps/{sitemap-id}/ | Получение информации о Sitemap, добавленном пользователем | Удаление файла Sitemap | |
/user/{user-id}/hosts/{host-id}/sqi_history/ | Получение истории изменения ИКС | ||
/user/{user-id}/hosts/{host-id}/search-queries/popular/ | Получение информации о популярных поисковых запросах | ||
/user/{user-id}/hosts/{host-id}/search-queries/all/history/ | Получение общей статистики по всем поисковым запросам | ||
/user/{user-id}/hosts/{host-id}/search-queries/{query-id}/history/ | Получение общей статистики по поисковому запросу | ||
/user/{user-id}/hosts/{host-id}/recrawl/queue/ | Получение списка задач на переобход | Отправление страницы сайта на переобход | |
/user/{user-id}/hosts/{host-id}/recrawl/quota/ | Проверка квоты на переобход | ||
/user/{user-id}/hosts/{host-id}/recrawl/queue/{task-id}/ | Проверка статуса задачи на переобход | ||
/user/{user-id}/hosts/{host-id}/diagnostics/ | Диагностика сайта | ||
/user/{user-id}/hosts/{host-id}/indexing/history/ | Получение истории индексирования сайта | ||
/user/{user-id}/hosts/{host-id}/indexing/samples/ | Просмотр примеров загруженных страниц | ||
/user/{user-id}/hosts/{host-id}/search-urls/in-search/history/ | Получение истории изменения количества страниц в поиске | ||
/user/{user-id}/hosts/{host-id}/search-urls/in-search/samples/ | Просмотр примеров страниц в поиске | ||
/user/{user-id}/hosts/{host-id}/search-urls/events/history/ | Получение истории появления и исключения страниц из поиска | ||
/user/{user-id}/hosts/{host-id}/search-urls/events/samples/ | Просмотр примеров появившихся и удаленных страниц из поиска | ||
/user/{user-id}/hosts/{host-id}/links/internal/broken/samples/ | Получение информации о неработающих внутренних ссылках сайта | ||
/user/{user-id}/hosts/{host-id}/links/internal/broken/history/ | Получение истории изменения количества неработающих внутренних ссылок сайта | ||
/user/{user-id}/hosts/{host-id}/links/external/samples/ | Получение информации о внешних ссылках на сайт | ||
/user/{user-id}/hosts/{host-id}/links/external/history/ | Получение истории изменения количества внешних ссылок на сайт | ||
/user/{user_id}/hosts/{host_id}/feeds/list/ | Получение информации о загруженных фидах | ||
/user/{user_id}/hosts/{host_id}/feeds/add/start/ | Асинхронная загрузка фида | ||
/user/{user_id}/hosts/{host_id}/feeds/add/info/ | Получение статуса асинхронной загрузки фида | ||
/user/{user_id}/hosts/{host_id}/feeds/batch/add/ | Загрузка нескольких фидов | ||
/user/{user_id}/hosts/{host_id}/feeds/batch/remove/ | Удаление нескольких фидов |
Интеграция API Яндекс.

Оглавление
API открывает доступ к данным Яндекс.Вебмастера о сайтах. (https://yandex.ru/dev/webmaster/)
Данные в Вебмастере могут отличаться от данных Подбора слов (Wordstat) и Метрики!
1. Регистрация — нужен аккаунт любого из сервисов Яндекс. Например почта — https://mail.yandex.ru.
2. Зарегистрировать новое приложение — https://oauth.yandex.ru/client/new.
Чтобы начать работу с API Яндекс.Вебмастера, компания должна заключить с Яндексом соглашение в установленной форме и получить client_id в системе авторизации Яндекса oauth.yandex.ru.
Без client_id использование API невозможно.
В дальнейшем оно нам потребуется, чтобы получать токены пользователей, сайты которых мы хотим мониторить.
Заходим в только что созданное приложение, получаем «id приложения» и «пароль приложения»:
Результат регистрации приложения:
ID: 6cbc6303d4c147e697303c1fca9906c9
Пароль: __________________________
Callback URL: https://oauth. yandex.ru/verification_code
Где, ID – это client_id=6cbc6303d4c147e697303c1fca9906c9.
3. Получить токен через код подтверждения (https://yandex.ru/dev/oauth/doc/dg/reference/web-client-docpage/).
URL для запроса токена. https://oauth.yandex.ru/authorize?response_type=token&client_id=6cbc6303d4c147e697303c1fca9906c9
Результат:AgAAAAAEvkq-___________________________
Альтернативный вариант.
Идентификатор доступен в https://oauth.yandex.ru/ (нажмите на название приложения, чтобы открыть его свойства).
4. Кроме этого, при обращении к ресурсам API необходимо указывать ID пользователя — нужен для вызова любых ресурсов API (https://yandex.ru/dev/webmaster/doc/dg/reference/user-docpage/).
Его можно получить в начале работы с помощью вызова ресурса user.
URL запроса: https://api.webmaster.yandex.net/v4/userТип запроса: GET
В Headers запроса необходимо указать ключ Authorization с значением OAuth ________________________.
Где OAuth .. – это токен.
Результат:
{ "user_id": 79579838 }
На данном этапе получены все параметры авторизации. Теперь можно работать с API запросами.
Документация — Обзор ресурсов API : https://yandex.ru/dev/webmaster/doc/dg/concepts/getting-started-docpage/.
API Яндекс.Вебмастера доступен для идентифицированных пользователей по адресу: https://api.webmaster.yandex.net.
Документация: https://yandex.ru/dev/webmaster/doc/dg/reference/host-search-queries-popular-docpage/
Формат запроса:
Тип запроса: GET
Кодировка: UTF-8.
Формат ответа: JSON.
В Headers запроса необходимо указать ключ Authorization с значением OAuth AgAEA7qiYr3jAAZkPBHzz0KgYE6KtE6A77OlGE4.
URL запроса: https://api.webmaster.yandex.net/v4/user/{user-id}/hosts/{host-id}/search-queries/popular
? order_by= & [query_indicator=]& [date_from=] & [date_to=]
Path-параметры | |
user-id | «user_id»: 79579838 |
host-id | ID сайта — https:falcon. |
Query-параметры | |
order_by * | Показатель для сортировки запросов TOTAL_SHOWS Количество показов. TOTAL_CLICKS Количество кликов. |
query_indicator | Индикаторы для отображения запросов TOTAL_SHOWS Количество показов. TOTAL_CLICKS Количество кликов. AVG_SHOW_POSITION Средняя позиция показа. AVG_CLICK_POSITION Средняя позиция клика. |
date_from | Дата начала интервала. Если не указан, то данные возвращаются за последнюю неделю. Формат: ГГГГ-ММ-ЧЧ. |
date_to | Дата конца интервала. Если не указан, то данные возвращаются за последнюю неделю. |
limit | Размер страницы (1—500). Значение по умолчанию: 500. |
Параметры query_indicator – можно написать несколько в одном запросе.
Пример – реальный запрос с перечислением всех индикаторов для отображения запросов.
https://api.webmaster.yandex.net/v4/user/79579838/hosts/https:falcon.web-automation.ru:443/search-queries/popular?order_by=TOTAL_SHOWS&query_indicator=TOTAL_SHOWS&date_from=2020-01-01&date_to=2020-12-31&query_indicator=TOTAL_CLICKS&query_indicator=AVG_SHOW_POSITION&query_indicator=AVG_CLICK_POSITION
Ответ запроса преобразуется из формата JSON в таблицу вида.
query_text | TOTAL_SHOWS | TOTAL_CLICKS | AVG_SHOW_POSITION | AVG_CLICK_POSITION |
cms для маркетплейса | 89.00 | 8. | 7.43 | 6.38 |
скрипт маркетплейса | 73.00 | 24.00 | 4.60 | 4.58 |
движок для маркетплейса | 64.00 | 7.00 | 7.52 | 6.86 |
движок маркетплейса | 49.00 | 5.00 | 5.14 | 5.00 |
falcon space | 44.00 | 13.00 | 1.30 | 1.00 |
Аналогичным образом реализованы несколько других запросов, указанных в документации.
Результат:
Приведен с сокращениями.
{ "count": 2791, "queries": [ { "query_id": "4655b69c239b6462", "query_text": "cms для маркетплейса", "indicators": { "TOTAL_SHOWS": 92.0, "TOTAL_CLICKS": 8.0, "AVG_SHOW_POSITION": 7.521739130434782, "AVG_CLICK_POSITION": 6.375 } }, { "query_id": "f8de4510bbd8a622", "query_text": "скрипт маркетплейса", "indicators": { "TOTAL_SHOWS": 71.0, "TOTAL_CLICKS": 25.0, "AVG_SHOW_POSITION": 4.549295774647887, "AVG_CLICK_POSITION": 4.52 } }, … { "query_id": "dde486b6f18ac2c3", "query_text": "манго офис коллтрекинг видео", "indicators": { "TOTAL_SHOWS": 2.0, "TOTAL_CLICKS": 0.0, "AVG_SHOW_POSITION": 13.0, "AVG_CLICK_POSITION": null } } ], "date_from": "2020-01-01", "date_to": "2020-06-20" }
CREATE PROCEDURE [dbo].[api_yaWebmasterQueriesPopularCounters_request] @parameters ExtendedDictionaryParameter READONLY, -- входящие параметры для внутренней обработки (используйте Key, Value2) @username nvarchar(32) -- текущий пользователь.AS BEGIN -- ВХ.ПАРАМ. -- АВТОРИЗАЦИЯ DECLARE @token nvarchar(MAX) SET @token = N'OAuth AgAAAAAEvkq-_______________________' -- Authorization DECLARE @user_id nvarchar(MAX) -- Тип: int64. ID пользователя. Необходим для вызова любых ресурсов API Яндекс.Вебмастера. SET @user_id = N'79579838' -- N'"user_id": 79579838' -- DECLARE @host_id nvarchar(MAX) -- Тип: host id (string). ID сайта. SET @host_id = N'https:falcon.web-automation.ru:443' -- Параметры запроса DECLARE @order_by nvarchar(100) -- ? order_by= -- TOTAL_SHOWS Количество показов. / TOTAL_CLICKS Количество кликов. SET @order_by = N'TOTAL_SHOWS' DECLARE @query_indicator nvarchar(100) -- & [query_indicator=] -- TOTAL_SHOWS Количество показов. / TOTAL_CLICKS Количество кликов. / AVG_SHOW_POSITION Средняя позиция показа. / AVG_CLICK_POSITION Средняя позиция клика. SET @query_indicator = N'TOTAL_SHOWS' -- ! ВСЕ_ПАРАМЕТРЫ - можно получить одним запросом ! DECLARE @query_indicator2 nvarchar(100) = NULL SET @query_indicator2 = N'TOTAL_CLICKS' DECLARE @query_indicator3 nvarchar(100) = NULL SET @query_indicator3 = N'AVG_SHOW_POSITION' DECLARE @query_indicator4 nvarchar(100) = NULL SET @query_indicator4 = N'AVG_CLICK_POSITION' DECLARE @date_from nvarchar(10) -- & [date_from=] -- 2020-01-01 -- ГГГГ-ММ-ЧЧ -- 23 ISO8601 гггг-мм-дд SET @date_from = CONVERT ( nvarchar(10) , GETDATE() - 30 , 23 ) -- минус 1 месяц от текущей даты DECLARE @date_to nvarchar(10) -- & [date_to=] -- 2020-12-31 -- ГГГГ-ММ-ЧЧ -- 23 ISO8601 гггг-мм-дд SET @date_to = CONVERT ( nvarchar(10) , GETDATE() , 23 ) DECLARE @apiUrl nvarchar(max) = '' -- Финальная строка для отправки -- @apiStr -- ФАКТИЧЕСКИ ЭТО Url -- SET @apiUrl = 'https://api.
webmaster.yandex.net/v4/user/79579838/hosts/https:falcon.web-automation.ru:443/search-queries/popular?order_by=TOTAL_SHOWS&query_indicator=TOTAL_SHOWS&date_from=2020-01-01&date_to=2020-12-31&query_indicator=TOTAL_CLICKS&query_indicator=AVG_SHOW_POSITION&query_indicator=AVG_CLICK_POSITION' SET @apiUrl = 'https://api.webmaster.yandex.net/v4/user/'+@user_id +'/hosts/'+ @host_id +'/search-queries/popular?order_by='+@order_by +'&query_indicator='+@query_indicator +'&date_from='+@date_from +'&date_to='+@date_to + IIF ( @query_indicator2 IS NOT NULL, +'&query_indicator='+@query_indicator2, '' ) + IIF ( @query_indicator2 IS NOT NULL, +'&query_indicator='+@query_indicator3, '' ) + IIF ( @query_indicator2 IS NOT NULL, +'&query_indicator='+@query_indicator4, '' ) -- ОТЛАДКА insert into as_trace ( header, text, username, code , created ) values( '@apiUrl', @apiUrl , @username, 'api_yaWebmasterQueriesPopularCounters_request' , GETDATE() ) -- Постоянные табблицы - 1 - dbo. api_yaWebmasterSessions - Журнал Запусков (дата + параметры) - 2 - api_yaWebmasterSessionsData - результат insert into dbo.api_yaWebmasterSessions ( created , userСreator , requestPROCEDURE , apiCommonName -- убрать из измени проц. начало api_ ... и конец ... _request , date_from , date_to , apiUrl ) values( GETDATE() , @username , 'api_yaWebmasterQueriesPopularCounters_request' , 'yaWebmasterQueriesPopularCounters' -- убрать из измени проц. начало api_ ... и конец ... _request , @date_from , @date_to , @apiUrl ) -- SELECT 1 Msg, Result, Url (адрес, куда будет идти запрос) select '' Msg, 1 Result , @apiUrl Url -- SELECT 2 PARAMETERS - параметры, которые будут передаваться во внешний источник select 'Authorization' name , 'OAuth AgAAAAAEvkq-_____________________________' value -- @token , 'header' AS [type] -- form (в форме передается), header (в http headers), get запросы передавайте прямо в URL END
CREATE PROCEDURE [dbo].[api_yaWebmasterQueriesPopularCounters_response] @response nvarchar(max), @parameters ExtendedDictionaryParameter READONLY, -- входящие параметры для внутренней обработки (используйте Key, Value2 - те же что и на request) @username nvarchar(32) AS BEGIN -- ОТЛАДКА insert into as_trace ( header, text, username, code , created ) values( 'LEN @response ', LEN ( @response ) , @username, 'api_yaWebmasterQueriesPopularCounters_response' , GETDATE() ) insert into as_trace ( header, text, username, code , created ) values( '@response - 1 , 1024 ', SUBSTRING ( @response , 1 , 1024 ) , @username, 'api_yaWebmasterQueriesPopularCounters_response' , GETDATE() ) -- ! Преобразование - заменить одиночную кавычку на двойную ! - иначе это будет обрыв строки (конец стркои) в середине текста ! -- "eckmar's marketplace script v2.0", -- ! DECLARE @json1 nvarchar(max) SET @json1 = REPLACE ( @response , '''' , '''''' ) ----------------------------------------------------------------------------------------------------------------- -- Постоянные табблицы - 1 - dbo.
api_yaWebmasterSessions - Журнал Запусков (дата + параметры) - 2 - api_yaWebmasterSessionsData - результат -- Определение номера сесии, считаем, что это последняя запись в журнале запусков для текущего пользователя DECLARE @maxSessionID int = 0 SELECT @maxSessionID = ISNULL( MAX( id ), 0) FROM dbo.api_yaWebmasterSessions WHERE userСreator = @username AND apiCommonName = 'yaWebmasterQueriesPopularCounters' -- Основной запрос -- ВСТАВКА ДАННЫХ INSERT INTO dbo.api_yaWebmasterSessionsData ( sessionID, countResult , date_from, date_to , query_id , query_text, TOTAL_SHOWS, TOTAL_CLICKS , AVG_SHOW_POSITION, AVG_CLICK_POSITION ) SELECT @maxSessionID AS sessionID -- , TRY_CAST ( JSON_VALUE(@json1, '$.count') AS INT ) AS countResult , JSON_VALUE(@json1, '$.date_from') AS date_from -- "date_from": "2020-01-01", , JSON_VALUE(@json1, '$.date_to') AS date_to -- "date_to": "2020-06-14" -- , Query.query_id, Query.query_text , ISNULL( Query.TOTAL_SHOWS, 0) , ISNULL( Query.
TOTAL_CLICKS, 0) , ISNULL( Query.AVG_SHOW_POSITION, 0) , ISNULL( Query.AVG_CLICK_POSITION, 0) FROM OPENJSON(@json1, N'$.queries') -- Зашли в массив queries , далее в WITH считаем , что адреса уже внути массива queries WITH ( query_id VARCHAR(200) N'$.query_id' , query_text VARCHAR(200) N'$.query_text' , TOTAL_SHOWS decimal(18, 2) N'$.indicators.TOTAL_SHOWS' -- VARCHAR(200) , TOTAL_CLICKS decimal(18, 2) N'$.indicators.TOTAL_CLICKS' , AVG_SHOW_POSITION decimal(18, 2) N'$.indicators.AVG_SHOW_POSITION' , AVG_CLICK_POSITION decimal(18, 2) N'$.indicators.AVG_CLICK_POSITION' ) AS Query ----------------------------------------------------------------------------------------------------------------- -- табл. с данными - dbo.api_yaWebmasterSessionsData / строк - *** DECLARE @isExistTable int = 0 DECLARE @countTableRecords int = 0 SELECT @isExistTable = ISNULL( object_id('api_yaWebmasterSessionsData') , 0 ) IF @isExistTable > 0 SELECT @countTableRecords = ISNULL( count(*) , 0 ) FROM dbo.
api_yaWebmasterSessionsData WHERE sessionID = @maxSessionID -- SELECT 1 select 'Табл. с данными - dbo.api_yaWebmasterSessionsData ' + IIF ( @isExistTable = 0 , 'не заполнена!' , 'заполнена, записей - '+ TRY_CAST ( @countTableRecords AS nvarchar) +'. Сесиия - '+ TRY_CAST ( @maxSessionID AS nvarchar) ) AS Msg , 1 Result , @response Response -- SELECT 2 Внешние действия END
Приведенные ниже запросы API работают по тому же принципу.
Код исходящего запроса | Название |
yaWebmasterHosts | ya Webmaster — Список сайтов |
yaWebmasterHostInfo | ya Webmaster — Информация о сайте |
yaWebmasterHostDiagnostics | (20)ya Webmaster — Диагностика сайта |
yaWebmasterQueriesPopularTOTAL_SHOWS | (16)ya Webmaster — Популярные запросы — TOTAL_SHOWS |
yaWebmasterQueriesPopularTOTAL_CLICKS | (16)ya Webmaster — Популярные запросы — TOTAL_CLICKS |
yaWebmasterQueriesPopularAVG_SHOW | (16)ya Webmaster — Популярные запросы — AVG_SHOW_POSITION |
yaWebmasterQueriesPopularAVG_CLICK | (16)ya Webmaster — Популярные запросы — AVG_CLICK_POSITION |
Falcon Space — функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?
Google поиск по нашей документации
Документация для yandex-webmaster (0.2.0)
Список файлов
- README
Список пространств имен от A до Z
|
|
|
яндекс-вебмастер | RubyGems.
