---
title: Pagination
slug: serpwow/wdKjorsUBhVLnAM71RIpO
docTags: 
createdAt: 2024-11-08T00:13:09.231Z
---

# Pagination

Requesting paginated results across multiple pages is one of the most common use-cases in SerpWow\..

For certain types of searches  SerpWow allows you to return data across multiple pages automatically.

You can request a single page per-search, or have  SerpWowautomatically retrieve data from multiple pages and concatenate the results into one response.

:::hint{type="info"}
**API Credits and &#x20;**`max_page`**&#xD;**
Each successfully retrieved page incurs an API credit.

If the request yields fewer pages than specified, only credits for the actual number of returned pages are charged. For example, for a request with  `max_page=5`  that only yields 3 pages (because only 3 pages are available), then only 3 API credits are charged.
:::

***

### Single Pages

To request a single page of results you should use the  `page`  parameter. For example, making a request with  `page=5`  will return data from page 5.

To find the total number of pages, and determine whether a next page is available, inspect the  `pagination`  object in the result JSON.

:::hint{type="info"}
**Infinite Scrolling Pagination**
Request types that implement infinite-scrolling pagination use a  `next_page_token`  parameter to request the next page of results. In these cases starting pagination from an explicit page number is not possible.
:::

### Multiple Pages

&#x20;SerpWow provides the  `max_page`  parameter to retrieve mutliple pages of results and concatenate them into one response - automating workloads such as "get the first 5 pages of results, if they exist".

When running a request with  `max_page`  set, the main array property of the response contains a concatenation of the array values from all requested pages.

### Setting a Max Page

When using  `max_page`   SerpWow will retrieve the number of pages (if available) specified in the  `max_page`  parameter. Results from subsequent pages will be concatenated into the main array property of the response. For example, the following request would yield data from pages 1, 2, 3, 4 and 5:

`max_page=5`
The main array property of a request made with  `max_page`  will have the following properties added, making it easy to determine which physical page the current result came from:

| `Property`         | `Type`   | `Description`                                                                                                                                                                                                                                                                                 |
| ------------------ | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `position`         | `number` | The position of the current result on the its page.                                                                                                                                                                                                                                           |
| `page`             | `number` | The page the current result is taken from.                                                                                                                                                                                                                                                    |
| `position_overall` | `number` | The position of the current result within all requested pages set in the `max_page` parameter.  Example Assuming 10 results per page and a request made with `max_page=2` the first result on page would be `position_overall=1` and the last result on page 2 would be `position_overall=20` |

### Setting the Start Page

Set the page to start the multiple-page concatenation from by using the  `page`  and  `max_page`  parameters together. For example, the following request would yield data from pages 2, 3 & 4:

`page=2&max_page=4`

### Limits when using `max_page`

Set the page to start the multiple-page concatenation from by using the  `page`  and  `max_page`  parameters together. For example, the following request would yield data from pages 2, 3 & 4:

|                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Real-Time Searches**  | **5&#x20;**<br />You can set a maximum `max_page` value of `5` when making real-time searches.  <br />**Note on&#x20;**`output=html` <br />When using `max_page` in combination with `output=html` the resultant HTML returned will consist of each page of HTML, delimited by a horizontal line break ( `.` HTML tag).<br />**Note on&#x20;**`include_html=true`&#xD;<br />When using `max_page` in combination with `include_html=true` the `html` field is returned as an array containing the HTML of each returned page. |
| **Searches in Batches** | **100&#x20;**<br />You can set a maximum `max_page` value of `100` when adding searches to Searches.   <br />**Batch limits when using&#x20;**`max_page`<br />Using `max_page` on searches added to a Batch limits the total number of searches that can be added. See [Batch Limits ](https://docs.trajectdata.com/scaleserp/batches-api/limits)for more information.                                                                                                                                                        |

