---
title: "What triggers headless CMS overage fees (and how to avoid them)"
description: "Headless CMS overage fees trigger when you cross a metered ceiling
(API calls, bandwidth, stored assets, or seats), and the next unit is
billed on a separate rate card you rarely see until the..."
url: "https://adaptocms.com/articles/headless-cms-overage-fees-explained/"
category: "Pricing analysis"
date: "2026-07-01"
source: adaptocms.com
---

# What triggers headless CMS overage fees (and how to avoid them)

## TL;DR

Headless CMS overage fees trigger when you cross a metered ceiling (API calls, bandwidth, stored assets, or seats), and the next unit is billed on a separate rate card you rarely see until the invoice. Flat-rate pricing removes the risk entirely.

Every usage-based CMS sets a soft limit on each meter, but which one trips first, and how much the next unit costs, differs by vendor: a bandwidth cap at Contentful, a per-call meter at DatoCMS, a request-type multiplier at Sanity. The mechanic underneath is identical everywhere, which is why the real number stays hidden until the invoice lands.

Below is what each of the four meters does, what it costs at five named vendors as of 2026, and how a flat-rate model avoids the surprise entirely.

## The four things headless CMSs meter

**API calls.** Every read or write against the CMS's API counts. Plans include a monthly quota (Contentful's cut-down free tier: 100,000 calls); go over it and you pay per additional block, or get throttled.

**Bandwidth.** Every byte the CMS serves counts against a monthly transfer quota (content payloads, and often media), typically billed per GB or TB once exceeded.

**Assets.** Stored media (images, video, files) has its own quota, separate from bandwidth. Cross it and you pay per extra GB stored, or trip a tier upgrade.

**Seats.** These aren't API usage, but they meter the same way: a plan includes a minimum number of user accounts with CMS access, and each additional one is billed monthly. Teams forget to budget for this one because it grows with headcount, not traffic.

## Real overage numbers, sourced and dated (2026)

Vendor

What's metered

Overage cost

Source

**Contentful**

Bandwidth beyond plan quota

~$65/TB over the included allowance. The free tier itself was cut on April 30, 2025 to 25 content models, 50GB bandwidth, and 100,000 API calls, with no grandfathering.

Costbench hidden-costs analysis, 2026; contentful.com/pricing

**DatoCMS**

API calls beyond plan quota

~€9 per additional 250,000 API calls

DatoCMS overage documentation, datocms.com

**Sanity**

Direct API requests vs. CDN requests

**10× CDN rate** (no flat $ published). Add-ons stack on top: an extra dataset is $999/mo, a quota bump is +$299/mo.

sanity.io/pricing; Sanity community forum

**Storyblok**

Traffic (bandwidth)

$75 per additional 250GB of traffic. Crossing the threshold above the $99/mo Growth plan doesn't add a line item. It bumps you straight to the $349/mo Growth Plus plan.

storyblok.com/pricing (April 2025 repricing)

**Cosmic**

Six meters (buckets, objects, API calls, media bandwidth, media storage, AI usage) plus seats

+$29 per user/month beyond the plan minimum, on top of usage overages across the other five meters

cosmicjs.com/pricing

The metered dimension isn't always the obvious one. Sanity's real cost driver is the request type: calling the API directly instead of going through the CDN costs ten times as much, so a routine app-level fetch pattern can 10x your bill. Cosmic meters six separate things at once, so "check your usage" means checking six dashboards.

## Why bills spike after the free tier, or at a tier cliff

Two separate mechanics cause the jump, and they compound.

**Metered overage** is linear: use more, pay more, per the rate card above. You can at least forecast it if you know your traffic.

**Tier cliffs** aren't linear, and they're the more common shock. A small usage increase pushes you into a much more expensive plan instead of a small incremental charge:

-   **Contentful:** Free ($0) → Lite ($300/mo), with nothing in between. There's no graceful step: you either fit inside the free tier's 50GB/100k-call ceiling or you're paying $300.
-   **Storyblok:** Growth ($99/mo) → Growth Plus ($349/mo). Cross the asset or traffic threshold on Growth and you don't get billed for the overage; you get moved to a plan that costs 3.5× more.
-   **Hygraph:** Hobby (free, but overages are **blocked**, not billed) → Growth ($199–$299/mo). You hit a wall before you hit a bill.

Vendors design tiers this way on purpose: usage growth is a cheaper upsell trigger than a sales call. So your bill turns on which side of the threshold you land on, more than on how much you use.

## How to estimate your overage risk before you sign

1.  **Pull your real numbers first.** Monthly API call volume, average page/asset weight, current bandwidth from your existing host or CDN. Don't estimate from a demo.
2.  **Model peak, not average.** A launch, a marketing campaign, or a viral post can spike traffic 5–10× for a week. Tier cliffs get hit during peaks, not average months.
3.  **Count seats like a real headcount forecast.** Include contractors, agency partners, and stakeholders who need review access, not just today's editors.
4.  **Check whether the CDN or the direct API serves your content.** If a vendor prices the two differently (like Sanity), confirm which one your framework's data-fetching pattern calls.
5.  **Build in headroom, not a fit.** If your projected usage lands within 20% of a plan's ceiling, assume you'll cross it within two quarters of normal growth.
6.  **Re-check after any frontend change.** Adding server-side rendering, removing a cache layer, or switching from static generation to on-demand fetching can multiply API call volume without a corresponding traffic increase.

## The flat-rate alternative

Adapto's tiers still have ceilings: records, API calls, bandwidth all show up in the plan spec, same as anywhere else. The difference is what happens when you cross one. There's no rate card waiting on the other side: you get an email and a **7-day grace period** to upgrade or trim usage. No silent overage line item on the invoice, no throttling you find out about after the fact. You know the number, and you have a week to act on it before anything changes.

The five published tiers: **Free Evaluation** ($0), **Hobby** ($29/mo), **Startup** ($69/mo), **Scale** ($249/mo), and **Professional** ($449/mo). Every tier ships every feature (webhooks, localization, custom roles, the media CDN, image optimization), so there's no feature-gating to plan around alongside the usage limits. Contributors are unlimited on every tier too, which closes off the seat meter specifically: adding a reviewer or a contractor to a project doesn't touch the bill.

The tradeoff worth naming: a flat-rate plan with a grace period still means picking a tier sized for your real usage, not your best-case estimate, so the planning work in the section above still applies. What changes is the cost of a miss: a warning and a week to fix it instead of a surprise charge. See [Adapto's flat pricing](/#pricing) for the current tiers, and if you're still comparing vendors, [our Contentful teardown](/contentful-alternative/), [Sanity's pricing model](/sanity-alternative/), [Storyblok's tier structure](/storyblok-alternative/), and [Cosmic's metered add-ons](/cosmic-js-alternative/) go deeper on each. If overage risk is one line item in a bigger evaluation, [how to choose a headless CMS](/articles/how-to-choose-a-headless-cms/) covers it alongside the other seven criteria that matter.

## FAQ

### What triggers CMS overage fees?

Crossing one of four metered ceilings: API calls, bandwidth, stored assets, or seats beyond your plan's included minimum. The trigger is the number, not misuse: a normal traffic spike, a growing media library, or adding one more editor can all do it.

### Why do headless CMS bills increase?

Two mechanics, often together: metered overage (you used more of something than your plan includes, billed at a separate rate) and tier cliffs (a small usage increase pushes you into a much more expensive plan rather than a small extra charge; Contentful's $0→$300 jump and Storyblok's $99→$349 asset threshold are the clearest examples).

### What counts as a seat?

A named user account with CMS access: an editor, developer, marketer, or client stakeholder who logs in, not a visitor reading the published content. Most vendors charge $15–$29 per seat/month beyond the plan minimum, so adding one reviewer or contractor mid-project raises the bill directly, independent of any traffic or API usage.
