Sanity vs Contentful vs Strapi: The Headless CMS Pricing Playbook
A headless CMS separates the content repository from the front end: editors work in a hosted studio, developers pull structured content through a REST or GraphQL API, and the website renders it through a CDN. The architecture is the same on all three; the billing model is not.
Sanity charges per seat plus pay-as-you-go usage. Contentful charges a flat monthly tier with hard caps on the free plan and published overage rates on the paid tier. Strapi Cloud charges per project, with no per-seat charge, and Strapi self-hosted charges no licence fee. Three vendors, three meters: people, a tier, and a project. This guide prices all three from the vendors' own pricing pages, read on 13 November 2026, at 5-seat and 25-seat teams doing 1 million API requests a month, then runs the overage math at 5 million requests. Every figure is a vendor list price or a shown derivation.
The three pricing shapes, stated plainly
Sanity: per seat, plus a meter
Sanity Free costs $0: up to 20 user seats, 2 permission roles, 2 datasets that must be public, 10,000 documents, 1 million API CDN requests and 250,000 API requests a month, 100 GB of assets and bandwidth a month. Growth costs $15 per seat per month: 50 seats, 5 roles, 2 private-or-public datasets, 25,000 documents, the same API limits, plus scheduled drafts.
On Growth, overage is pay-as-you-go: CDN requests $1 per 250,000, API requests $1 per 25,000, assets $0.50 per GB, bandwidth $0.30 per GB. Enterprise is custom priced, with custom quotas, SAML single sign-on, dedicated support, and an uptime SLA.
Contentful: a flat tier, with hard caps
Contentful Free costs $0: 10 users, 2 roles, 2 locales, 100,000 API calls a month, 50 GB of monthly CDN bandwidth, and one Starter Space with 25 content types, 2 environments, and 10,000 records. Lite costs $300 a month: 20 users, 3 roles, 3 locales, 1 million API calls a month, 100 GB of monthly CDN bandwidth, comments, scheduled publishing, and live collaboration. Enterprise is custom priced: custom users, roles and locales, unlimited API calls, custom bandwidth, a 99.99 percent uptime SLA, and 24/7 support.
Contentful Free uses hard caps, not overages: the 101,000th API call in a month does not cost money — it does not happen. On Lite, overage is $5 per additional 1 million API calls a month and $0.15 per additional GB of bandwidth. Lite is flat $300 a month: a team of 3 pays $300, a team of 20 pays $300, and a team of 21 cannot buy Lite at any price — the ceiling is 20 users.
Strapi: per project, with a free self-hosted escape
Strapi Cloud prices per project per month. Starter costs $35: 100,000 API requests, 50 GB of asset storage and bandwidth, unlimited database entries, and one environment, with the runtime sleeping when idle. Pro costs $90: 1 million API requests, 250 GB of asset storage, 500 GB of bandwidth, an always-on runtime, multi-environment support, weekly backups, and CRON jobs. Business costs $450: 10 million API requests, 1,000 GB of asset storage and bandwidth, 2 environments, daily backups, and a 99.9 percent uptime SLA.
Overage: API requests $1.50 per 25,000, asset storage $0.60 per GB, bandwidth $30 per 100 GB.
Strapi is the only vendor of the three with no per-seat charge: a 50-editor newsroom on Pro pays the same $90 a month as a 2-editor blog, provided both stay inside 1 million API requests. It is also the only vendor with a genuinely free production path: the Community Edition is free, open-source software you self-host, with unlimited database entries and no seat limit — the licence costs nothing, but the hosting, backups, security updates, and on-call time are yours. Free of licence, not free of cost — which is why the headless WordPress versus Next.js CMS decoupling guide treats self-hosting as an operations decision.
Free-tier ceilings: where $0 actually stops
| Ceiling | Sanity Free | Contentful Free | Strapi Cloud |
|---|---|---|---|
| Price | $0 forever | $0 forever | No free tier; Starter $35/project/month |
| Users or seats | 20 seats | 10 users | No seat limit on any plan |
| Content volume | 10,000 documents | 10,000 records, 25 content types | Unlimited database entries |
| API requests a month | 250,000 API; 1M CDN | 100,000 API calls, hard cap | 100,000 on Starter |
| Private content | Public datasets only | 2 environments | 1 environment on Starter |
Sanity Free stops first on privacy: a private dataset forces Growth at $15 a seat, even for one person. Contentful Free stops first on API volume: 100,000 calls a month is roughly 3,300 a day. Strapi Cloud has no free tier — the floor is $35 a month — but the self-hosted Community Edition has no ceiling on seats, entries, or API calls, only the ceiling of your server.
Worked example: a 5-seat team at 1 million API requests a month
Profile: 5 editors, 1 million API requests and 1 million CDN requests a month.
Sanity Growth:
CDN requests sit exactly at the 1 million included, so the CDN overage is $0. The year is 12 times the month:
Contentful Lite:
Strapi Pro:
At this profile: Strapi Pro $90, Sanity Growth $105, Contentful Lite $300 a month. The ranking is fragile: Sanity's $105 depends on a $30 API overage, and Strapi's $90 on staying under 1 million requests.
Worked example: the same team at 25 seats
Profile: 25 editors, 1 million API requests and 1 million CDN requests a month.
| Vendor and plan | Monthly total | Annual total | Binding constraint |
|---|---|---|---|
| Sanity Growth | $405 | $4,860 | 50-seat ceiling |
| Contentful Lite | No published price | No published price | 20-user ceiling exceeded |
| Strapi Pro | $90 | $1,080 | 1M request allowance |
Sanity Growth:
Contentful Lite cannot serve this profile at any published price: the plan includes 20 users, a 25th requires Enterprise, and Enterprise is custom priced. This guide invents no Enterprise figure. Contentful's published pricing ends at 20 users; a 25-seat team must get a quote before it can budget the line — a sales cycle and a number no spreadsheet can model.
Strapi Pro is unchanged at $90 a month — no per-seat charge. Per-seat pricing punishes headcount; per-project pricing punishes traffic.
Overage math: what 5 million API requests a month costs
Profile: 5 editors, 5 million API requests a month — every vendor above its included allowance, so the overage rate decides the ranking.
Sanity Growth:
Contentful Lite:
Strapi Pro:
Strapi Business ($450 a month) already includes 10 million requests, so Pro with overage ($330) is still cheaper at 5 million; Business wins at 7 million requests a month:
Per-million overage rates: Sanity $40, Strapi $60, Contentful $5. Contentful's base is the highest and its overage the cheapest, so at high enough volume Lite overtakes Growth. At 5 seats the crossover is about 6.6 million requests a month:
Above that volume, and only if the 20-user ceiling and the 100 GB bandwidth allowance still hold, Contentful Lite is the cheapest of the three at 5 seats; below it, Sanity Growth is. The same discipline — price the behaviour, not the headline — governs the backend decision; the Supabase versus Firebase versus PlanetScale backend pricing guide applies it to databases.
Annual versus monthly: where the discount actually exists
Sanity offers no annual discount on Free or Growth — both are monthly-billed by card, annual billing only on Enterprise by negotiation. Contentful publishes no annual price or discount for Lite; any annual Lite price at sales is negotiated against the $3,600 list annual total. Strapi's one annual discount is on extra environments: Pro $60 a month or $600 yearly, saving $120 a year per environment; Business $300 a month or $3,000 yearly.
The decision table
| Factor | Sanity | Contentful | Strapi Cloud | Authority |
|---|---|---|---|---|
| Billing unit | Per seat, plus usage | Flat tier, plus overage | Per project, plus usage | Vendor pricing pages |
| Free tier | $0, 20 seats, 10k documents | $0, 10 users, 100k API calls | None; self-hosted $0 licence | Vendor pricing pages |
| 5 seats, 1M requests a month | $105 a month | $300 a month | $90 a month | List prices |
| 25 seats, 1M requests a month | $405 a month | No published price | $90 a month | Contentful 20-user ceiling |
| API overage per 1M requests | $40 | $5 | $60 | $1/25k; $5/1M; $1.50/25k |
| Seat or user ceiling | 50 seats on Growth | 20 users on Lite | None on any Cloud plan | Vendor pricing pages |
| SSO and uptime SLA | Enterprise only | Enterprise only, up to 99.99% | SLA only on Business, 99.9% | Vendor pricing pages |
| Annual discount | None on self-serve plans | Not published for Lite | 2 months free on extra environments | Sanity; Strapi |
Who should use each — and who should NOT use this
| Vendor | Fits | Does not fit |
|---|---|---|
| Sanity | Developer-led team wanting a code-first studio, GROQ and GraphQL queries, and a free tier of 20 seats and 10,000 documents | A team needing private datasets on $0, or volume above 6.6 million requests a month at 5 seats |
| Contentful | Marketing team wanting a flat $300 a month, structured content with locales and workflows, and a 99.99 percent SLA path | A team growing past 20 users on a published price, or a team whose API calls must keep flowing past a cap |
| Strapi | A team that wants to own its content layer: self-host the Community Edition, pay no licence or seat charge, and scale editors without scaling the bill | A team wanting a vendor to carry uptime, backups, and support unpaid — on Strapi Cloud a production SLA starts at $450 a month on Business |
Who should NOT use this guide as a buying decision: a team choosing a CMS on architecture rather than price should read the architecture companion first — a pricing win on the wrong architecture is still the wrong CMS. A team with an enterprise agreement, a nonprofit or startup programme, or a multi-year commit should get quotes — no published price here includes negotiated discounts.
Founder & CEO Insight — Enow A. Jovial
How to buy this without regret
- Pull 30 days of real numbers: API requests, CDN requests, bandwidth in GB, editors, documents, environments.
- Price all three vendors using the formulas here, at your seat count and at double it.
- Check each free-tier ceiling: Sanity's public-dataset rule, Contentful's 100,000-call hard cap, Strapi Cloud's $35 floor.
- Run the overage math at twice your current volume, and find each vendor's crossover point.
- Trial the tier above your planned purchase for 14 days, with production-shaped traffic.
- Confirm renewal terms in writing: Sanity self-serve is monthly with no annual discount, Contentful Lite's annual terms are unpublished, Strapi's annual saving covers extra environments only.
- Run the final monthly total through the Break-Even Analysis Calculator and the Pricing Calculator, with hosting, implementation, and training as line items.
- [x] Real 30-day usage numbers pulled
- [x] All three vendors priced at current and double seats
- [x] Free-tier ceilings checked against real volume
- [x] Overage math run at twice current volume
Price the breach, not the brochure. The cheapest CMS is the one whose ceiling you never hit, and the most expensive is the one whose ceiling you discover in the first invoice.
