Changelog
Change history of the Kinmu Public API. Incompatible changes are never applied within a major version: they are introduced in a new version and announced here.
Versioning policy
- The version goes in the URL:
https://api.kinmu.app/v1. - Frozen contract within
v1. We do not introduce incompatible changes inv1.
What we consider a compatible change (non-breaking)
These changes can happen in v1 without prior notice; your integration must tolerate them:
- Adding new endpoints or resources.
- Adding new fields to a response.
- Adding new values to an enum documented as extensible (e.g. custom absence types).
- Adding optional query or body parameters.
- Changing the text of error messages (
title,detail) — that’s why your logic must be based on the stablecodefield.
Design tolerant clients. Ignore fields you don’t recognize and don’t assume a fixed order in lists. That way compatible changes won’t affect you.
What we consider an incompatible change (breaking)
Requires a new major version (v2):
- Removing or renaming an endpoint, field or enum value.
- Changing the type of a field or making it required.
- Changing the meaning of a field or the code of an error.
Deprecation policy (12 months)
When we deprecate an endpoint, field or version:
- It is announced in this changelog and in the developer mailing list.
- It is marked as deprecated in the OpenAPI spec and, where applicable, with the
Deprecation+Sunsetresponse headers. - It remains operational for at least 12 months from the announcement before being retired.
Subscribe to notices on the support page.
History
Every change listed below is compatible: none of them breaks an existing v1 integration. They are documented here because they change observable behavior.
2026-08-27 — OpenAPI spec and updated_since
- The spec now declares the 402 and 409 codes and the
X-RateLimit-*headers, which the API already emitted. - The 409 is also declared on
POST /v1/reportsand on the idempotent webhook operations, where it was missing. updated_sinceimplemented onGET /v1/webhook-endpoints.updated_sincemarked deprecated onGET /v1/vacation-balancesandGET /v1/work-summaries: it has never filtered on those resources. It is still accepted with no effect — so regenerated SDKs don’t break — and will be removed on 2027-08-27, under the 12-month deprecation policy. For these aggregates, re-query the range (year,from/to). See conventions.
2026-08-20 — employee email unique per company
- Email uniqueness when creating an employee is now per company (it used to be global). Creations that previously failed with
422because of a collision with another company’s email are now accepted.
2026-08-10 — sandbox and keys are deprovisioned
- Disabling the Public API addon now revokes all API keys (reason
addon_disabled), deletes the generated reports and removes the sandbox company along with its data. Re-enabling the addon provisions an empty sandbox and does not restore the keys. See sandbox.
2026-07-31 — subscription gate and revocation
- The subscription gate is tightened: an exhausted trial, a canceled and lapsed subscription, an expired subscription and an archived company now return
403 subscription_inactiveon/v1. - Revoking API keys and webhooks (
DELETE) no longer requires an active subscription: cutting off a credential is a security control and must always be available.
2026-07-30 — company settings applied when issuing keys
- API key issuance honors the per-company addon settings:
default_expiration_days(expiration applied when you don’t ask for an explicit one) andmax_active_keys(cap on active keys, 10 by default).
v1 · 1.0.0
OpenAPI spec published (openapi-v1.json, v1.0.0). The interactive reference reads the real spec. The v1 surface is a frozen contract; changes are announced here under the 12-month deprecation policy.
Launch resources (MVP):
- Organization —
GET /v1/organization(introspection). - Employees — list, get, create, update and terminate.
- Check-ins — list, get and record check-ins.
- Work summaries — workday aggregates for payroll.
- Absences — list, get, create, approve and reject.
- Vacation balances — vacation balances.
- Locations / Units — organizational structure (read-only).
- Reports — asynchronous reports (legal time registry and exports), with file download via
GET /v1/reports/{id}/download.
Webhooks:
- Signed outgoing events (Standard Webhooks): endpoint management,
pingsending, delivery listing and manual re-queue of a delivery viaPOST /v1/webhook-endpoints/{id}/deliveries/{deliveryId}/retry.