Changelog
Changes to the Kapi Works API and these docs, newest first.
Each entry names the contract revision it brought. Follow the RSS feed to hear about new entries.
API 1.2: live sessions on certificates
Contract revision 1.2.0. Clients that follow the 1.1 contract keep working.
New
- Certificates finished by attending a Kapi live session in full carry the session:
live_session_id,live_session_format,live_session_starts_at,live_session_ends_at,live_session_minutesandlive_session_marked_by. Withpeople:readthey also carrytrainer_name. See Training evidence. - Records packs add the same columns to the certificate register.
API 1.1 and the developer docs
Contract revision 1.1.0. Clients that follow the 1.0 contract keep working, except that a cursor from 1.0 is refused: start a new pull.
New
GET /v1/snapshotanswers "has anything changed?" in one call, with any scope.- Draft IETF
RateLimitandRateLimit-Policyheaders on each accepted call, andRetry-Afteron 429 and 503 that says exactly how long to wait. HEADon every endpoint.- Keys can be limited to networks, and owners and admins are told when a key is used from a new network.
- Error
typelinks to the code's page on these docs, and new codeskey_in_url,ip_not_allowedandupstream_unavailable. - Example responses for every operation, and tags in the contract.
- These docs, with Markdown pages, llms.txt and a docs MCP server.
/v1/docson the API now redirects here. - A sandbox company with fictional people, for building an integration before you connect a real company.
- When Kapi erases a person at the company's instruction, the people register shows
access_stateerasedand open records end withsource_removed. See Training evidence. - While a company's contract is ending, answers carry a
Sunsetheader with the day Kapi deletes the company's data, and aLinkto When a company's contract ends.
Changed
- Calls the API refuses no longer count against the rate limits.
- A key sent in a web address is revoked, and its company is told.
- Creating a key needs two-step sign-in.
- A
limitabove 200 is treated as 200 instead of being refused. - Timeouts answer 504 with
read_timeout, and an unreachable records service 503 withupstream_unavailable. - Responses carry only the fields the contract publishes, and fields that list values are open, so new values can appear.
- Cursors are sealed. Cursors from 1.0 are refused with
invalid_cursor.
Kapi Works API 1.0
The first release of the read-only Kapi Works API, contract revision 1.0.1:
- Five registers: training records at a moment, training records over a period, certificates, people and courses.
- Company API keys created by owners and admins in Works Studio, with the scopes
training:read,certificates:readandpeople:read, an expiry of at most one year and at most ten active keys a company. - Pinned snapshots and cursors, so every page of a pull agrees.
- Errors as RFC 9457 problem details with stable codes, and limits of 60 calls a minute for each key, 120 for each company and 2 at once for each company.
- The contract at
/v1/openapi.json.