Pagination
Deprecation notice
Since October 2023, all List API endpoints support new cursor-based pagination.
Offset-based pagination with the page query parameter is deprecated. Use the cursor-based query parameters instead.
Cursor-based query parameters
| Query parameter | Description |
|---|---|
| cursor | Represents a value that fetches the next page of objects. To fetch the next page of objects, set cursor to the value received in the previous page response. |
| per_page | Represents the maximum number of objects returned in a single page. Defaults to 200 if per_page is not passed or if per_page is set higher than 200. |
Cursor-based response parameters
| Response parameter | Description |
|---|---|
| cursor | Use this value with the next API query to fetch the next page of objects. |
| has_more | Set to true if there are more objects to list in the next page or false if there are no more objects to list. |
Example
Listing the first page of Customers:
curl -X GET "https://api.chartmogul.com/v1/customers?per_page=50" \
-u YOUR_API_KEY:
ChartMogul::Customer.all(per_page: 50)
ChartMogul.Customer.all(config, {
per_page: 50,
});
ChartMogul\Customer::all([
"per_page" => 50
]);
api.ListCustomers(&cm.ListCustomersParams{
Cursor: cm.Cursor{PerPage: 50},
})
chartmogul.Customer.all(config, per_page=50)
{
"entries": [
...
],
"cursor": "AjMx90kC0yMVQwNNwoYToyNC4wMDAwMDAwMDBgks68k",
"has_more": true
}
#<ChartMogul::Customers:0x007fe7e09ca7c8
@entries=[
...
],
@cursor="AjMx90kC0yMVQwNNwoYToyNC4wMDAwMDAwMDBgks68k",
@has_more=true
>
{
entries: [
...
],
cursor: "AjMx90kC0yMVQwNNwoYToyNC4wMDAwMDAwMDBgks68k",
has_more: true
}
ChartMogul\Customers::__set_state(array(
"entries" => Doctrine\Common\Collections\ArrayCollection::__set_state(array(
"elements" => array(
...
)
)),
"cursor" => "AjMx90kC0yMVQwNNwoYToyNC4wMDAwMDAwMDBgks68k",
"has_more" => true
));
(*chartmogul.Customers)(0xc042088b40)({
Entries: ([]*chartmogul.Customer)(
...
),
Cursor: (string) (len=44) "AjMx90kC0yMVQwNNwoYToyNC4wMDAwMDAwMDBgks68k",
HasMore: (bool) true
})
Customers(
entries=[...],
cursor="AjMx90kC0yMVQwNNwoYToyNC4wMDAwMDAwMDBgks68k",
has_more=True
)
Listing the next page of Customers:
curl -X GET "https://api.chartmogul.com/v1/customers?per_page=50&cursor=AjMx90kC0yMVQwNNwoYToyNC4wMDAwMDAwMDBgks68k" \
-u YOUR_API_KEY:
ChartMogul::Customer.all(
per_page: 50,
cursor: "AjMx90kC0yMVQwNNwoYToyNC4wMDAwMDAwMDBgks68k",
)
ChartMogul.Customer.all(config, {
per_page: 50,
cursor: "AjMx90kC0yMVQwNNwoYToyNC4wMDAwMDAwMDBgks68k",
});
ChartMogul\Customer::all([
"per_page" => 50,
"cursor" => "AjMx90kC0yMVQwNNwoYToyNC4wMDAwMDAwMDBgks68k"
]);
api.ListCustomers(&cm.ListCustomersParams{
Cursor: cm.Cursor{
PerPage: 50,
Cursor: "AjMx90kC0yMVQwNNwoYToyNC4wMDAwMDAwMDBgks68k",
},
})
chartmogul.Customer.all(
config, per_page=50, cursor="AjMx90kC0yMVQwNNwoYToyNC4wMDAwMDAwMDBgks68k"
)
Client libraries
Here’s a list of client library versions after which only cursor-based pagination is supported.