API documentation/v2
Pagination
Send pagination.next_url back as url to request the next page, or choose pages directly with start. Both methods work with /search and /structured.
On this page
Pagination object
Both endpoints include next_url in every successful response, even when results are empty. It is a next-page address, not a guarantee of more results.
| Field | Type | Description |
|---|---|---|
next_url | string | Google Search URL to request the next page. Always present in successful responses, including empty ones. Send it back as url. |
{
"pagination": {
"next_url": "https://www.google.com/search?q=how+to+fix+a+leaking+tap&hl=en&gl=us&start=10"
}
}When following next_url, send it back as url unchanged. There are no offsets to calculate.
Request pages directly
Each page is an independent request. You can fetch pages directly or concurrently, without requesting earlier pages first.
Set start inside the Google Search URL you send as url, not as a separate JSON field. Keep the query and other search parameters unchanged.
Use increments of 10 for web, images, shopping, news, videos and local searches. With page numbers beginning at 1, calculate start = (page - 1) * 10.
FirstOmit start, or use start=0
Secondstart=10
Thirdstart=20
Fourthstart=30
Page sizes and offsets
Page size does not determine the start offset on either endpoint. Use increments of 10 even when a page contains more than ten items.
Never calculate offsets from /search's results.length or from the number of blocks or items in /structured, regardless of search type.
The counts below describe Google's result items for gl=us and hl=en; /search can return a different number of URL entries. Actual counts vary by query and layout, and Google determines the page size.
webabout 10 organic results, plus other modules
imagesabout 50 images
shopping30 to 80 products
newsabout 10 stories
videosabout 10 videos
localabout 10 places
When to stop
Set a page limit or another stopping condition for your workflow; the API does not signal the end of the results.
Successful responses with empty results are still billed.