Skip to content

Errors

Errors come back as JSON, { "error": "…" }, with a status code. The text in error is German: it is written for the person looking at the screen, not for your code. Branch on the status code.

CodeMeaning
400Invalid parameter — the text names the field and the shape expected.
401No key, or a key that is not valid.
403The key is missing the scope this endpoint needs.
404Not found, not in the workspace of the key — or, for a personal key, not visible to that person. 404 rather than 403, deliberately.
503The endpoint does not exist on this deployment yet, because a database change has not been applied. A temporary state, not a mistake in your request.

An expired key also answers 401. Anything in the 5xx range other than the ones listed is temporary — try again.

A meeting you are not allowed to see answers 404, not 403 — otherwise the existence of other people's meetings would show through. Where an endpoint answers with a list, the same situation is an empty list.

Protoki — EU/GDPR-compliant meeting notetaker.