Markdown Editor

API Management Platform Design Template (OpenAPI 3.2, OAuth, FAPI 2.0)

API products, consumer onboarding, gateway tiers, OAuth and sender-constrained tokens, rate plans, developer portal, versioning, analytics, monetisation, APIOps

ArchitectureFullOpenAPI 3.2; RFC 9700; FAPI 2.0 Security Profileapimanagementplatformdesign

How to use: Use it when an organisation publishes APIs to channels, partners or the public and needs one governed gateway and portal estate. Fill the API product model and consumer segments first, then gateway topology and the security policy by risk class. The main pitfall is relying on API keys alone for APIs that change data or return personal data.

Preview

API Management Platform Design: [Organisation or platform name]

Design for the platform that publishes, secures, governs and measures an organisation's APIs as products: the API product model, consumer segments and onboarding, gateway topology (edge, internal, partner and service mesh), security policies (OAuth 2.0, mutual TLS, sender-constrained tokens, API keys), rate plans and quotas, the developer portal, contract, versioning and lifecycle, analytics, monetisation, APIOps delivery, availability and the operating model. Contracts follow the OpenAPI Specification 3.2; security follows the OAuth 2.0 Security Best Current Practice (RFC 9700) and, for financial-grade APIs, the FAPI 2.0 Security Profile. Replace every [bracketed] value and every row marked Example.

Document control

FieldValue
Document ID[APIM-001]
Platform name[Name]
Gateway and portal products[Product names and versions]
Identity provider and authorisation server[Product]
Version[0.1]
Status[Draft / In review / Approved / Superseded]
Owner[@api-platform-lead]
Approvers/reviewers[@chief-architect], [@security-architect], [@api-product-manager], [@network-lead]
Classification[Internal / Confidential]
Last updatedYYYY-MM-DD
Related documents[Integration strategy], [API design guidelines], [Security architecture]

Approvals

RoleNameDecisionDate
Platform owner[@name][Approve / Approve with conditions / Reject]YYYY-MM-DD
Security[@name][Decision]YYYY-MM-DD
API product management[@name][Decision]YYYY-MM-DD
Network[@name][Decision]YYYY-MM-DD
Architecture board[@name][Decision]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]First draft
1.0YYYY-MM-DD[@name]Example: Approved; edge and internal gateways, portal for partners
1.1YYYY-MM-DD[@name]Example: Added DPoP sender-constrained tokens for partner write APIs

Contents

1. Scope, drivers and context

1.1 Drivers

IDDriverPlatform implication
AMD-001 (Example)Partners need self-service access to product and stock dataDeveloper portal with sign-up, sandbox and keys
AMD-002 (Example)Security audit found inconsistent authentication across APIsCentral policy enforcement at the gateway
AMD-003 (Example)Business wants to charge marketplaces for high-volume accessRate plans, metering and billing export
AMD-004 (Example)Mobile app traffic peaks at ten times normal during salesElastic edge gateway with caching
[AMD-NNN][Driver][Implication]

1.2 Scope

In scopeOut of scope
Example: All APIs consumed outside the owning domainCalls inside one domain, which use the service mesh only
Example: Partner and public APIs, channel APIsEvent streams (see Event-Driven Architecture Design, architecture/event-driven-architecture-design)
Example: Outbound calls to third-party APIs through an egress gatewayB2B and EDI (see B2B, EDI and File Transfer Design, architecture/b2b-edi-file-transfer-design)
[Item][Item]

1.3 Context

The platform sits between consumers and the experience, process and system APIs defined in the Integration Strategy (architecture/integration-strategy).

2. API product model

Product IDProduct nameOperations includedAudienceOwnerPlansStatus
APP-001 (Example)CatalogueGET products, GET prices, GET categoriesPartner, Public@pm-catalogueFree, Partner, PremiumPublished
APP-002 (Example)Stock availabilityGET stock by SKU and locationPartner@pm-stockPartner, PremiumPublished
APP-003 (Example)Order placementPOST orders, GET order statusMarketplace partners@pm-orderPartner writeBeta
APP-004 (Example)Store operationsInternal process APIs for store systemsInternal@team-storeInternalPublished
[APP-NNN][Name][Operations][Audience][@owner][Plans][Status]

Every product has a product page with: purpose and use cases, the OpenAPI document, authentication method, plans and limits, service level, change log, deprecation status and a support channel. The product owner decides what the product contains and approves breaking changes; the API owning team builds and runs the backend.

3. Consumer segments and onboarding

SegmentTrust levelOnboarding pathCredentialContractSupport
First-party channels (Example)HighPlatform team registers the clientOAuth 2.0 client with authorisation code and PKCE for usersInternalPlatform on-call
Contracted partners (Example)Medium to highPortal request, business approval, legal agreement, security reviewConfidential OAuth 2.0 client, private key JWT or mutual TLS authenticationPartner agreement and data processing termsNamed partner manager
Public developers (Example)LowSelf-service sign-up, email verification, terms acceptanceAPI key for read-only public data, OAuth 2.0 for user dataOnline terms of useCommunity forum
Internal teams (Example)HighCatalogue request with consumer detailsWorkload identity, OAuth 2.0 client credentialsInternalPlatform office hours
[Segment][Trust][Path][Credential][Contract][Support]

Onboarding acceptance criteria for partners: agreement signed; security questionnaire approved (Supplier Security Assessment, compliance/supplier-security-assessment); sandbox tests passed; production client created with least-privilege scopes; contacts for incidents recorded.

4. Gateway topology

TierPlacementTrafficResponsibilitiesNot responsible for
Web application firewall and CDN (Example)Internet edgeAll public trafficDDoS protection, bot management, TLS termination, static cachingAPI authorisation
Edge API gateway (Example)Perimeter network, two regionsExternal consumersToken validation, scopes, quotas, schema validation, response caching, analyticsBusiness orchestration
Internal API gateway (Example)Private networkCross-domain internal callsToken validation, quotas per consumer, routing, analyticsInternet-facing threats
Service mesh (Example)Inside each clusterCalls within a domainMutual TLS between workloads, retries, service-level telemetryConsumer plans, portal
Egress gateway (Example)Private networkOutbound third-party callsAllow list of destinations, credential injection, egress loggingInbound traffic
[Tier][Placement][Traffic][Responsibilities][Not responsible]

Topology decisions to record in ADRs: managed or self-hosted control plane; self-hosted gateway runtimes close to on-premises backends; single or multiple gateway products; where policy definitions are stored; and whether the internal gateway is needed at all where the mesh already enforces identity.

5. Security policies

5.1 Baseline policies on every API

IDPolicyRule
SEC-001TransportTLS 1.2 or later, TLS 1.3 preferred; HSTS on public hosts
SEC-002AuthenticationOAuth 2.0 access tokens validated at the gateway (signature, issuer, audience, expiry); API keys only where SEC-007 allows
SEC-003GrantsAuthorisation code with PKCE for user-facing clients; client credentials for machine clients; implicit and password grants not allowed
SEC-004ScopesScopes per product and operation class (read, write, admin); least privilege at subscription time
SEC-005Input validationRequest validated against the OpenAPI schema; payload size limits; reject unknown content types
SEC-006ErrorsProblem details format (RFC 9457) without stack traces or internal hostnames
SEC-007API keysAllowed only for read-only public data, combined with quotas; never sent in URLs
SEC-008LoggingToken identifiers and client IDs logged; tokens, secrets and personal data never logged
SEC-009Threat protectionProtection against the risks in the OWASP API Security Top 10 checked in design review

5.2 Extra policies by risk class

Risk classExamplesExtra policies
Class 1, public read (Example)CatalogueQuotas, caching, bot protection
Class 2, partner data (Example)Stock, order statusConfidential clients with private key JWT or mutual TLS client authentication; IP allow list optional
Class 3, writes and personal data (Example)Order placement, customer profileSender-constrained access tokens (mutual TLS per RFC 8705 or DPoP per RFC 9449); short token lifetime; step-up for sensitive actions
Class 4, financial-grade (Example)Payment initiation, account dataFull FAPI 2.0 Security Profile: pushed authorisation requests, PKCE with S256, sender-constrained tokens, confidential clients only; see Open Banking API Design (industry/open-banking-api-design)

5.3 Credential lifecycle

ItemRule (Example)
Client secretAvoided for class 2 and above; replaced by private key JWT or mutual TLS
Client certificateIssued by the approved CA (PKI and Certificate Architecture, security/pki-certificate-architecture); maximum validity per CA policy; renewal alert at 30 days
Access token lifetime5 to 15 minutes by class
Refresh tokenRotated on use, bound to the client; not issued to machine clients
API keyRotated yearly or on suspicion; old key valid for 7 days after rotation
RevocationPortal action and emergency runbook; gateway honours revocation within [5 minutes]

6. Traffic management, rate plans and quotas

PlanProductsRate limitQuotaBurstPriceBehaviour at limit
Free (Example)APP-0015 requests per second per app10,000 per day10NoneHTTP 429 with Retry-After
Partner (Example)APP-001, APP-00250 per second per app1,000,000 per month100Included in agreementHTTP 429; alert to partner manager at 80 %
Premium (Example)APP-001, APP-002200 per second per organisation10,000,000 per month400[USD 2,000 per month]Overage billed at [USD 0.10 per 1,000 calls]
Partner write (Example)APP-00320 per second per app200,000 per month40IncludedHTTP 429
Internal (Example)APP-004500 per second per consumerNone1,000ShowbackHTTP 429, page on-call

Backend protection: each backend declares a safe capacity; the gateway applies a global spike arrest at [80 %] of it, independent of plans. Rate limit headers follow the API Design Guidelines. Response caching is allowed for class 1 GET operations with explicit cache keys and a maximum time to live of [60 seconds] for stock data.

7. Developer portal

CapabilityRequirement
DiscoverySearch and browse products by audience and domain; product pages from section 2
DocumentationReference rendered from the OpenAPI document; guides, tutorials and code samples in the portal repository
Try itInteractive console against the sandbox with sandbox credentials only
SandboxSynthetic data, same contract as production, reset nightly
Self-serviceSign-up, team management, app registration, key and certificate upload, subscription requests
Change communicationChange log per product; deprecation notices; subscription to change emails or feed
StatusLink to the status page and incident history
SupportForum, ticket form for partners, response targets per segment
AccessibilityPortal conforms to WCAG 2.2 level AA
Analytics for consumersUsage, errors and quota consumption per app

Target: a public developer makes a first successful sandbox call within [15 minutes] of sign-up; a partner reaches production within [10 working days] including approvals.

8. Contracts, versioning and lifecycle

AreaRule
Contract formatOpenAPI Specification 3.2 for new APIs (3.1 accepted for existing APIs); linted against the house rule set in CI
Source of truthContract in the API repository; gateway configuration and portal pages generated from it
VersioningMajor version in the path (/v1/); minor and patch changes must be backward compatible
Breaking changeNew major version; both versions run in parallel for at least [12 months] for partners
Deprecation signallingDeprecation header (RFC 9745) and Sunset header (RFC 8594) on deprecated operations; notice in portal and email
RetirementAfter the sunset date, return HTTP 410 for [30 days], then remove the route
PolicyAPI Deprecation Policy (architecture/api-deprecation-policy) governs notice periods

These states are the portal view of the integration catalogue lifecycle in the Integration Strategy (architecture/integration-strategy, section 10.2): Design maps to Proposed, Beta maps to Designed (contract reviewed, sandbox only), and Published, Deprecated and Retired keep their names.

9. Analytics and observability

AudienceMeasuresSource
OperationsRequest rate, error rate by status class, latency 50th, 95th and 99th percentile (gateway and backend split), saturation, certificate expiryGateway metrics and traces
Product ownersActive apps, calls per product, top consumers, adoption of new versions, time to first call, churned appsAnalytics store
ConsumersOwn usage, errors and quota consumptionPortal
SecurityAuthentication failures, scope denials, unusual traffic per client, blocked requestsGateway logs to SIEM
FinanceBillable calls per plan and organisationMetering export

Every request carries a correlation ID and W3C Trace Context headers from the gateway to the backend. Analytics data that contains personal data follows the retention rules in the privacy notice.

10. Monetisation

DecisionChoice (Example)
Pricing modelSubscription tiers with included calls and metered overage
Billable unitSuccessful calls (HTTP 2xx) to billable operations; errors caused by the platform not billed
Metering sourceGateway transaction log, not sampled analytics
RatingMonthly aggregation per organisation and plan
Billing integrationDaily usage export to the billing system; invoices issued by finance
DisputesPartners can download usage detail per day from the portal
Tax and contractsOwned by finance and legal

For the rating and billing pipeline in depth, use SaaS Metering and Billing Design (architecture/saas-metering-billing-design).

11. APIOps delivery

StageAutomated checks
Pull request on API repositoryOpenAPI lint, breaking change detection against the published version, security rule set, spelling of descriptions
BuildGenerate gateway configuration and portal pages from the contract; contract tests against a mock
Deploy to non-productionApply configuration through the platform API; smoke tests; security scan of the API
ApproveProduct owner for new products; security for class 3 and 4
Deploy to productionSame artefact; canary or blue and green on the gateway; automatic rollback on error rate rise

Environments: development, test, sandbox (consumer facing), production. Configuration differences between environments are parameters only.

12. Availability, capacity and recovery

InputValue (Example)
Average traffic1,200 requests per second
Peak traffic (sale events)12,000 requests per second
Gateway capacity per instance at target latency1,500 requests per second
Instances needed at peak, per regionEach region must carry the full peak if the other region fails: 12,000 / 1,500 = 8; to survive one zone loss as well, 8 must remain in two zones, so 4 per zone x 3 zones = 12 per region, 24 in two regions
Added gateway latency budget10 ms at the 95th percentile
ConcernDesign
Availability target99.95 % for the edge gateway per month
Zones and regionsThree zones per region; active and active in two regions behind global load balancing
Control plane outageData plane keeps serving with cached configuration; no deployments until restored
Authorisation server outageGateways validate signed tokens locally with cached keys; new token issuance fails, so token lifetimes and refresh behaviour are set accordingly
Analytics outageRequests continue; logs buffered locally for [24 hours]
RecoveryConfiguration restored from the repository; tested twice a year

13. Operating model

ActivityPlatform teamAPI product ownerDomain teamSecurityPartner management
Gateway and portal operationA, RIICI
Policy templatesA, RCCCI
API contract and backendCARCI
Product definition and plansCA, RCIC
Partner onboarding approvalIAIRR
Security review of class 3 and 4 APIsCCRAI
Incident on gatewayA, RICCI
Incident on backendCIA, RCI

Service levels between the platform and domain teams: new API onboarded to the gateway within [2 working days] of an approved contract; policy template change requests answered within [5 working days].

14. Risks and decisions

IDTypeDescriptionResponseOwner
RSK-001 (Example)RiskGateway product lock-in through proprietary policy languageKeep policies simple and generated; store contracts in OpenAPI; exit plan in ADR@api-platform-lead
RSK-002 (Example)RiskPartner credentials leaked in public code repositoriesSecret scanning partnership, short-lived tokens, sender-constrained tokens for writes@security-architect
RSK-003 (Example)RiskShadow APIs exposed without the gatewayNetwork rules allow inbound internet traffic only through the edge tier; discovery scans@network-lead
DEC-001 (Example)DecisionManaged control plane with self-hosted data plane in the data centreADR-APIM-001@api-platform-lead
DEC-002 (Example)DecisionDPoP for partner write APIs where clients cannot manage certificatesADR-APIM-002@security-architect
[ID][Type][Description][Response][@owner]

15. Glossary and references

15.1 Glossary

TermMeaning
API productBundle of operations, plans and documentation offered to consumers
PlanSet of limits, quotas and price attached to a subscription
Data planeGateway runtime that processes API traffic
Control planeManagement service that configures gateways and the portal
Sender-constrained tokenAccess token bound to a key held by the client, so a stolen token cannot be replayed by another party
DPoPDemonstrating Proof of Possession, an application-level method of sender-constraining tokens
PKCEProof Key for Code Exchange, protection of the authorisation code flow
PARPushed Authorization Requests, sending authorisation parameters directly to the server
APIOpsManaging API definitions and platform configuration as code through pipelines

15.2 References

ReferenceVersion or date checkedUse
OpenAPI Specification, spec.openapis.org3.2 (3.2.0 September 2025, 3.2.1 September 2026)Contracts
RFC 9700, Best Current Practice for OAuth 2.0 Security (BCP 240)January 2025Section 5
FAPI 2.0 Security Profile, OpenID FoundationFinal, February 2025Risk class 4
RFC 8705, OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens2020Sender-constrained tokens
RFC 9449, OAuth 2.0 Demonstrating Proof of Possession (DPoP)2023Sender-constrained tokens
RFC 9126, OAuth 2.0 Pushed Authorization Requests2021FAPI 2.0
RFC 9457, Problem Details for HTTP APIs2023Error format
RFC 9745, The Deprecation HTTP Response Header Field; RFC 8594, The Sunset HTTP Header Field2025; 2019Deprecation signalling
OWASP API Security Top 10, owasp.org2023 editionDesign review
WCAG 2.2, W3CRecommendationPortal accessibility
[Vendor documentation][Version][Product limits and policy names]

Standard and licence note

Based on public specifications: the OpenAPI Specification 3.2 (OpenAPI Initiative, Apache License 2.0), IETF RFC 9700, RFC 8705, RFC 9449, RFC 9126, RFC 9457, RFC 9745 and RFC 8594, and the FAPI 2.0 Security Profile (OpenID Foundation). The OWASP API Security Top 10 is referenced by name only; no OWASP text is reproduced. Gateway, portal and identity product names are trademarks of their owners; this template is not affiliated with or endorsed by them. This template is original text written for this collection. Check the current official version of every specification and the vendor documentation before use. Template licence: MIT.

Related templates