Compare

Build your own API version lifecycle, or use EndPointBlank?

Retiring an API version safely takes more than a version number in the URL. Here is what a team ends up building, what EndPointBlank already does, and when building it yourself is the better choice.

What you would be building

Teams usually start with a version in the path and a changelog. The first real deprecation shows what is missing: nobody can say which customers still call the old version, and nothing tells them it is going away. Closing that gap means building six things, and keeping them in step:

  1. A lifecycle model per endpoint version (in development, current, deprecated, retiring on a date, retired), with rules for who may move a version between them.
  2. Client identity on every call, so usage can be counted per customer rather than per IP address or per shared key.
  3. Usage joined to versions, so "who still calls v1" is a query rather than a log search.
  4. Consumer notifications: an announcement, reminders as the date approaches, and a record of who was told.
  5. Deprecation and Sunset headers on every response from a deprecated version, in every service and every language you run.
  6. Retirement bookkeeping: marking a version retired once it has actually left production, and announcing it.

None of these is hard on its own. The cost is that they span your gateway or services, your logs, your customer database and your email, and they have to agree with each other on the day you turn a version off.

Side by side

You need Build in-house EndPointBlank
Version lifecycle state A table and an admin screen you design and maintain Derived from where each version is deployed; deprecation is one action in the portal
Which clients still call v1 Client identity threaded through every service, then a usage pipeline Every authorization records the calling client and the version it asked for
Credentials per client Issue, store and rotate keys yourself A client ID and secret per service, rotated with a grace window
Telling consumers Email lists, templates and a reminder schedule Consumers are notified on deprecation, with reminders as the date approaches
Deprecation and Sunset headers Middleware in each service, in each language Added by the client libraries for Ruby, Python, JavaScript, Java and Elixir
Retiring the version A manual checklist Retired automatically once a deprecated version leaves production

When building it yourself is the right call

If your API has one or two consumers you can message directly, one service, and rarely more than one live version, a changelog and a conversation will do. If your gateway or logs already identify every caller and all you need is a usage report, the guide to finding clients on an old version shows how to get it without us.

EndPointBlank earns its place when outside customers depend on your API, versions overlap for months, and the question "who breaks if we turn this off?" has to be answered with a list of names.

Read next

How to deprecate an API version without breaking your customers walks through the whole process, with or without a tool, and version lifecycle shows how EndPointBlank models it.

Ready to deprecate with confidence?

Sign up in under a minute. No credit card, no sales call.