Versioning APIs is a challenging but essential task for companies offering public interfaces, as they must decide how to handle inevitable breaking changes. Clearbit, facing this challenge, has explored several approaches commonly used by other companies. One method is embedding a version number in the API URL, as practiced by Segment, which is simple but can become cumbersome with frequent updates. Another method involves specifying the version in the request header, a technique used by GitHub, which works well for infrequent changes. Stripe employs a more complex system using dynamic versioning based on the date of the first request, allowing flexibility in managing frequent changes and tracking customer usage. Clearbit has opted for Stripe's dynamic versioning approach, anticipating numerous future enhancements to their APIs.