Pagination
All list endpoints use cursor-based pagination for consistent, efficient traversal of large datasets.
Query Parameters
Pagination Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| cursor | uuid | Optional | The ID of the last resource from the previous page. Omit for the first page. |
| limit | integer | Optional | Number of results per page. Min 1, max 100, default 25. |
Response Format
List responses include a pagination object alongside the data array.
200Paginated list response
json
{
"data": [
{ "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "name": "License 1" },
{ "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "name": "License 2" }
],
"pagination": {
"nextCursor": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"hasMore": true
}
}Example: Fetching All Pages
Start without a cursor, then pass the nextCursor value from each response to fetch the next page.
First Page
Request
GET /api/v1/licenses?limit=25
Authorization: Bearer lk_live_your_api_keyNext Page
Request
GET /api/v1/licenses?cursor=b2c3d4e5-f6a7-8901-bcde-f12345678901&limit=25
Authorization: Bearer lk_live_your_api_keyLast Page
When there are no more results, nextCursor is null and hasMore is false.
200Last page
json
{
"data": [
{ "id": "f6a7b8c9-d0e1-2345-6789-abcdef012345", "name": "License 50" }
],
"pagination": {
"nextCursor": null,
"hasMore": false
}
}Why Cursor-Based?
Cursor-based pagination is more efficient than offset-based pagination for large datasets. It avoids skipped or duplicate results when data changes between page requests.