REST APIs vs HTTP APIs
coreintermediateREST APIs carry the full feature set — API keys, per-client throttling via usage plans, request validation, AWS WAF, private endpoints — at a higher price. HTTP APIs are a minimal, cheaper subset built for the common case: JWT authorizers, Lambda/HTTP integrations, and automatic deployments, without API keys or request validation.
Think of it as
A stage is a named, deployed snapshot of an API's configuration (like "prod" or "dev") — a deployment is what publishes the current configuration to a stage. An authorizer sits in front of every request, deciding who gets past the door before the backend integration ever runs.
What we're doing: See why choosing REST vs HTTP API is a feature decision, not just a naming one.
- 2
- Usage plans and API keys are simply not available on HTTP APIs — this alone forces REST API regardless of any other preference.
- 4
- HTTP APIs support JWT authorizers natively and skip REST API's extra features the use case doesn't need, which is exactly what keeps them cheaper.
Why this works: The two API types are not "the same thing at two price points" — HTTP API is a deliberately reduced feature set, so the decision has to start from which specific REST-API-only feature (if any) the use case actually needs.
Choosing HTTP API for cost, then discovering a required feature is missing
Wrong
Better
What you see: Mid-project, a requirement for per-partner API keys or request-body validation surfaces, and the entire API has to be rebuilt as a REST API because HTTP API cannot add those features later.
Why: REST-API-only features are structural, not configuration toggles — an HTTP API has no upgrade path to gain usage plans, request validation, or WAF integration without recreating the API as a REST API.
- Client request
- leads to Authorizer (checked by)
- Authorizer — Lambda, JWT, or IAM
- leads to Stage (routed through)
- Stage — deployed config snapshot
- leads to Integration (invokes)
- Integration — Lambda, HTTP, AWS service
Remember: REST API = full feature set (API keys, usage plans, request validation, WAF) at higher cost. HTTP API = minimal, cheaper subset (JWT authorizer, automatic deployments). Stage = deployed config snapshot; a deployment is what publishes to it.
See also: lambda and private backend patterns · alb vs nlb

