DataForSEO
SEO, search-engine results, keyword research, backlinks and AI visibility data.
OnPage API Waterfall
The load timeline of one crawled url - what was requested, in what order, and how long each took. Reads a finished crawl, so it needs the id from post_dataforseo_on_page_submit and returns crawl_progress plus a crawl_status of max_crawl_pages, pages_in_queue and pages_crawled - check those before trusting a small result, because a crawl still running simply has less to report. Use it to explain a slow page; for a scored performance audit instead use post_dataforseo_on_page_lighthouse_live_json. 💰 Free upstream: querying a finished crawl costs nothing, only the crawl itself does.
- Тип: array object[]
- idТип: stringобязательно
ID of the task required field you can get this ID in the response of the Task POST endpoint example: “07131248-1535-0216-1000-17384017ad04”
- urlТип: stringобязательно
page URL required field specify the pages you want to receive timing for
- tagТип: string
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
- Тип: object200
Successful response
- Тип: numbercost
total tasks cost, USD
- Тип: integerstatus
_code general status code you can find the full list of the response codes here Note: we strongly recommend designing a necessary system for handling related exceptional or error conditions
- Тип: stringstatus
_message general informational message you can find the full list of general informational messages here
- Тип: array string[]tasks
array of tasks
- Тип: integertasks
_count the number of tasks in the tasks array
- Тип: integertasks
_error the number of tasks in the tasks array returned with an error
- Тип: numbertasks
.cost cost of the task, USD
- Тип: objecttasks
.data contains the same parameters that you specified in the POST request
- Тип: stringtasks
.id task identifier unique task identifier in our system in the UUID format
- Тип: array string[]tasks
.path URL path
- Тип: array string[]tasks
.result array of results
- Тип: integertasks
.result _count number of elements in the result array
- Тип: stringtasks
.result .crawl _progress status of the crawling session possible values: in_progress, finished
- Тип: objecttasks
.result .crawl _status details of the crawling session
- Тип: integertasks
.result .crawl _status .max _crawl _pages maximum number of pages to crawl indicates the max_crawl_pages limit you specified when setting a task
- Тип: integertasks
.result .crawl _status .pages _crawled number of crawled pages
- Тип: integertasks
.result .crawl _status .pages _in _queue number of pages that are currently in the crawling queue
- Тип: array string[]tasks
.result .items items array
- Тип: integertasks
.result .items _count number of items in the results array
- Тип: integertasks
.result .items .connection _time time to connect to a server the time it takes until the connection with a server is established (in milliseconds)
- Тип: integertasks
.result .items .dom _complete time to load resources the time it takes until the page and all of its subresources are downloaded (in milliseconds)
- Тип: integertasks
.result .items .download _time time it takes for a browser to receive a response (in milliseconds)
- Тип: integertasks
.result .items .duration _time total time it takes until a browser receives a complete response from a server (in milliseconds)
- Тип: integertasks
.result .items .fetch _end time to complete downloading the HTML resource the amount of time the browser needs to complete downloading a page
- Тип: integertasks
.result .items .fetch _start time to start downloading the HTML resource the amount of time the browser needs to start downloading a page
- Тип: stringtasks
.result .items .page _url URL of the page
- Тип: integertasks
.result .items .request _sent _time time to send a request to a server the time it takes until the request to a server is sent (in milliseconds)
- Тип: array string[]tasks
.result .items .resources resource-specific timing contains separate arrays with timing for each resource found on the page
- Тип: integertasks
.result .items .resources .duration _time total time it takes until a browser receives a complete response from a server (in milliseconds)
- Тип: integertasks
.result .items .resources .fetch _end time to complete downloading the resource the amount of time the browser needs to complete downloading a resource
- Тип: integertasks
.result .items .resources .fetch _start time to start downloading the resource the amount of time the browser needs to start downloading a resource
- Тип: stringtasks
.result .items .resources .initiator resource initiator
- Тип: booleantasks
.result .items .resources .is _render _blocking indicates whether the resource blocks rendering
- Тип: objecttasks
.result .items .resources .location location of the resource in the document parameters defining the location of the specific resource within the document’s HTML
- Тип: integertasks
.result .items .resources .location .line line number the number of the line on which the resource is located
- Тип: integertasks
.result .items .resources .location .offset _left position in line the number of line characters before the resource; sometimes referred to as column Note: counts from 1, i.e. if the resource doesn’t have any characters to the left, the value will be 1
- Тип: integertasks
.result .items .resources .location .offset _top position in the document the total number of characters between the resource and the top of HTML
- Тип: stringtasks
.result .items .resources .resource _type type of the returned resource
- Тип: stringtasks
.result .items .resources .url resource URL
- Тип: integertasks
.result .items .time _to _interactive Time To Interactive (TTI) metric the time it takes until the user can interact with a page (in milliseconds)
- Тип: integertasks
.result .items .time _to _secure _connection time to establish a secure connection the time it takes until the secure connection with a server is established (in milliseconds)
- Тип: integertasks
.result .items .waiting _time time to first byte (TTFB) in milliseconds
- Тип: integertasks
.status _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
- Тип: stringtasks
.status _message informational message of the task you can find the full list of general informational messages here
- Тип: stringtasks
.time execution time, seconds
- Тип: stringtime
execution time, seconds
- Тип: stringversion
the current version of the API
application/json - 400
Bad request
- 401
Unauthorized
- 402
The request cannot proceed because a billing requirement is not met.
- 403
The account is not permitted to perform this operation.
- 429
Rate limit exceeded
- 500
Internal server error
- 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
The operation failed. Keep the response request ID when contacting Felo support.
curl https://openapi.felo.ai/v1/beta/dataforseo/on_page/waterfall \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '[
{
"id": "",
"url": "",
"tag": ""
}
]'
{
"version": "string",
"status_code": 1,
"status_message": "string",
"time": "string",
"cost": 1,
"tasks_count": 1,
"tasks_error": 1,
"tasks": [
"string"
],
"tasks.id": "string",
"tasks.status_code": 1,
"tasks.status_message": "string",
"tasks.time": "string",
"tasks.cost": 1,
"tasks.result_count": 1,
"tasks.path": [
"string"
],
"tasks.data": {},
"tasks.result": [
"string"
],
"tasks.result.crawl_progress": "string",
"tasks.result.crawl_status": {},
"tasks.result.crawl_status.max_crawl_pages": 1,
"tasks.result.crawl_status.pages_in_queue": 1,
"tasks.result.crawl_status.pages_crawled": 1,
"tasks.result.items_count": 1,
"tasks.result.items": [
"string"
],
"tasks.result.items.page_url": "string",
"tasks.result.items.time_to_interactive": 1,
"tasks.result.items.dom_complete": 1,
"tasks.result.items.connection_time": 1,
"tasks.result.items.time_to_secure_connection": 1,
"tasks.result.items.request_sent_time": 1,
"tasks.result.items.waiting_time": 1,
"tasks.result.items.download_time": 1,
"tasks.result.items.duration_time": 1,
"tasks.result.items.fetch_start": 1,
"tasks.result.items.fetch_end": 1,
"tasks.result.items.resources": [
"string"
],
"tasks.result.items.resources.resource_type": "string",
"tasks.result.items.resources.url": "string",
"tasks.result.items.resources.initiator": "string",
"tasks.result.items.resources.duration_time": 1,
"tasks.result.items.resources.fetch_start": 1,
"tasks.result.items.resources.fetch_end": 1,
"tasks.result.items.resources.location": {},
"tasks.result.items.resources.location.line": 1,
"tasks.result.items.resources.location.offset_left": 1,
"tasks.result.items.resources.location.offset_top": 1,
"tasks.result.items.resources.is_render_blocking": true
}