DataForSEO
SEO, search-engine results, keyword research, backlinks and AI visibility data.
Постановка задач OnPage
Запускает обход target и возвращает id задачи в tasks[0].id — этот id нужен всем остальным инструментам семейства, сохраните его. max_crawl_pages ограничивает обход, start_url, max_crawl_depth, priority_urls и crawl_delay задают его форму, а store_raw_html определяет, будет ли у post_dataforseo_on_page_raw_html что возвращать позже. Ответ обёрнут в конверт DataForSEO: данные в tasks[0].result, результат в tasks[0].status_code — отклонённый запрос всё равно возвращает HTTP 200. ⚠️ Это не обычная пара «отправка/получение»: обход — это сеанс, который затем опрашивают по id десятки других инструментов. Опрашивайте get_dataforseo_on_page_summary, пока crawl_progress не станет finished; обход example.com на одну страницу занял заметно меньше минуты.
Справочные цены
- Тарификация: стоимость ответа по данным провайдера.
- Справочная оценка запроса: USD 0.003.
- Справочный множитель для клиента: 1.0. Не применяйте его повторно к уже рассчитанной сумме клиента.
Справочные метаданные, а не коммерческое предложение для аккаунта, гарантированная цена или лимит расходов. Кредиты ресурсов — не кредиты Felo. Итоговые списания определяются записями биллинга Felo.
- Тип: array (object | null)[]
- acceptТип: string | null
_language языковой заголовок для доступа к веб-сайту
необязательное поле
поддерживаются все форматы локалей (xx, xx-XX, xxx-XX и т. д.)
Примечание: если не указать этот параметр, некоторые веб-сайты могут отказать в доступе; в этом случае страницы будут возвращены с"type":"brokenв массиве ответа - allowТип: boolean | null
_subdomains включать страницы на поддоменах
необязательное поле
задайтеtrue, если хотите обходить все поддомены целевого веб-сайта
значение по умолчанию:false - allowedТип: array string[] | null
_subdomains поддомены для обхода
необязательное поле
укажите поддомены, которые хотите обойти
пример:["blog.site.com", "my.site.com", "shop.site.com"]
Примечание: чтобы использовать этот параметр, параметрallow_subdomainsдолжен иметь значениеfalse;
иначе содержимое поляallowed_subdomainsбудет проигнорировано, и результаты будут возвращены для всех поддоменов - browserТип: string | null
_preset пресет параметров экрана браузера
необязательное поле
если вы используете это поле, указыватьbrowser_screen_width,browser_screen_height,browser_screen_scale_factorне нужно. возможные значения:desktop,mobile,tabletdesktopпресет применяет следующие значения:browser_screen_width: 1920browser_screen_height: 1080browser_screen_scale_factor: 1mobileпресет применяет следующие значения:browser_screen_width: 390browser_screen_height: 844browser_screen_scale_factor: 3tabletпресет применяет следующие значения:browser_screen_width: 1024browser_screen_height: 1366browser_screen_scale_factor: 2
Примечание: чтобы использовать этот параметр, задайте дляenable_javascriptилиenable_browser_renderingзначениеtrue - browserТип: integer | null
_screen _height высота экрана браузера
необязательное поле
можно задать собственную высоту экрана браузера для аудита конкретного устройства;
если вы используете это поле, указыватьbrowser_presetне нужно, так как он будет проигнорирован;
Примечание: чтобы использовать этот параметр, задайте дляenable_javascriptилиenable_browser_renderingзначениеtrueминимальное значение в пикселях:240
максимальное значение в пикселях:9999 - browserТип: number | null
_screen _scale _factor масштаб экрана браузера
необязательное поле
можно задать собственное соотношение разрешения экрана браузера для аудита конкретного устройства;
если вы используете это поле, указыватьbrowser_presetне нужно, так как он будет проигнорирован;
Примечание: чтобы использовать этот параметр, задайте дляenable_javascriptилиenable_browser_renderingзначениеtrueминимальное значение:0.5
максимальное значение:3 - browserТип: integer | null Формат: int64
_screen _width ширина экрана браузера
необязательное поле
можно задать собственную ширину экрана браузера для аудита конкретного устройства;
если вы используете это поле, указыватьbrowser_presetне нужно, так как он будет проигнорирован;
Примечание: чтобы использовать этот параметр, задайте дляenable_javascriptилиenable_browser_renderingзначениеtrueминимальное значение в пикселях:240
максимальное значение в пикселях:9999 - calculateТип: boolean | null
_keyword _density рассчитывать плотность ключевых слов для целевого домена
необязательное поле
задайтеtrue, если хотите рассчитать плотность ключевых слов для страниц веб-сайта
значение по умолчанию:false
Примечание: при использовании этого параметра взимается дополнительная плата; подробнее о стоимости задач с этим параметром — в нашей статье справки
после завершения обхода значения плотности ключевых слов можно получить с помощью эндпоинта Keyword Density - checkТип: boolean | null
_spell - checkТип: array string[] | null
_spell _exceptions слова, исключаемые из проверки орфографии
необязательное поле
укажите слова, которые нужно исключить из проверки орфографии
максимальная длина слова: 100 символов
максимальное количество слов: 1000
пример:"SERP", "minifiers", "JavaScript" - checkТип: string | null
_spell _language язык проверки орфографии
необязательное поле
поддерживаемые языки: 'hy', 'eu', 'bg', 'ca', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'et', 'fo', 'fa', 'fr', 'fy', 'gl', 'ka', 'de', 'el', 'he', 'hu', 'is', 'ia', 'ga', 'it', 'rw', 'la', 'lv', 'lt', 'mk', 'mn', 'ne', 'nb', 'nn', 'pl', 'pt', 'ro', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'tr', 'tk', 'uk', 'vi'
Примечание: если язык не указан, он будет установлен автоматически на основе содержимого страницы - checksТип: object | null
_threshold пользовательские пороговые значения для проверок
необязательное поле
можно указать пользовательские пороговые значения для параметров, входящих в объектchecksответов OnPage API;
Примечание: изменять можно только целочисленные пороговые значения;
например, параметрыhigh_loading_timeиlarge_page_sizeпо умолчанию равны 3 секундам и 1 мегабайту соответственно;
если вы хотите изменить эти пороги на 1 секунду и 1000 КБ, используйте следующий фрагмент:"checks_threshold": {<br>"high_loading_time": 1,<br>"large_page_size": 1000<br>}
доступные настраиваемые параметры со значениями по умолчанию:"title_too_short", default value: 30, type: "int"<br>"title_too_long", default value: 65, type: "int"<br>"small_page_size", default value: 1024, type: "int"<br>"large_page_size", default value: 1048576 (1024 * 1024), type: "int"<br>"low_character_count", default value: 1024, type: "int"<br>"high_character_count", default value: 256000 (250 * 1024), type: "int"<br>"low_content_rate", default value: 0.1, type: "float"<br>"high_content_rate", default value: 0.9, type: "float"<br>"high_loading_time", default value: 3000, type: "int"<br>"high_waiting_time", default value: 1500, type: "int"<br>"low_readability_rate", default value: 15.0, type: "float"<br>"irrelevant_description", default value: 0.2, type: "float"<br>"irrelevant_title", default value: 0.3, type: "float"<br>"irrelevant_meta_keywords", default value: 0.6, type: "float"- propertyТип: integer | null Формат: int64
Name Signed 64-bit integers (long type).
- crawlТип: integer | null
_delay задержка между запросами, мс
необязательное поле
пользовательская задержка между запросами краулера к серверу
значение по умолчанию:2000 - crawlТип: boolean | null
_sitemap _only обходить только страницы, указанные в sitemap
необязательное поле
установитеtrue, чтобы обходить только страницы, указанные в sitemap
если задать этот параметр какtrueи не указыватьcustom_sitemap, мы обойдём sitemap по умолчанию
значение по умолчанию:false
Примечание: чтобы использовать этот параметр,respect_sitemapдолжен бытьtrue - customТип: string | null
_js пользовательский javascript
необязательное поле
Примечание: время выполнения скрипта, который вы вводите здесь, должно быть не более 700 мс; например, следующий JS-фрагмент проверяет, содержит ли сайт Google Tag Manager в атрибутеscr:let meta = { haveGoogleAnalytics: false, haveTagManager: false };rnfor (var i = 0; i < document.scripts.length; i++) {rn let src = document.scripts[i].getAttribute("src");rn if (src != undefined) {rn if (src.indexOf("analytics.js") >= 0)rn meta.haveGoogleAnalytics = true;rntif (src.indexOf("gtm.js") >= 0)rn meta.haveTagManager = true;rn }rn}rnmeta;Возвращаемое значение зависит от того, что вы указали в этом поле. Например, если указать такой скрипт:meta = {}; meta.url = document.URL; meta.test = 'test'; meta;
в ответ вы получите следующие данные:"custom_js_response": {<br>"url": "https://dataforseo.com/",<br>"test": "test"<br>}
Примечание: длина вводимого скрипта не должна превышать 2000 символов - customТип: string | null
_robots _txt пользовательские настройки robots.txt
необязательное поле
пример:Disallow: /directory1/ - customТип: string | null
_sitemap URL пользовательского sitemap
необязательное поле
URL страницы, на которой расположен альтернативный sitemap
Примечание: чтобы использовать этот параметр,respect_sitemapдолжен бытьtrue - customТип: string | null
_user _agent пользовательский user agent
необязательное поле
пользовательский user agent для обхода веб-сайта
пример:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
значение по умолчанию:Mozilla/5.0 (compatible; RSiteAuditor) - disableТип: boolean | null
_cookie _popup отключить всплывающее окно с согласием на cookie
необязательное поле
установитеtrue, чтобы отключить всплывающее окно с запросом согласия на использование cookie;
значение по умолчанию:false - disableТип: array string[] | null
_page _checks запретить выполнение отдельных проверок страницы
необязательное поле
укажите определённыеchecks, чтобы они не выполнялись и не влияли наonpage_scoreпример:"disable_page_checks": ["is_5xx_code", "is_4xx_code"] - disableТип: array string[] | null
_sitewide _checks запретить выполнение отдельных проверок всего сайта
необязательное поле
укажите следующиеchecks, чтобы они не выполнялись на сайтеtarget:"test_page_not_found""test_canonicalization""test_https_redirect""test_directory_browsing"пример:"disable_sitewide_checks": ["test_directory_browsing", "test_page_not_found"]подробнее в справочном центре - disallowedТип: array string[] | null
_subdomains поддомены, которые не нужно обходить
необязательное поле
укажите поддомены, которые вы не хотите обходить
пример:["status.site.com", "docs.site.com"]
Примечание: чтобы использовать этот параметр, параметрallow_subdomainsдолжен быть установлен вtrue - enableТип: boolean | null
_browser _rendering эмуляция браузера для измерения Core Web Vitals
необязательное поле
с этим параметром можно эмулировать браузер при загрузке веб-страницы;enable_browser_renderingзагружает стили, изображения, шрифты, анимации, видео и другие ресурсы страницы;
значение по умолчанию:false
установитеtrue, чтобы получать в ответе метрики Core Web Vitals (FID, CLS, LCP);
если вы используете это поле, параметрыenable_javascriptиload_resourcesдолжны быть установлены вtrue
Примечание: использование этого параметра влечёт дополнительные расходы; подробнее о стоимости задач с этим параметром — в справочной статье; стоимость можно рассчитать на странице Тарифы - enableТип: boolean | null
_content _parsing - enableТип: boolean | null
_javascript загружать javascript на странице
необязательное поле
установитеtrue, чтобы загружать скрипты, доступные на странице
значение по умолчанию:false
Примечание: использование этого параметра влечёт дополнительные расходы; подробнее о стоимости задач с этим параметром — в справочной статье; стоимость можно рассчитать на странице Тарифы - enableТип: boolean | null
_www _redirect _check проверять, настроена ли на домене переадресация www
необязательное поле
установитеtrue, чтобы проверить, настроена ли на запрошенном домене переадресация с www на без-www или с без-www на www;
значение по умолчанию:false - enableТип: boolean | null
_xhr включить XMLHttpRequest на странице
необязательное поле
установитеtrue, чтобы наш краулер запрашивал данные с веб-сервера через объект XMLHttpRequest
значение по умолчанию:false;если вы используете это поле,enable_javascriptдолжен быть установлен вtrue; - forceТип: boolean | null
_sitewide _checks включить проверки всего сайта при обходе одной страницы
необязательное поле
установитеtrue, чтобы получать данные проверок всего сайта при обходе одной страницы;
значение по умолчанию:false - loadТип: boolean | null
_resources загружать ресурсы
необязательное поле
установитеtrue, чтобы загружать изображения, таблицы стилей, скрипты и недоступные ресурсы
значение по умолчанию:false
Примечание: использование этого параметра влечёт дополнительные расходы; подробнее о стоимости задач с этим параметром — в справочной статье; стоимость можно рассчитать на странице Тарифы - maxТип: integer | null
_crawl _depth глубина обхода
необязательное поле
глубина связей обходимых страниц;
например, стартовая страница обхода — уровень 0, страницы, на которые с неё ведут ссылки, — уровень 1 и т. д. - maxТип: integer
_crawl _pages лимит обходимых страниц
обязательное поле
количество страниц для обхода на указанном домене
Примечание:
если задатьmax_crawl_pages= 1 и не указыватьstart_urlили указать в нём домашнюю страницу, следующие проверки всего сайта будут отключены:test_canonicalization,enable_www_redirect_check,test_hidden_server_signature,test_page_not_found,test_directory_browsing,test_https_redirect
чтобы всё равно их включить, установитеforce_sitewide_checksвtrueесли задатьmax_crawl_pages= 1 и указать вstart_urlне домашнюю страницу, все проверки всего сайта будут отключены;
чтобы всё равно их включить, установитеforce_sitewide_checksвtrue - pingbackТип: string | null
_url URL уведомления о завершении задачи
необязательное поле
когда задача будет выполнена, мы отправим GET-запрос на указанный вами URL
строку «$id» можно использовать как переменную$id, а «$tag» — как urlencoded-переменную$tag. Перед отправкой запроса мы подставим нужные значения.
пример:http://your-server.com/pingscript?id=$idhttp://your-server.com/pingscript?id=$id&tag=$tag
Примечание: специальные символы вpingback_urlбудут urlencoded;
в частности, символ#кодируется как%23 - priorityТип: array string[] | null
_urls URL для обхода вне очереди
необязательное поле
URL из этого массива обходятся в первую очередь, минуя очередь обхода;
Примечание: нужно указывать абсолютный URL;
можно указать до 20 URL;
все URL в массиве должны принадлежать доменуtarget;
поддомены игнорируются, если параметрallow_subdomainsне установлен вtrueпример:"priority_urls": [<br>"https://dataforseo.com/apis/serp-api",<br>"https://dataforseo.com/contact"<br>] - respectТип: boolean | null
_sitemap соблюдать sitemap при обходе
необязательное поле
установитеtrue, чтобы при обходе следовать порядку страниц, указанному в основном sitemap;
значение по умолчанию:false
Примечание: если задатьtrue, значениеclick_depthв ответе API будет равно0;
полеmax_crawl_depthзапроса будет проигнорировано; количество обходимых страниц можно задать параметромmax_crawl_pages - returnТип: boolean | null
_despite _timeout возвращать данные страниц несмотря на ошибку таймаута
необязательное поле
еслиtrue, данные будут предоставлены по страницам, которые не загрузились за 120 секунд и вернули ошибку таймаута;
значение по умолчанию:false - robotsТип: string | null
_txt _merge _mode объединение с настройками robots.txt или их переопределение
необязательное поле
возможные значения:merge,override;
установитеoverride, если хотите игнорировать ограничения обхода сайта и другие настройки robots.txt
значение по умолчанию:merge;
Примечание: если заданоoverride, укажите параметрcustom_robots_txt - startТип: string | null
_url - storeТип: boolean | null
_raw _html - supportТип: boolean | null
_cookies поддержка cookie на обходимых страницах
необязательное поле
установитеtrue, чтобы поддерживать cookie при обходе страниц
значение по умолчанию:false - switchТип: boolean | null
_pool переключение пула прокси
необязательное поле
еслиtrue, для получения запрошенных данных будут использоваться дополнительные пулы прокси;
параметр можно использовать, если одновременно задано множество задач, что приводит к периодическим ошибкамrate-limitи/илиsite_unreachable - tagТип: string | null
пользовательский идентификатор задачи
необязательное поле
ограничение — 255 символов
этот параметр позволяет идентифицировать задачу и сопоставить её с результатом
указанное значениеtagвы найдёте в объектеdataответа - targetТип: string
целевой домен
обязательное поле
имя домена указывается безhttps://иwww.
если указать URL страницы, результаты вернутся для домена, входящего в этот URL - validateТип: boolean | null
_micromarkup
- Тип: object | null · Response36Afe1097B20_OnPageTaskPostResponseInfo200
- Тип: number | null Формат: doublecost
общая стоимость задач, USD
- Тип: integer | nullstatus
_code общий код состояния. Полный список кодов ответа можно найти здесь.
- Тип: string | nullstatus
_message общее информационное сообщение. Полный список общих информационных сообщений можно найти здесь.
- Тип: array (object | null)[] | nulltasks
массив задач
- Тип: object | null · Response36Afe1097B20_OnPageTaskPostTaskInfo
- costТип: number | null Формат: double
общая стоимость задач, USD
- dataТип: object | null
содержит те же параметры, что вы указали в POST-запросе
- propertyТип: object | null
Name
- idТип: string | null
идентификатор задачи уникальный идентификатор задачи в нашей системе в формате UUID
- pathТип: array (string | null)[] | null
путь URL
- resultТип: object | null
массив результатов
в этом случае значение будетnull - resultТип: integer | null Формат: int64
_count число элементов в массиве result
- statusТип: integer | null
_code код состояния задачи формируется DataForSEO, может находиться в диапазоне 10000-60000 Полный список кодов ответа можно найти здесь.
- statusТип: string | null
_message информационное сообщение задачи Полный список общих информационных сообщений можно найти здесь.
- timeТип: string | null
время выполнения, секунды
- Тип: integer | null Формат: int64tasks
_count число задач в массиве tasks
- Тип: integer | null Формат: int64tasks
_error число задач в массиве tasks, возвращённых с ошибкой
- Тип: string | nulltime
общее время выполнения, секунды
- Тип: string | nullversion
текущая версия API
application/json - 400
Запрос не удалось обработать. Проверьте параметры запроса.
- 401
Требуется действительный API-ключ Felo.
- 402
Запрос не может быть выполнен: не выполнено требование биллинга.
- 403
Аккаунту не разрешено выполнять эту операцию.
- 429
Достигнут лимит запросов или расходов.
- 502
Сервис не смог выполнить запрос.
- 503
API или сервис биллинга временно недоступны.
- 504
Истекло время ожидания обработки запроса.
- default
Ответ с ошибкой; сквозные ответы upstream могут использовать форматы провайдера
application/json
curl https://openapi.felo.ai/v1/beta/dataforseo/on_page/task_post \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '[
{
"target": "dataforseo.com",
"max_crawl_pages": 10,
"load_resources": true,
"enable_javascript": true,
"custom_js": "meta = {}; meta.url = document.URL; meta;",
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
}
]'
{
"version": null,
"status_code": null,
"status_message": null,
"time": null,
"cost": null,
"tasks_count": null,
"tasks_error": null,
"tasks": [
{
"id": null,
"status_code": null,
"status_message": null,
"time": null,
"cost": null,
"result_count": null,
"path": [
null
],
"data": null,
"result": null
}
]
}