XKOVA Docs

Versioning

The API is versioned by its path prefix. Everything you build against /v1 stays compatible for the life of v1, because a breaking change is not allowed inside a major version. It would require a new one.

The contract

  • Version lives in the path. Every public operation sits under the /v1/ prefix. That prefix is the version you are pinned to.
  • A breaking change means a new major. Anything that could break an existing client, removing a field, renaming one, changing a type, tightening validation, cannot land within /v1. It would appear under a new major prefix, side by side with the old one.
  • Additive changes are safe and in place. New endpoints, new optional request fields, and new response fields can land within /v1 without a version bump, because they do not break a client written against the older shape.

What is and is not breaking

ChangeBreaking?How it ships
New endpoint addedNoIn place, under /v1.
New optional request fieldNoIn place, under /v1.
New field in a response bodyNoIn place. Tolerate unknown fields in your client.
Field removed or renamedYesOnly in a new major.
Field type or format changedYesOnly in a new major.
Validation tightened on existing inputYesOnly in a new major.
Write your client to ignore response fields it does not recognize. New fields arriving in /v1 are expected, and a tolerant parser means additive releases never need code changes from you.

The shape is locked

The public request and response shapes for /v1 are fixed. Public identifier formats, response field names, status codes, and header contracts do not drift inside the major version. This is what makes it safe to generate clients and types against the contract and keep them. When a surface genuinely must change in a breaking way, it is deprecated first with notice, not altered in place. See Deprecations.

Related dimensions

The SDK carries its own semantic version. A non-breaking SDK improvement does not touch the API version, so you can update the client library on its own cadence. The underlying smart contract layer is versioned separately too, and deployed addresses can change across major versions. For your integration, the /v1 path prefix is the version that matters.

Related

See the Changelog for what shipped in each release, and Deprecations for how a surface is retired before any breaking removal.