Collection endpoints support cursor-based pagination through the page[after] parameter.
Use it to read through a whole collection. To jump to a specific page or to get a total
count, use page-based pagination below.
Send an empty page[after] to get the first page:
?page[after]=&page[size]=200
The links section of the response contains a next URL. Request it to get the following
page, and repeat until a response comes back without a next link.
{
"data": [ ... ],
"meta": {
"page_size": 200,
"max_page_size": 200
},
"links": {
"first": "https://api.productive.io/api/v2/activities?page[after]=&page[size]=200",
"next": "https://api.productive.io/api/v2/activities?page[after]=eyJ2IjoxLCJzb3J0Ijo&page[size]=200"
}
}
page[after] is an opaque cursor that defines your place in the collection. Do not construct
or parse it, the format can change.
The meta section is smaller than with page-based pagination:
current_page, total_pages and total_count - not returned
page_size - 30 by default or the value you put in page[size]
max_page_size - 200
Cursor pagination is available on most collection endpoints, but not on reports. In those cases the request returns an error rather than
falling back to page-based pagination:
keyset_conflict - page[after] sent together with page[number]
keyset_unsupported_sort - the endpoint or the requested sort does not support cursor pagination
keyset_invalid_cursor - the cursor is malformed, or was issued for a different endpoint
Page-based pagination has to be set in the following style:
?page[number]=2&page[size]=20
Where page[number]= is the page you want to view, and page[size]= is the number of resources you want to return.
To check pagination settings or how many resources there are in total, check the
meta section in the response of your request.
There you can see the following:
current_page - 1 by default or the value you put in page[number]
total_pages - total_count/page_size rounded up
total_count - total number of resources you have
page_size - 30 by default or the value you put in page[size]
max_page_size - 200
An example of how to use pagination:
Sending page[number]=2 and page[size]=15 will result in seeing resources from 16 to 30 on page 2,
and the total_pages number will be total_count/15 rounded up.