APIs & Microservices

API Governance and Lifecycle Management

Standards, Versioning, and the API as a Product

On this page

An application programming interface (API) estate that grows faster than it is governed becomes hard to find, inconsistent to use and risky to change. Most estates were never designed as a whole: each project shipped the interfaces it needed and moved on, and the organization later discovers duplicated capabilities, endpoints that nobody owns and changes that break consumers nobody knew existed. The usual response, a central review board, usually fails, because a gate that arrives late and can only say no is routed around.

This paper sets out how to govern APIs as products across their whole life. It defines product thinking for APIs and a shared vocabulary, then describes a federated model in which a small center of enablement sets a few standards, domains own their APIs, and policy is enforced as code in the pipeline and at the gateway. It follows an API through seven lifecycle stages from design to retirement, and closes with the style guide, baselines, platform, metrics, a maturity model and a plan for the first 90 days.

Written for API product owners, platform and integration architects, API guild leads, and the engineering, security and domain leaders who keep a growing API estate consistent and safe to change.

Executive summary

API governance is the set of decisions, standards and controls that keep interfaces findable, consistent and safe to change as their number grows. Done badly, it is a review board that slows delivery and is bypassed. Done well, it is largely invisible: standards ship as linting rules, templates and gateway policies, the compliant path is also the easiest one, and human review is reserved for what a machine cannot judge.

This paper argues for federated governance with a center of enablement. A small central team, supported by a guild drawn from every domain, publishes a short list of standards and the tooling that enforces them, while the domain that owns each API designs, runs, evolves and eventually retires it.

  • An API is a product when someone can name its consumers, state its value, manage it through a deliberate lifecycle and review measures of its success.
  • Layer (system, composite or experience) and exposure (private, partner or public) are independent attributes, both recorded in the catalog; together they drive review depth, security baseline and service tier.
  • Decision rights are written down: who sets each policy, who approves exceptions and who applies it daily. Ownership has no exception path.
  • Seven lifecycle stages (design, build, publish, consume, evolve, deprecate and retire) each close with evidence rather than a meeting.
  • Additive change is the default; breaking changes open a new major version, announced through changelogs, portal notices, the Deprecation and Sunset headers and direct contact with registered consumers.

Later sections cover the style guide, baselines and platform that enforce the standards, the metrics and maturity model that show progress, and a 90-day plan sized to produce evidence rather than a program plan.

An estate that grows faster than it is governed

Most API estates were not designed; they accumulated. Each project shipped the interfaces it needed, documented them to the standard of the moment and moved on. The result is familiar to anyone who has tried to integrate with such an estate: duplicated APIs for the same capability, endpoints nobody can find without asking around, a different error format and paging scheme on every service, and changes that break consumers because no one knew who was calling.

API estates grow by accretion: teams ship interfaces that few can find, fewer can rely on, and that change without warning.

Sprawl

Duplicated and undocumented APIs with no named owner, discovered only when they fail or when someone tries to switch them off.

Inconsistency

Every API spells errors, paging and identifiers differently, so each integration starts from zero and client code cannot be reused.

Governance as a gate

A review board that arrives late, can only approve or refuse and has no tooling is bypassed, and the standards it guards decay.

The remedy has four parts, and the rest of this paper develops each one: treat APIs as products with accountable owners; federate governance, so that a small center enables rather than gates; make the standards executable; and run every API through an explicit lifecycle, with the evidence for each stage recorded in a catalog.

APIs as products

Product thinking is the stance that makes the rest of governance possible: an accountable owner for every API, a vocabulary for describing it, and roles that divide the work of building, enabling and consuming it.

Product thinking applied to an API

An API is a product when someone can name its consumers and what they need, state why those consumers would choose it over a direct database connection, a nightly file or building their own, manage it through a deliberate lifecycle and review measures of its success. The four elements below are the test.

Consumer segments

Name who the API serves, whether internal teams, partners or the public, and what each needs. Different segments justify different exposure, support and service levels.

Value proposition

State the job the API does and why a consumer would choose it over the alternatives. If that cannot be said, the API is an implementation detail, not a product.

Managed lifecycle

A product is designed, launched, evolved and retired on purpose. Every API carries a version, a status, a roadmap and a view on its own deprecation from the day it is published.

Success measures

Adoption, reuse, time to first successful call, reliability against service-level objectives (SLOs) and consumer satisfaction, reviewed by the owner as a product team reviews a product.

Consumer segments matter because they drive exposure, support and service-level decisions: an internal system API with three known callers is governed differently from a partner API with contractual obligations. The lifecycle element is the one most often missed; an API published without a version, a status and a view on its eventual deprecation has already created a future migration problem. Product thinking does not mean a marketing plan for every internal endpoint. It means that each API has a person accountable for its consumers and its evolution, who decides its scope, versions and retirement against evidence.

A shared vocabulary: layers and exposure types

Many governance disputes turn out to be about what kind of API is under discussion. Two independent attributes settle most of them: the layer in which an API sits, and the exposure type that determines who may call it.

Experience APIs

Shaped for one channel or consumer, and expected to change often

  • Mobile app
  • Partner portal
  • Web front end
Composite or process APIs

Compose several system APIs into one business capability, such as placing an order

System APIs

Expose a system of record or a domain's data behind a stable, owned contract

Exposure recorded for every API
Figure 1API layers, from channel-specific experience APIs to stable system APIs, with exposure as an independent attribute

The three-layer vocabulary was popularized by MuleSoft as API-led connectivity and is used widely in vendor-neutral form. Layer drives ownership and change frequency: experience APIs change often, while system APIs must stay stable. It is a vocabulary, not an instruction to build three layers for every capability; an unnecessary composite adds latency and blurs ownership. Exposure type describes who may call the API, and it drives the security baseline, the terms of use and the abuse protection required.

Table 1Exposure types and what each requires
ExposureWho may callWhat it requires
PrivateInternal consumers onlyStill cataloged, owned and versioned; enterprise identity and the standard baseline
PartnerNamed external organizations under contractPartner credentials, quotas, agreed service levels and contractual terms
PublicAny registered developerThe strongest abuse protection, published terms of use, rate limits and a support channel

The catalog records both attributes for every API, so that review depth, service tiers and policies follow rules rather than negotiation. A public system API and a private experience API are different governance problems, and the vocabulary lets teams say so in two words.

Roles in an API product organization

Governance works when each role knows what it is accountable for and when each accountability is visible in something that can be inspected. Role names vary between organizations; what matters is that each accountability has exactly one named holder.

Table 2Roles in an API product organization
RoleAccountable forTypical artifacts and forums
API product ownerThe API as a product: consumers, roadmap, versions and retirementBacklog, changelog, catalog entry, consumer reviews
Platform teamGateway, portal, catalog and linting offered as self-servicePlatform roadmap, golden paths, policy packs, runbooks
API guild (community of practice)Style guide, design standards, review practice and shared learningGuild meetings, style-guide repository, design reviews
ConsumersIntegrating within the terms, reporting issues and migrating on timePortal registrations, support requests, feedback
Domain leadFunding API products, naming owners and resolving prioritiesDomain roadmap, ownership register, funding decisions
Risk and security partnersSecurity baseline, classification rules and exception approvalThreat models, classification policy, exception register

Two choices in the table matter most. The API product owner sits inside the owning domain, usually as a product manager or technical lead, so that product accountability stays with the people who understand the consumers. And the platform team offers its tooling as a self-service platform, in the sense used by Matthew Skelton and Manuel Pais in Team Topologies, so that following the standard is the path of least resistance. Consumers have obligations too, above all migrating before sunset dates.

The governance model

The governance model decides who sets standards, who applies them and how conformance is checked. Its central choice, between a center that approves designs and one that enables teams, largely determines whether governance is adopted or avoided.

From gatekeeper to center of enablement

Gatekeeping center of excellence
  • Approves every design in a central board, usually late in delivery
  • Standards live in documents; people check conformance, inconsistently
  • Exceptions are negotiated case by case and never expire
  • Teams route around the queue with shadow APIs and direct database access
  • Measures its own throughput, not the health of the estate
Federated model with a center of enablement
  • Sets a small set of central standards; domains design, own and evolve their APIs
  • Encodes standards in linting rules, templates and gateway policy that teams run themselves
  • Reviews only what rules cannot judge: new products, breaking changes, sensitive data
  • Grants exceptions with an owner and an expiry date, and publishes them
  • Measures conformance, adoption and time to first call across the estate
Figure 2A gatekeeping center of excellence compared with a federated model built around a center of enablement

A gatekeeping center of excellence fails in a characteristic way. It arrives late in delivery, when changing a design is expensive; it can only say yes or no; and because it can only slow things down, teams route around it and its standards decay with its authority. It also tends to measure what it controls, such as reviews completed, rather than whether the estate is becoming easier to use.

A center of enablement keeps the expertise but changes its product: instead of approvals, it ships standards as tooling that teams run themselves, and it reviews only what rules cannot judge. Domains design, own and evolve their APIs within those standards, which is what federated means here. In the vocabulary of Team Topologies, the center combines an enabling team, which facilitates and teaches, with a platform team, which offers tooling as a service, while stream-aligned domain teams own the outcome.

The policy set and decision rights

A decision-rights table ends the argument about who may decide what. The allocation below is illustrative; the pattern it encodes is central standards, domain ownership and exceptions that expire.

Table 3Illustrative decision rights for the API policy set
Policy areaWho sets itWho approves exceptionsWho applies it daily
Design standards and style guideAPI guild; ratified by the architecture boardGuild lead, time-boxedAPI product owners
Naming and versioningAPI guildArchitecture boardAPI product owners
Security baselineSecurity function with the platform teamSecurity lead, with a compensating controlPlatform team at the gateway
Documentation standardAPI guildGuild lead, time-boxedAPI product owners
Service tiers and SLOsPlatform team with operationsDomain lead, for a stated periodAPI product owners; on-call teams
Data classification in payloadsData governance functionData protection or risk partnerAPI product owners
Ownership of an APIDomain lead names the ownerNone: every API has an ownerAPI product owner
Retirement of an APIAPI product owner, under the published policyArchitecture board, if consumers objectAPI product owner with the platform team

Every exception is approved by a named role, with an end date or a compensating control. Two rows deserve emphasis. Ownership has no exception path, because an API without an owner is the root of most other failures, and the domain lead must name one before anything is published. Retirement is decided by the API product owner under the published policy, with escalation to the architecture board only when consumers object. Everyone else applies the policies daily, which is why the last column is mostly API product owners.

Governance as code

Governance as code means that standards are enforced by the tooling that builds and runs the APIs, so that conformance becomes a property of the pipeline rather than the outcome of a meeting. Five checkpoints carry most of the load.

  1. Lint, then review by exception

    Rules check every commit; people review only new products, breaking changes and sensitive data

  2. Test the contract

    Contract tests prove the code matches the published contract before release

  3. Check the catalog

    Publishing fails unless the catalog entry is complete, owner included

  4. Enforce at the gateway

    Gateway policy checks tokens and applies rate limits, quotas and required headers

  5. Expire exceptions

    Every waiver has an owner, a reason and an end date in a public register

Figure 3Where each standard is enforced, from the first commit to the gateway

The contract is linted on every commit against a shared ruleset that encodes the style guide. Open source OpenAPI linters such as Spectral, Redocly CLI and vacuum support custom rulesets of this kind, and diff tools such as oasdiff compare a proposed contract with the published one to flag breaking changes before they merge. Contract tests confirm that the implementation honors the published specification, and publishing fails unless the catalog entry is complete, which is what keeps the catalog trustworthy.

At run time, the gateway applies authentication, rate limits, quotas and required headers as policy, so teams cannot forget them. Exceptions still exist, but each has an owner, a reason and an expiry date in a public register reviewed monthly. An exception renewed repeatedly is a signal that the standard, not the team, should change.

The lifecycle, from design to retirement

Every API should share the same shape of life, so that owners, consumers and the platform know what is expected at each point and what evidence lets an API move on.

Seven stages and the evidence at each gate

Table 4Seven lifecycle stages and the evidence that closes each one
StageWhat happensGate or evidence to move on
DesignConsumer needs captured; contract written first in OpenAPILinted contract; design review where rules require it
BuildImplemented against the contract; a mock available to consumersContract tests and security baseline checks pass
PublishCatalog entry created; exposed through gateway and portalEntry complete; policies attached; documentation live
ConsumeConsumers onboard with credentials, quotas, terms and a support channelEach consumer registered and identifiable in traffic
EvolveAdditive changes shipped; breaking changes open a new versionChangelog updated; compatibility checked in the pipeline
DeprecateSuccessor available; notices, headers and migration supportUsage falling; every active consumer contacted
RetireTraffic blocked at the gateway; code and credentials removedCatalog status retired; specification archived; no traffic

Two stages deserve explanation. Consume is a stage in its own right, because an API whose callers cannot be identified cannot later be changed safely; onboarding with credentials, quotas and terms is what makes every caller visible in traffic. Evolve is the long middle of an API's life, where additive changes ship and breaking changes open a new version. The stages overlap in practice, but the evidence does not blur: each gate is a fact the owner can show, not a meeting the owner must attend.

The catalog as system of record

The catalog is the system of record for governance. The developer portal is the consumer-facing view of the same data and is never maintained separately, because two inventories inevitably drift apart.

API catalog

The governance record; the portal is its consumer view

  • Owner and team

    A person or team that still exists

  • Version and status

    Current, deprecated or retired, with the support window

  • Service tier and SLOs

    Availability and latency objectives

  • Data classification

    Field classes that set payload obligations

  • Exposure type

    Private, partner or public

  • Registered consumers

    Credentials, quotas and terms per consumer

  • Specification and docs

    The OpenAPI contract, examples and guides

  • Changelog and notices

    Releases, deprecations and sunset dates

Figure 4What the catalog records for every API

Completeness is checked at publish and re-checked on a schedule, with stale entries flagged to their owners, because a catalog that decays is quickly ignored. Consumer onboarding runs through the portal, where credentials, quotas and terms are recorded per consumer; that record is what later makes targeted deprecation notices possible. The Open Worldwide Application Security Project (OWASP) API Security Top 10 lists improper inventory management as a risk in its own right, because outdated versions and forgotten hosts tend to go unpatched and unmonitored. Discoverability is therefore a security control as well as a convenience. When the catalog and the gateway disagree, the gateway is the truth, since it reflects what is actually exposed, and the catalog is corrected.

Versioning policy and change communication

Versioning policy
  • Additive change by default; consumers tolerate unknown fields
  • Breaking changes open a new major version
  • Major version in the path or a header, one convention estate-wide
  • A stated support window, such as the current and previous major versions
  • Compatibility checked in the pipeline against the published contract
Change communication
  • A consumer-facing changelog for every API
  • Release notes for additive change; a migration guide for every major version
  • Deprecation notice in the portal, the changelog and the response
  • Deprecation and Sunset header fields on responses
  • Direct contact with consumers still calling the old version
Figure 5The two halves of safe change: a versioning policy and the communication that goes with it

Additive change is the default: new optional fields and operations need no new version, provided consumers behave as tolerant readers that ignore fields they do not recognize. Breaking changes, such as removing a field, changing its meaning or tightening validation, open a new major version under one estate-wide convention. Stating the support window in advance makes retirement expected rather than negotiated.

Communication is the other half. Beyond changelogs, migration guides, portal notices and direct contact, two standard HTTP response header fields put the notice into the responses themselves, where client libraries, gateways and monitoring can detect it.

  • Deprecation (RFC 9745, a Standards Track specification) signals that a resource is deprecated, or will be deprecated at a stated time. Its value is a structured-field date, written as an at sign followed by a Unix timestamp, and the same RFC defines a deprecation link relation that points to documentation of the change.
  • Sunset (RFC 8594, an Informational RFC) carries the HTTP date after which the resource is expected to become unresponsive. RFC 9745 requires that the Sunset time be no earlier than the deprecation time.
HTTP/1.1 200 OK
Deprecation: @<Unix time at which the version is deprecated>
Sunset: <HTTP date after which the version stops responding>
Link: <https://developer.example.com/orders/v1/migration>; rel="deprecation"; type="text/html"

The two fields answer different questions. Deprecation says that a version is no longer the one to build on; Sunset says when it will stop working. RFC 8594 itself notes that Sunset fits the second stage, once a decommissioning time is known, rather than an API that is merely no longer preferred.

Retirement playbook

Retirement is the stage most organizations skip, which is why version sprawl accumulates. The timeline below is illustrative: regulated or partner-facing APIs may need longer notice, and internal APIs with few consumers can move faster.

  1. Month 0
    Decide and measure

    Usage per consumer and version; successor published; sunset date set by policy

  2. Months 1 to 9
    Notify and migrate

    Notices, changelog and headers; migration support; monthly follow-up

  3. Months 10 to 12
    Cut over

    Scheduled brownouts; escalation through domain leads; traffic blocked at sunset

  4. After sunset
    Remove

    Code, infrastructure and credentials removed; entry retired; lessons recorded

Figure 6An illustrative twelve-month retirement timeline

Retirement starts from evidence: usage per consumer and version, a successor already published, and a sunset date recorded in the catalog. Notification runs through every channel at once, with monthly follow-up for consumers still calling. Cut-over uses scheduled brownouts, short planned periods during which the old version returns errors, to surface consumers that never registered; the rest are escalated through their domain leads before the gateway blocks traffic on the sunset date. Removal deletes code, infrastructure and credentials, and recording what delayed migration makes the next retirement faster.

Standards, platform and tooling

Standards make APIs predictable, and the platform makes the standards the default. Both should be short enough to remember and specific enough for a machine to check.

Style guide essentials

A style guide is useful in proportion to how much of it a machine can check. Each rule below is encoded as a linting check wherever a machine can judge it; the rest is covered in design review.

Table 5Style guide essentials
TopicRuleWhy it matters
NamingOne convention for case and plurals, applied by the linterPredictable paths; less time reading documentation
ErrorsRFC 9457 Problem Details: type, title, status, detail, instanceOne error shape for every client to handle
PaginationOne scheme estate-wide; cursor-based for large or changing collectionsStable iteration with no duplicate or skipped items
IdempotencyMethod semantics per RFC 9110; an idempotency key for unsafe operationsSafe retries without duplicate side effects
Dates and timesRFC 3339 timestamps with an explicit offset; calendar dates as full-dateNo time-zone ambiguity across systems
MoneyAmount as a decimal string plus an ISO 4217 currency codeNo floating-point rounding; currency always explicit
Correlation identifiersPropagate W3C Trace Context; return a request identifier in responsesRequests traceable across services and by support
DocumentationOpenAPI 3.x as the source of truth, with examples for every operationPortal, mocks and tests generated from one specification

Most of these rules point to an existing standard rather than inventing one. RFC 9457, which obsoletes the earlier RFC 7807, defines the error object served as application/problem+json, so an error catalog can map each problem type to documentation. Cursor pagination matters because offset paging over a moving collection skips or repeats items. RFC 9110, HTTP Semantics, makes GET, PUT and DELETE idempotent and POST and PATCH not, so unsafe operations that clients must be able to retry, such as creating a payment, accept an idempotency key; the Idempotency-Key request header is described in an IETF Internet-Draft and is already common in payment APIs. Correlation uses the World Wide Web Consortium (W3C) Trace Context headers, traceparent and tracestate, plus a request identifier that support staff can search for.

Security, documentation and service-tier baselines

Three baselines sit alongside the style guide, and every API inherits them.

Security baseline
  • OAuth 2.0 or OpenID Connect for every consumer identity
  • TLS on every hop; secrets rotated
  • Authorization per object and per property, not per endpoint only
  • Schema validation of input; rate limits and quotas per consumer
  • OWASP API Security Top 10 as the threat checklist
Documentation standard
  • OpenAPI 3.x specification in version control as the source of truth
  • A getting-started guide that reaches a first successful call quickly
  • Examples for every operation and error
  • An error catalog mapped to Problem Details types
  • Changelog, support channel and owner visible on the portal page
Service tiers and SLOs
  • Three tiers, such as critical, standard and best effort
  • Availability and latency SLOs and support hours per tier
  • Error budgets govern the pace of change
  • Tier set by the owner from consumer impact, recorded in the catalog
  • Breaches reviewed with consumers
Figure 7The security, documentation and service-tier baselines every API inherits

The security baseline requires OAuth 2.0 (RFC 6749) or OpenID Connect for consumer identity and Transport Layer Security (TLS) on every hop. Its most important line is authorization per object and per property rather than per endpoint: broken object level authorization and broken object property level authorization rank first and third in the OWASP API Security Top 10, which serves as the threat checklist for design review.

The documentation standard adds what a specification cannot provide, above all a getting-started guide whose quality shows up in time to first successful call. Service tiers give every API stated availability and latency objectives, and error budgets, as described in Google's Site Reliability Engineering (SRE) books, link tier to pace of change: an API that has spent its budget slows its releases until reliability is restored.

Payload obligations by exposure and sensitivity

Payloads carry data, and data carries obligations that follow the API wherever it is called. The matrix below uses two attributes the catalog already records: exposure type and the sensitivity of the data in the payload.

Sensitivity of data in the payload

Sensitive, internal

Classify fields in the contract, minimize, scope access by purpose, log access, govern log and cache retention

Sensitive, external

Strictest controls: legal basis or consent, partner terms, field-level authorization, encryption, impact assessment

Low sensitivity, internal

Baseline controls; invest in discoverability, consistency and reuse

Low sensitivity, external

Abuse protection, rate limits, caching and terms of use; watch for aggregation

Exposure: private to partner to public

Figure 8Payload obligations by exposure and data sensitivity

Two legal hooks apply directly. Where processing is likely to result in a high risk to individuals, Article 35 of the General Data Protection Regulation (GDPR) requires a data protection impact assessment, and Article 25, data protection by design and by default, applies to the contract itself: a field that is not needed should not be in the response. At the other end of the matrix, low-sensitivity internal APIs, usually the majority, need only the baseline, while low-sensitivity public APIs need a watch on aggregation, because individually harmless fields can combine into a sensitive profile. The classification scheme itself belongs to enterprise data governance; the API program should adopt it rather than invent its own, and record each field's class in the contract.

The API platform stack

The platform turns standards into defaults. Each layer of the stack enforces part of the policy set, and the policy definitions for all of them live in version control.

Developer portal and catalog

Discovery, documentation, onboarding, consumer registration and the governance record

API gateway and management

Authentication, rate limits, quotas, thin transformation, analytics and metering

Design and build tooling
  • Linting
  • Mocking
  • Contract tests
  • Templates
Observability

Metrics, logs and traces per API and consumer, behind SLOs and usage analytics

Identity and policy services

Identity provider, token issuance and the policy store the gateway evaluates

Policy as code, versioned and tested
Figure 9The API platform stack and what each layer enforces

Gateway topology and build versus buy

Topology and sourcing are decisions to make deliberately rather than inherit from the first team that needed a gateway.

Table 6Gateway topologies compared
TopologyWhat it givesWhat it costs
Central gatewayOne policy point and one view of trafficA bottleneck team and a single failure domain
Per-domain gatewaysAutonomy and isolation for each domainPolicy drift and more instances to patch and monitor
HybridA central edge for partner and public traffic, with domain gateways insideTwo layers to run; one shared policy pack to maintain

Whatever the topology, policy definitions live in version control and are tested like code, which is what keeps per-domain gateways from drifting apart. A service mesh handles service-to-service traffic inside the boundary; it complements API management for consumers rather than replacing it, because it provides neither onboarding, nor per-consumer quotas, nor a portal.

Measuring and maturing

Governance earns its keep only if the estate becomes easier to find, use and change, and the evidence for that should be measured, not asserted.

Metrics that show whether governance is working

Table 7Governance metrics and how each is misread
MetricWhat it showsWatch-out
Adoption and reuseConsumers per API; APIs used by more than one consuming teamCounting calls rewards chatty clients, not value
Time to first successful callHow quickly a new consumer gets a working request throughMeasure from portal sign-up, not from credential issue
Conformance scoreShare of linting rules passed per API and per domainRules must be stable or trends are meaningless
Owned and documentedShare of APIs with a named owner and current documentationThe owner must be a person or team that still exists
Deprecated-version shareTraffic still on deprecated versions, by consumerAn average can hide one critical consumer that cannot move
Change failure rateShare of API releases causing incidents or rollbacksAttribute failures to the change, not to the on-call team
Consumer satisfactionSurvey or interview score from integrating teamsAsk consumers, not owners; read small samples qualitatively

Time to first successful call deserves special attention, because it measures the whole path from portal sign-up to a working request and is therefore the most honest test of documentation quality. Change failure rate is one of the four software delivery measures popularized by Accelerate, by Nicole Forsgren, Jez Humble and Gene Kim. The DevOps Research and Assessment (DORA) program that maintains these measures now calls it change fail rate: the share of deployments that need immediate intervention, such as a rollback or hotfix. Applied to API releases, it shows whether pipeline checks catch breaking changes before consumers do. Every metric is reported per domain, because enterprise averages hide where help is needed.

A five-stage maturity model

A maturity model gives domains a shared way to describe where they are and what comes next. It should be assessed per domain, not for the enterprise as a whole.

  1. Stage 1
    Ad hoc

    APIs appear as project byproducts; no catalog, owners or shared standards

  2. Stage 2
    Documented

    Inventory and named owners; a written style guide checked by people, late and unevenly

  3. Stage 3
    Standardized

    Standards linted and enforced at the gateway; complete catalog; portal onboarding

  4. Stage 4
    Measured

    Conformance, adoption, time to first call and deprecated traffic reported and acted on

  5. Stage 5
    Product-led

    Domains fund and manage APIs as products; the platform runs as a service

Figure 10A five-stage API maturity model, assessed per domain

Many organizations stall at the documented stage, where a style guide exists but conformance still depends on people reading designs. Moving one stage typically takes quarters, and skipping the documented stage rarely works, because tooling cannot enforce standards nobody has agreed.

Pitfalls that erode governance

The pitfalls recur because each is the easy path at the moment it is taken.

Funding the model

Funding shapes all of this. The platform and the enablement team should be funded centrally, as a shared service with a roadmap and service levels, because a platform funded project by project fragments into incompatible tools. Each API product should be funded by the domain that owns it, so that decisions about scope, versions and retirement sit with the people who pay for them: a domain that funds an API has a reason to retire versions nobody uses, and a central budget that absorbs every version has none.

Where to start: the first 90 days

The first 90 days should be sized to produce evidence rather than a program plan. Each month ends with something that can be shown: an owned inventory, a live catalog, a retired version.

  1. Days 1 to 30: own the estate. Inventory the estate, name an owner for every API, and charter the guild with members from every domain.
  2. Days 1 to 30: lint from day one. Adopt a starter style guide and lint every new contract in the pipeline immediately, rather than waiting for a complete standard.
  3. Days 31 to 60: make the catalog real. Launch the catalog with completeness checks, and publish the versioning and deprecation policy, including the support window and the use of the Deprecation and Sunset headers.
  4. Days 31 to 60: set the floor at the gateway. Attach the security baseline at the gateway and open the exception register, so that existing deviations receive owners and end dates.
  5. Days 61 to 90: prove it. Baseline the metrics per domain, retire one unused version end to end to prove the playbook, and review the results and funding with domain leads.

None of these steps requires a finished operating model; together they establish ownership, an executable standard, a trustworthy catalog and a working retirement path. The principle that ties them together is simple: standards that ship as tooling get adopted; standards that arrive as a gate get bypassed.

Glossary

API product
An API managed for named consumers, with an accountable owner, a value proposition, a lifecycle and measures of success.
Center of enablement
A small central team that sets a few standards and provides the tooling that enforces them, instead of approving every design.
Governance as code
Enforcing standards through linting, contract tests, catalog checks and gateway policy rather than through manual review.
Exposure type
Who may call an API: private (internal only), partner (named external organizations) or public (any registered developer).
API catalog
The system of record for every API's owner, version, status, tier, classification, exposure, consumers, specification and changelog; the developer portal is its consumer view.
Breaking change
A change that can make an existing consumer fail, such as removing a field, changing its meaning or tightening validation.
Tolerant reader
A consumer that ignores fields it does not recognize, which allows producers to add fields without a new version.
Deprecation header
An HTTP response header field, defined in RFC 9745, that signals a resource is or will be deprecated.
Sunset header
An HTTP response header field, defined in RFC 8594, that states when a resource is expected to become unresponsive.
Brownout
A short, scheduled period in which a deprecated version returns errors, to surface consumers that have not migrated.
Error budget
The amount of unreliability an SLO allows over its window; when it is spent, the pace of change slows.
Time to first successful call
The elapsed time from a new consumer's portal sign-up to a working request, a measure of onboarding and documentation quality.

References and further reading

  1. Matthew Skelton and Manuel Pais, Team Topologies: Organizing Business and Technology Teams for Fast Flow.
  2. IETF, RFC 9745, The Deprecation HTTP Response Header Field.
  3. IETF, RFC 8594, The Sunset HTTP Header Field.
  4. IETF, RFC 9457, Problem Details for HTTP APIs.
  5. IETF, RFC 9110, HTTP Semantics.
  6. IETF, RFC 3339, Date and Time on the Internet: Timestamps.
  7. IETF HTTPAPI Working Group, The Idempotency-Key HTTP Header Field, Internet-Draft (work in progress).
  8. IETF, RFC 6749, The OAuth 2.0 Authorization Framework; OpenID Foundation, OpenID Connect Core.
  9. ISO 4217, Codes for the representation of currencies.
  10. W3C, Trace Context (W3C Recommendation).
  11. OpenAPI Initiative, OpenAPI Specification, version 3.x.
  12. OWASP, OWASP API Security Top 10.
  13. Betsy Beyer, Chris Jones, Jennifer Petoff and Niall Richard Murphy (eds.), Site Reliability Engineering: How Google Runs Production Systems; Betsy Beyer, Niall Richard Murphy, David K. Rensin, Kent Kawahara and Stephen Thorne (eds.), The Site Reliability Workbook.
  14. Nicole Forsgren, Jez Humble and Gene Kim, Accelerate: The Science of Lean Software and DevOps; DevOps Research and Assessment (DORA), guidance on software delivery performance metrics.
  15. General Data Protection Regulation (GDPR), in particular Article 25 on data protection by design and by default and Article 35 on data protection impact assessments.

This paper offers general guidance and is not legal, regulatory or professional advice. Summaries of laws, regulations and standards are for orientation only; confirm the obligations that apply to your organization with qualified advisors. Product and vendor names are used for illustration and imply no endorsement.

© ByteCI, LLC. All rights reserved.

Put this into practice

Want help applying this?

ByteCI helps federal and private-sector teams turn guidance like this into working architecture, roadmaps and delivery. Tell us about your situation.