Strategic Themes & OKRs — Endpoints¶
Base URL: https://{yourcompany}.kendis.io/api/v1/… · Auth: HTTP Basic (email : API key). Examples use example.kendis.io. All list responses use the Data (capital D) envelope.
Common query parameters on list endpoints:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
fields |
string | No | minimal |
Comma-separated fields, or all |
startAt |
int | No | 0 |
Pagination offset |
pageLimit |
int | No | 50 |
Page size (max 50) |
Detail endpoints accept only fields. All {keyOrId} parameters accept the item's key or internal ID.
1. List Portfolio Themes¶
GET /api/v1/portfolio-themes
GET https://example.kendis.io/api/v1/portfolio-themes?fields=all&startAt=0&pageLimit=50
Authorization: Basic <token>
{
"startAt": 0,
"pageLimit": 50,
"total": 3,
"Data": [
{ "key": "portfolio-10", "title": "Next-Gen Tech Innovation", "id": "64a1b2c3..." }
]
}
2. Get a single Portfolio Theme¶
GET /api/v1/portfolio-themes/{keyOrId}
keyOrId — the Portfolio Theme's key (e.g. portfolio-10) or internal ID.
GET https://example.kendis.io/api/v1/portfolio-themes/portfolio-10?fields=all
Authorization: Basic <token>
Returns a single Portfolio Theme object inside Data. 404 if not found.
3. List Strategic Themes in a Portfolio Theme¶
GET /api/v1/portfolio-themes/{keyOrId}/strategic-themes
GET https://example.kendis.io/api/v1/portfolio-themes/portfolio-14/strategic-themes?fields=all
Authorization: Basic <token>
{
"startAt": 0, "pageLimit": 50, "total": 4,
"Data": [
{ "id": "69a14f04...", "key": "CV-20", "title": "Digital Claims Excellence." }
]
}
4. List all Strategic Themes¶
GET /api/v1/strategic-themes
GET https://example.kendis.io/api/v1/strategic-themes?fields=all&startAt=0&pageLimit=50
Authorization: Basic <token>
{
"startAt": 0, "pageLimit": 50, "total": 16,
"Data": [
{
"id": "69a14f04...",
"key": "CV-20",
"title": "Digital Claims Excellence.",
"status": { "id": "67becd5d...", "status": "In Progress" },
"owners": ["6687db0b...", "6687db14..."]
}
]
}
5. Get a single Strategic Theme¶
GET /api/v1/strategic-themes/{keyOrId}
keyOrId — the Strategic Theme's key (e.g. CV-20) or internal ID. Returns one object inside Data. 404 if not found.
6. List Objective Groups in a Strategic Theme¶
GET /api/v1/strategic-themes/{keyOrId}/objective-groups
Returns the Objective Groups within a Strategic Theme, including completion percentages.
GET https://example.kendis.io/api/v1/strategic-themes/CV-20/objective-groups?fields=all
Authorization: Basic <token>
{
"startAt": 0, "pageLimit": 50, "total": 5,
"Data": [
{
"id": "69a14f13...",
"level": 1,
"type": "Objective Group",
"title": "Claims Intake Modernization",
"completionPct": 17.79,
"objectivesCount": 10,
"sequence": 3490568843.0,
"status": { "id": "6687dccb...", "status": "Planned" }
}
]
}
7. Get Strategic Theme progress¶
GET /api/v1/strategic-themes/{keyOrId}/progress
Returns overall theme progress plus per-group progress.
{
"Data": {
"themeProgress": 21.58,
"groupsProgress": {
"69a19d4b...": 20.0,
"69a14f13...": 14.35,
"69a19d71...": 28.33
}
}
}
8. List Objectives in an Objective Group¶
GET /api/v1/objective-groups/{groupId}/objectives
groupId — the Objective Group's internal ID.
GET https://example.kendis.io/api/v1/objective-groups/69adc9b1.../objectives?fields=all
Authorization: Basic <token>
{
"startAt": 0, "pageLimit": 50, "total": 4,
"Data": [
{
"id": "69c91775...",
"level": 2,
"type": "Objective",
"key": "OBJ-329",
"title": "test",
"completionPct": 30.0,
"timePeriod": "H2 2026",
"status": { "id": "6687dccb...", "status": "Planned" },
"bvPlan": 0.0,
"bvActual": 0.0,
"completionCriteria": "ROLLUP_BY_STATUS",
"groupName": "Temp",
"keyResultsCount": 0,
"linkedItems": [ { "id": "668fe17d...", "linkType": "backLogItem" } ]
}
]
}
9. Get a single Objective¶
GET /api/v1/objectives/{keyOrId}
keyOrId — the Objective's key (e.g. OBJ-329) or internal ID.
Returns one Objective object inside Data. 404 if not found.
10. List Key Results for an Objective¶
GET /api/v1/objectives/{keyOrId}/key-results
keyOrId — the Objective's key (e.g. OBJ-330) or internal ID.
GET https://example.kendis.io/api/v1/objectives/OBJ-330/key-results?fields=all
Authorization: Basic <token>
{
"startAt": 0, "pageLimit": 50, "total": 3,
"Data": [
{
"id": "69c91d12...",
"level": 3,
"type": "Key Result",
"key": "KR-141",
"title": "KR with items",
"completionPct": 30.0,
"criteria": "By Items",
"timePeriod": "H2 2026",
"status": { "id": "6687dccb...", "status": "Planned" }
},
{
"id": "69c91ed2...",
"level": 3,
"type": "Key Result",
"key": "KR-142",
"title": "New KR",
"completionPct": 28.0,
"criteria": "Target",
"timePeriod": "H2 2026",
"metric": { "baseline": 50, "target": 75, "unit": "%", "current": 57 }
}
]
}
11. Get a single Key Result¶
GET /api/v1/key-results/{keyOrId}
keyOrId — the Key Result's key (e.g. KR-141) or internal ID.
Returns one Key Result object inside Data. 404 if not found.