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
Відповідь із помилкою; наскрізні відповіді апстріму можуть використовувати формати постачальника
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
}
]
}