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
}