Skip to content

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:

{
  "startAt": 0,
  "pageLimit": 50,
  "total": 128,
  "data": [ /* up to 50 items */ ]
}

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
{
  "boardId": "64c0345dd1waf623863d38fc",
  "pageStart": 0,
  "pageSize": 100
}

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.