We have introduced API versioning in Intercom to improve the developer experience by allowing for safe and frequent upgrades, reducing friction and complexity. This is achieved through the creation of multiple releases of our API, each with its own set of changes, which can be easily rolled back if needed. The introduction of a version change concept, where a single change made on an API model is represented by a description of the change, the public model it's targeting, and a transformation to the previous version of the model, enables us to update our public models to the latest version while still allowing for backward compatibility. This design allows us to have a single implementation of the logic, eliminating duplicated code and reducing maintenance overhead, making our codebase more robust, reliable, and maintainable. With API versioning, we can now release changes to all our platform features more frequently and safely, improving the quality of our platform and the apps built on top of it.