> For the complete documentation index, see [llms.txt](https://doc.wearepatchworks.com/product-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.wearepatchworks.com/product-documentation/developer-hub/connector-builder/building-your-own-connector/4-endpoints/endpoint-options/pagination/next-page-url-pagination-method.md).

# Next page URL pagination method

## Overview

This method is similar to the [link header](/product-documentation/developer-hub/connector-builder/building-your-own-connector/4-endpoints/endpoint-options/pagination/link-header-pagination-method.md) approach, except that the URL for the next page is included in the response body, rather than the header.

## Next page URL options

<table><thead><tr><th width="284">Option</th><th>Summary</th></tr></thead><tbody><tr><td>Next page field</td><td>Enter the location of the next page URL within the payload.</td></tr></tbody></table>

## Example

Suppose we set the following options:

<table><thead><tr><th width="284">Option</th><th>Value</th></tr></thead><tbody><tr><td>Next page field</td><td><code>links.next</code></td></tr></tbody></table>

...and we send a request to get the first page of data:

{% code lineNumbers="true" %}

```
GET https://my.shop/api/customers?page=1
```

{% endcode %}

The response will include the first page of data, together with a URL that should be used to get the next page of results. For example:

{% code lineNumbers="true" %}

```json
{
  "data": [
    {"id": 1, "name": "Alice"},
    {"id": 2, "name": "Bob"},
    {"id": 3, "name": "Charlie"},
    {"id": 4, "name": "Lyn"},
    {"id": 5, "name": "John"},
    {"id": 6, "name": "Gordon"},
    {"id": 7, "name": "Izzy"},
    {"id": 8, "name": "Mike"},
    {"id": 9, "name": "Ralph"},
    {"id": 10, "name": "Rex"}
  ],
  "links": {
    "next": "https://my.shop/api/customers?page=2"
  }
}
```

{% endcode %}

Notice the `links.next` section at the end of this response, which includes our next page URL. So, our request for the next page of results would be:

{% code lineNumbers="true" %}

```
https://my.shop/api/customers?page=2
```

{% endcode %}

## Relative URLs

When a request is sent for data using the `next page URL` pagination type, the response will include the first page of data, together with a URL that should be used to get the next page of results (i.e. the next page URL). For example:

`https://api.example.com/products?page=2`

This URL is included in subsequent pages, [until the last page](#when-does-pagination-stop). However, some APIs don't return the full URL in pagination responses - instead, they just return query parameters. For example:

`?page=2`

Patchworks recognises this as a relative URL, based on the `?` character at the start. When a relative URL is returned, the base URL from the previous request is appended to the start. So in our example, `?page=2` would be interpreted as `https://api.example.com/products?page=2`.

## When does pagination stop?

Pagination continues until the next page URL is no longer included in the payload.
