Pagination
Refersion GraphQL currently supports offset-based pagination, which lets you offset the start of each page by the number specified.
Let's say you'd like to pull a list of all your May 2018 conversions, and there are 800 results in total. In order to get all 800 results, you'd need to make a total of 4 requests (since each request returns a maximum of 200 results) using offsets.
First request
Sample query:
{
conversions(created_from: 1525132800 created_to: 1527202238 first: 200) {
affiliate {
name
email
}
total
commission_total
currency
created
}
}
Sent as:
{"query": "{ conversions(created_from: 1525132800 created_to: 1527202238 first: 200) { affiliate { name email } total commission_total currency created } }"}
Second request
The query is identical apart from offset, which fetches the next 200 results starting from
record #201:
{"query": "{ conversions(created_from: 1525132800 created_to: 1527202238 first: 200 offset: 200) { affiliate { name email } total commission_total currency created } }"}
Third request
offset: 400 gets you records #401–600:
{"query": "{ conversions(created_from: 1525132800 created_to: 1527202238 first: 200 offset: 400) { affiliate { name email } total commission_total currency created } }"}
Fourth request
offset: 600 gets you records #601–800:
{"query": "{ conversions(created_from: 1525132800 created_to: 1527202238 first: 200 offset: 600) { affiliate { name email } total commission_total currency created } }"}
Repeat the above for larger number of results until you get all the data returned.
Total Pagination Results
pageInfo is deprecated and no longer returns accurate results. Page with first and offset as
shown above, or with before and after — see
PageInfo and
Filtering and Sorting.
It is possible to select the total number of results that can be retrieved using a GraphQL query by
adding a pageInfo section to your request. This can be helpful for determining when you have
requested all possible pages for a query.
Please note: Queries with multiple sub-queries and filters may return an incorrect number for the total results count within the pageInfo query. We recommend keeping queries simple for the best experience.
Sample query:
{
conversions(created_from: 1525132800 first: 200 offset: 600) {
affiliate {
name
email
}
total
commission_total
currency
created
}
pageInfo {
total_results {
conversions
}
}
}
Sent as:
{"query": "{ conversions(created_from: 1525132800 first: 200 offset: 600) { affiliate { name email } total commission_total currency created } pageInfo { total_results { conversions } } }"}
Sample response:
{
"data": {
"conversions": [
{
"affiliate": {
"name": "ABC",
},
"total": "24.00",
"commission_total": "4.80",
"currency": "USD",
"created": "1526674258"
},
...
],
"pageInfo": {
"total_results": {
"conversions": [
"800",
"This will no longer return accurate results."
]
}
}
}
}
Related
- Filtering and Sorting — cursor paging with
beforeandafter, and whyfirstoverridessort. - Call Limits — the per-account request limits that make pagination necessary.
- Getting Started — the endpoint and authentication.