Errors¶
The Kendis APIs use standard HTTP status codes. Client errors carry an errorMessages field; server errors carry an error field.
Error body shapes¶
| Class | Shape |
|---|---|
| Client errors (4xx) | { "errorMessages": "..." } |
| Server errors (5xx) | { "error": "..." } |
Note
Some legacy PI Board endpoints return a bare { "error": "..." } for certain conditions (e.g.
{"error": "Invalid API Key"} on a 401, {"error": "No Session Board found"} on a 500). Always
branch on the HTTP status code first, then read whichever message field is present.
Status codes¶
| Code | Meaning | What to do |
|---|---|---|
200 |
Success | — |
401 |
Unauthorized — missing/invalid/revoked API key, or password sent instead of key | Re-check your Authentication header |
404 |
Resource not found, or no data for the given parameter | Verify the ID/key; confirm the resource exists and is visible to your user |
500 |
Internal server error — e.g. boardId missing, invalid, or not accessible ("No Session Board found") |
Re-fetch the boardId via List Boards; confirm your user can access that board |
504 |
Gateway timeout — typically transient on very large boards | Retry with backoff; for large pulls, split by board and parallelise across boards |
Tenant / prefix specific (legacy method)¶
On the legacy path-prefix method, a wrong company prefix surfaces as:
| Code | Meaning | Fix |
|---|---|---|
404 |
Invalid company prefix in URL, or the prefix doesn't match your API key's tenant | Confirm <companyPrefix> with your Kendis administrator |
Handling timeouts on large data¶
A sporadic 504 almost always means a gateway timeout on a large board — not a permanent failure. Recommended client behaviour:
- Retry with exponential backoff (e.g. 1s, 2s, 4s).
- For very large pulls, fetch board-by-board and parallelise across boards rather than requesting everything in one call.
- Keep
pageLimit/pageSizeat the documented maximum to minimise the number of round trips.