Pagination¶
List endpoints cap each response at 50 items. Larger result sets are retrieved page by page. The two API methods use different parameter names — both are documented below.
Versioned APIs (Risk, Strategic Themes & OKRs)¶
Pagination is controlled with query parameters:
| Param | Type | Default | Notes |
|---|---|---|---|
startAt |
int | 0 |
Zero-based offset of the first item to return |
pageLimit |
int | 50 |
Items per page — maximum 50 |
Responses echo the values used and include the grand total:
To walk every page, increment startAt by pageLimit until you've seen total items:
import requests
base = "https://yourcompany.kendis.io/api/v1/strategic-themes"
auth = ("user@acme.com", "your-api-key-here")
start, limit, results = 0, 50, []
while True:
r = requests.get(base, params={"fields": "all", "startAt": start, "pageLimit": limit}, auth=auth)
page = r.json()
rows = page.get("Data", []) # Strategic Themes uses capital "Data"
results.extend(rows)
start += limit
if start >= page.get("total", 0) or not rows:
break
print(f"Fetched {len(results)} items")
Stop condition
Stop when startAt + results_on_page.length >= total, or when a page returns an empty array.
Relying on the empty-array fallback as well avoids an extra request edge case.
PI Board Items¶
The PI Board Items /items endpoint paginates via its POST body, not query params:
| Body field | Type | Default | Notes |
|---|---|---|---|
pageStart |
number | 0 |
Page offset index — starts at 0 |
pageSize |
number | 50 |
Items per page |
The offset is item-based: with pageSize 100, the first call (pageStart 0) returns items 0–99; set
pageStart to 100 for items 100–199, and so on.
See the PI Board Items endpoints for full request examples.