← Docs

Versioning & deprecation

How the API, AI tools and webhooks change over time, and what you need to do so your integration keeps working.

REST API versions

  • The version is in the path: /api/v1/…. Every current route is v1.
  • A new version (/api/v2/…) is only introduced for breaking changes; v1 keeps running alongside it during the transition.
  • The downloadable OpenAPI (/openapi.json) always reflects what is live.

Non-breaking changes — may happen at any time

  • New fields in responses or webhook payloads.
  • New optional parameters, new routes, AI tools or webhook events.
  • New values in enumerated fields (statuses, types…).
  • Your app must ignore unknown fields and not rely on field order.

Breaking changes — always announced

  • Removing or renaming fields, changing types, adding required parameters, removing routes.
  • Announced in advance in the changelog and by email to registered app owners, with an effective date.
  • Routes scheduled for removal keep working normally until the effective date.

AI tools (MCP)

  • The tool catalog is generated directly from each module; assistants should read the catalog tool (e.g. crm_tool_catalog) each session instead of hard-coding schemas.
  • Removed tools disappear from the list and show under Removed in the changelog.
  • Write and export tools always require the user to tap Confirm — this rule does not change between versions.

Webhooks

  • The event envelope carries api_version (currently v1); the envelope shape only changes with a new version.
  • data.object may gain fields; the current field list is on the Webhooks page.

See the changelog →