APIs for Product Managers
Beta, GA, Deprecation, and Sunset: Managing an API's Whole Life
An API is not "done" at launch. Launch is the middle of its life, not the end.
Stage | What it means | The PM's job |
|---|---|---|
Private beta | A small, named set of callers, expectations set that things may change | Get real integration feedback before the contract hardens; it's still cheap to change things here |
Public beta | Open signup, but explicitly labeled as unstable | Set expectations clearly — a beta label is a promise you might still break things, use it honestly |
General availability (GA) | The contract is now real. Breaking changes require a new version and a migration plan | This is the line where "I'll fix it later" stops being an option |
Deprecation | You've announced an endpoint or version will eventually go away | Give a real, generous timeline; over-communicate; make the migration path as easy as you possibly can |
Sunset | The old version stops working | Only after you have verifiable evidence — not a guess — that no meaningful traffic remains |
The single most under-owned stage across almost every company I've seen is deprecation. Teams announce it once, in a changelog nobody reads, then sunset on schedule regardless of who's still calling the old endpoint — and are surprised when a long-tail partner's system breaks. Track actual usage of a deprecated endpoint before you sunset it. If traffic isn't near zero, your deprecation communication failed, and shipping the sunset anyway is a choice to break someone on purpose.
YOUR MOVE THIS WEEK
Find one deprecated (or about-to-be-deprecated) endpoint in your API. Ask for real usage numbers over the last 30 days. If it's non-trivial, that's not a footnote — that's a caller you're about to break, and they deserve a conversation before a sunset date.