DataForSEO
On Page Crawl
OnPage API checks websites for 60+ customizable on-page parameters defines and displays all found flaws and opportunities for optimization so that you can easily fix them. It checks meta tags, duplicate content, image tags, response codes, and other parameters on every page. You can find the full list of OnPage API check-up parameters in the Pages section. Starts a bounded crawl. The reservation settles from pages actually crawled. Use the On-Page summary/pages tools with the returned id.
From $0.00015 / unitDataForSEOSEOdataforseo/on-page-crawlActive
Use this tool with your agent
Use my connected Agentik MCP server. I want to use the tool dataforseo/on-page-crawl (On Page Crawl). Call inspect_tool with {"tool_id": "dataforseo/on-page-crawl"} first and tell me the price before anything runs. Ask me for the inputs it needs; never invent values, IDs or file URLs. When I confirm, call run_tool with tool_id "dataforseo/on-page-crawl" and my inputs, follow it with get_run if it is still running, and give me the result and the price Agentik reports. If the tool is unavailable, say so and use discover_tools to propose an alternative.Show the prompt
Paste it into Claude, ChatGPT or Codex: your agent takes it from there, and shows the price before it runs.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
target | string | Yes | target domain required field domain name should be specified without https:// and www. if you specify the page URL, the results will be returned for the domain included in the URL |
start_url | string | No | the first url to crawl optional field Note: you should specify an absolute URL if you want to crawl a single page, specify its URL in this field and additionally set the max_crawl_pages parameter to 1 you can also use the live Instant Pages |
force_sitewide_checks | boolean | No | enable sitewide checks when crawling a single page optional field set to true to get data on sitewide checks when crawling a single page; default value: false |
priority_urls | string[] | No | urls to be crawled bypassing the queue optional field URLs specified in this array will be crawled in the first instance, bypassing the crawling queue; Note: you should specify the absolute URL; you can specify up to 20 URLs; all URLs in th |
max_crawl_depth | integer | No | crawl depth optional field the linking depth of the pages to crawl; for example, starting page of the crawl is level 0, pages that have links from that page are level 1, etc. |
crawl_delay | integer | No | delay between hits, ms optional field the custom delay between crawler hits to the server default value: 2000 |
store_raw_html | boolean | No | |
enable_content_parsing | boolean | No | |
support_cookies | boolean | No | support cookies on crawled pages optional field set to true to support cookies when crawling the pages default value: false |
accept_language | string | No | language header for accessing the website optional field all locale formats are supported (xx, xx-XX, xxx-XX, etc.) Note: if you do not specify this parameter, some websites may deny access; in this case, pages will be returned with the "ty |
browser_preset | string | No | preset for browser screen parameters optional field if you use this field, you don't need to indicate browser_screen_width, browser_screen_height, browser_screen_scale_factorpossible values: desktop, mobile, tabletdesktop preset will apply |
browser_screen_width | integer | No | browser screen width optional field you can set a custom browser screen width to perform audit for a particular device; if you use this field, you don't need to indicate browser_preset as it will be ignored; Note: to use this parameter, set |
browser_screen_height | integer | No | browser screen height optional field you can set a custom browser screen height to perform an audit for a particular device; if you use this field, you don't need to indicate browser_preset as it will be ignored; Note: to use this parameter |
browser_screen_scale_factor | number | No | browser screen scale factor optional field you can set a custom browser screen resolution ratio to perform audit for a particular device; if you use this field, you don't need to indicate browser_preset as it will be ignored; Note: to use t |
respect_sitemap | boolean | No | respect sitemap when crawling optional field set to true if you want to follow the order of pages indicated in the primary sitemap when crawling; default value: false Note: if set to true, the click_depth value in the API response will equa |
custom_sitemap | string | No | custom sitemap url optional field the URL of the page where the alternative sitemap is located Note: if you want to use this parameter, respect_sitemap should be true |
crawl_sitemap_only | boolean | No | crawl only pages indicated in the sitemap optional field set to true if you want to crawl only the pages indicated in the sitemap if you set this parameter to true and do not specify custom_sitemap, we will crawl the default sitemap default |
enable_www_redirect_check | boolean | No | check if the domain implemented the www redirection optional field set to true if you want to check if the requested domain implemented the www to non-www or non-www to www redirect; default value: false |
disable_cookie_popup | boolean | No | disable the cookie popup optional field set to true if you want to disable the popup requesting cookie consent from the user; default value: false |
validate_micromarkup | boolean | No | |
allow_subdomains | boolean | No | include pages on subdomains optional field set to true if you want to crawl all subdomains of a target website default value: false |
allowed_subdomains | string[] | No | subdomains to crawl optional field specify subdomains that you want to crawl example: ["blog.site.com", "my.site.com", "shop.site.com"] Note: to use this parameter, the allow_subdomains parameter should be set to false; otherwise, the conte |
disallowed_subdomains | string[] | No | subdomains not to crawl optional field specify subdomains that you don't want to crawl example: ["status.site.com", "docs.site.com"] Note: to use this parameter, the allow_subdomains parameter should be set to true |
check_spell_language | string | No | language of the spell check optional field supported languages: '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', 'm |
check_spell_exceptions | string[] | No | words excluded from spell check optional field specify the words that you want to exclude from spell check maximum word length: 100 characters maximum amount of words: 1000 example: "SERP", "minifiers", "JavaScript" |
checks_threshold | object | No | custom threshold values for checks optional field you can specify custom threshold values for the parameters included in the checks object of OnPage API responses; Note: only integer threshold values can be modified; for example, the high_l |
disable_sitewide_checks | string[] | No | prevent certain sitewide checks from running optional field specify the following checks to prevent them from running on the target website: "test_page_not_found" "test_canonicalization" "test_https_redirect" "test_directory_browsing"exampl |
disable_page_checks | string[] | No | prevent certain page checks from running optional field specify certain checks to prevent them from running and impacting the onpage_scoreexample: "disable_page_checks": ["is_5xx_code", "is_4xx_code"] |
switch_pool | boolean | No | switch proxy pool optional field if true, additional proxy pools will be used to obtain the requested data; the parameter can be used if a multitude of tasks is set simultaneously, resulting in occasional rate-limit and/or site_unreachable |
return_despite_timeout | boolean | No | return data on pages despite the timeout error optional field if true, the data will be provided on pages that failed to load within 120 seconds and responded with a timeout error; default value: false |
tag | string | No | user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response |
max_crawl_pages | integer | No | Maximum pages Agentik authorizes the upstream crawler to fetch. |
load_resources | boolean | No | |
enable_javascript | boolean | No | |
enable_browser_rendering | boolean | No | |
calculate_keyword_density | boolean | No |
How your agent calls it
First inspect_tool for the current schema and price, then run_tool with the published example after confirming your inputs:
{
"tool_id": "dataforseo/on-page-crawl",
"input": {
"target": "dataforseo.com",
"max_crawl_pages": 5,
"load_resources": false,
"enable_javascript": false,
"tag": "some_string_123",
"store_raw_html": true,
"enable_content_parsing": true,
"validate_micromarkup": true,
"enable_browser_rendering": false,
"calculate_keyword_density": false
}
}Price and billing
- Price
- From $0.00015 / unit
- Model
- Per unit
- Detail
- The provider’s price, with no markup. Billed for measured usage.
- The provider’s price, 0% markup.
- One prepaid balance for every provider; your agent sees the price before it runs.
- Pay for measured usage; unused reservations are released.