Operations

Versioning and changelog

What v1 promises, what counts as a breaking change, and what changed when.

The v1 promise#

Everything under /api/v1 stays compatible. We may, without a new version:

  • add endpoints, resources, fields, filters and error errors details;
  • add values to enums in responses (handle unknown values gracefully);
  • improve error message texts (code against type, not message);
  • change the order of fields in JSON.

We will not, within v1: remove or rename fields or endpoints, change a field's type, make an optional request field required, or change the meaning of an error type.

A breaking change means a new version (/api/v2). v1 keeps working alongside it for a transition period that is announced to company owners in advance.

Changelog#

1.0.0 — October 2026

  • Personal API keys for every member: read or read-and-write access, expiry, revoke, per-company switch.
  • Resources: clients, sales, custom orders, appointments, tasks (create, read, change, delete); invoices with lines and brands (read).
  • GET /me, cursor pagination, filters and client search, Idempotency-Key, per-key rate limit, request IDs.
  • Request log and usage per key; OpenAPI 3.1 description at /api/v1/openapi.json.