DataForSEO
SEO, search-engine results, keyword research, backlinks and AI visibility data.
OnPage API Page Screenshot
Renders any url and returns a screenshot, with full_page_screenshot for the whole scroll height and browser_screen_width and browser_screen_height setting the viewport. Standalone - no crawl needed. Wrapped in DataForSEO's envelope: data in tasks[0].result, outcome in tasks[0].status_code - a rejected request still returns HTTP 200. ⚠️ An image is a large tool result even before an agent can do anything with it; ask for a screenshot only when the visual is the point, and use post_dataforseo_on_page_content_parsing_live when the text is.
Pricing reference
- Metering: Reported response cost.
- Reference request estimate: USD 0.0051.
- Reference customer multiplier: 1.0. Do not apply it again to a settled customer amount.
Reference metadata only, not an account quote, a guaranteed price or a spending cap. Resource credits are not Felo credits. Final charges follow Felo billing records.
- Type: array (object | null)[]
- acceptType: string | null
_language 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, you will obtain"error_message":"Screenshot is empty"in the response array - browserType: string | null
_preset preset for browser screen parameters
optional field
if you use this field, you don't need to indicatebrowser_screen_width,browser_screen_height,browser_screen_scale_factorpossible values:
desktop,mobile,tabletdesktoppreset will apply the following values:browser_screen_width: 1920browser_screen_height: 1080browser_screen_scale_factor: 1mobilepreset will apply the following values:browser_screen_width: 390browser_screen_height: 844browser_screen_scale_factor: 3tabletpreset will apply the following values:browser_screen_width: 1024browser_screen_height: 1366browser_screen_scale_factor: 2Note: in this endpoint, the
enable_browser_rendering,enable_javascript,load_resources, andenable_xhrparameters are always enabled. - browserType: integer | null
_screen _height browser screen height
optional field
you can set a custom browser screen height to perform audit for a particular device;
if you use this field, you don't need to indicatebrowser_presetas it will be ignored;minimum value, in pixels:
240
maximum value, in pixels:9999 - browserType: number | null
_screen _scale _factor 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 indicatebrowser_presetas it will be ignored;minimum value:
0.5
maximum value:3 - browserType: integer | null Format: int64
_screen _width 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 indicatebrowser_presetas it will be ignored;minimum value, in pixels:
240
maximum value, in pixels:9999 - customType: string | null
_user _agent custom user agent
optional field
custom user agent for crawling a website
example: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
default value:Mozilla/5.0 (compatible; RSiteAuditor) - disableType: boolean | null
_cookie _popup disable the cookie popup
optional field
set totrueif you want to disable the popup requesting cookie consent from the user;
default value:false - fullType: boolean | null
_page _screenshot take a screenshot of the full page
optional field
set tofalseif you want to capture only the part of the page displayed before scrolling
default value:true - ipType: string | null
_pool _for _scan proxy pool
optional field
you can choose a location of the proxy pool that will be used to obtain the requested data;
the parameter can be used if page content is inaccessible in one of the locations, resulting in occasionalsite_unreachableerrors
possible values:us,de - switchType: boolean | null
_pool switch proxy pool
optional field
iftrue, 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 occasionalrate-limitand/orsite_unreachableerrors - urlType: string
page url
required field
absolute URL of the page to snap
note: if the URL you indicate here returns a 404 status code or the indicated value is not a valid URL, you will obtain"error_message":"Screenshot is empty"in the response array
- Type: object | null · Response36Afe1097B20_OnPagePageScreenshotResponseInfo200
- Type: number | null Format: doublecost
total tasks cost, USD
- Type: integer | nullstatus
_code general status code you can find the full list of the response codes here
- Type: string | nullstatus
_message general informational message you can find the full list of general informational messages here
- Type: array (object | null)[] | nulltasks
array of tasks
- Type: object | null · Response36Afe1097B20_OnPagePageScreenshotTaskInfo
- costType: number | null Format: double
total tasks cost, USD
- dataType: object | null
contains the same parameters that you specified in the POST request
- propertyType: object | null
Name
- idType: string | null
task identifier unique task identifier in our system in the UUID format
- pathType: array (string | null)[] | null
URL path
- resultType: array (object | null)[] | null
array of results
- crawlType: string | null
_progress status of the crawling session
possible values:in_progress,finished - errorType: string | null
_message error message
if theurlyou indicated returns a 404 status code or is not a valid URL, you will obtain"error_message":"Screenshot is empty"
if no error is encountered, the value will benull - itemsType: array (object | null)[] | null
items array
- imageType: string | null
screenshot of the requested page
URL of the page screenshot on the DataForSEO storage
note: the page screenshot saved on the DataForSEO storage only remains accessible for one day after making the request
- itemsType: integer | null Format: int64
_count number of items in the results array
- resultType: integer | null Format: int64
_count number of elements in the result array
- statusType: integer | null
_code status code of the task generated by DataForSEO, can be within the following range: 10000-60000 you can find the full list of the response codes here
- statusType: string | null
_message informational message of the task you can find the full list of general informational messages here
- timeType: string | null
execution time, seconds
- Type: integer | null Format: int64tasks
_count the number of tasks in the tasks array
- Type: integer | null Format: int64tasks
_error the number of tasks in the tasks array returned with an error
- Type: string | nulltime
total execution time, seconds
- Type: string | nullversion
the current version of the API
application/json - 400
The request could not be processed. Check the request parameters.
- 401
A valid Felo API key is required.
- 402
The request cannot proceed because a billing requirement is not met.
- 403
The account is not permitted to perform this operation.
- 429
A request or spending limit has been reached.
- 502
The service could not complete the request.
- 503
The API or billing service is temporarily unavailable.
- 504
The service timed out while processing the request.
- default
Error response; upstream passthrough responses may use provider formats
application/json
curl https://openapi.felo.ai/v1/beta/dataforseo/on_page/page_screenshot \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '[
{
"url": "https://dataforseo.com/apis"
}
]'
{
"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": [
{
"crawl_progress": null,
"error_message": null,
"items_count": null,
"items": [
{
"image": null
}
]
}
]
}
]
}