All patterns
AWS S3
Snapshot from AWS S3
Verified on 2026-03-09

Graduated API Pricing

Storage class first, then request and transfer charges on top.

The public pricing page mixes storage, request, and transfer dimensions. It is not presented as a three-band graduated API plan.

S3 is a multi-axis infrastructure bill: which storage class you choose matters just as much as how many requests you send.

Implementation

This snippet is the closest Owostack implementation of the live pricing shape above. It is not a literal copy of the vendor's internal billing system.

const tokens = metered("tokens", {
  name: "Tokens",
});

plan("scale", {
  name: "Scale",
  price: 0,
  currency: "USD",
  interval: "monthly",
  features: [
    tokens.graduated(
      [
        { upTo: 100_000, unitPrice: 200 },
        { upTo: 500_000, unitPrice: 160 },
        { upTo: null, unitPrice: 120 },
      ],
      { reset: "monthly" },
    ),
  ],
});

Rules

Storage class selection changes the storage economics.

Request charges vary by operation type.

The code sample below remains an Owostack approximation, not a literal copy of S3's public page.

Ready to implement this pattern?

Join our Discord for implementation help, or book a call to discuss how AWS S3's pricing model fits your product.