← 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(currentlyv1); the envelope shape only changes with a new version. data.objectmay gain fields; the current field list is on the Webhooks page.