DocumentationPagination

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.

FieldTypeDescription
next_urlstringGoogle Search URL to request the next page. Always present in successful responses, including empty ones. Send it back as url.
JSON
{
  "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.

First

Omit start, or use start=0

Second

start=10

Third

start=20

Fourth

start=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.

web

about 10 organic results, plus other modules

images

about 50 images

shopping

30 to 80 products

news

about 10 stories

videos

about 10 videos

local

about 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.