Sanity Pricing Calculator 2025

Accurately forecast your Sanity costs with our ContentWrap's pricing calculator. Model out all forms of usage, from API requests, to bandwidth consumption, to active documents.

Sanity pricing calculator

Understanding the True Cost of Sanity CMS Implementation

When migrating to Sanity CMS, organizations often focus on the base subscription costs while overlooking the variables that can significantly impact your total expenditure. Our experience guiding companies like Ramp through complex CMS migrations has taught us that unexpected costs emerge when scaling content operations, particularly with large migrations from platforms like Webflow.

The challenge isn't just about choosing between Free, Growth, or Enterprise plans — it's about accurately forecasting how your specific usage patterns will affect your actual costs. Many organizations discover cost implications only after they've begun implementation, leading to budget overruns and delayed timelines.

Based on our hands-on experience with enterprise-scale Sanity migrations, we've created this calculator to help you plan more effectively. This tool incorporates insights from real projects, including a recent migration of over 1,500 documents and numerous custom embeds. By understanding the nuances of Sanity's pricing model upfront, you can make strategic decisions about your implementation approach and avoid common pitfalls that lead to unexpected expenses.

Our goal is simple: provide the transparency you need to accurately budget for your Sanity project, based on real-world implementation data rather than theoretical estimates.

What Will Sanity Actually Cost You?

Usage Configuration

API CDN Requests

Number of requests

1Mreq/month
1M
4M
50M

API Requests

Number of requests

250Kreq/month
250K
500K
5M

Datasets

Number of datasets

2
2
4

Documents

Number of documents

10K
10K
50K

Unique Attributes

Unique attributes per dataset

2K
2K
10K

GROQ-powered Webhooks

Number of webhooks

2
2
4

Assets

Storage for assets

100 GB
100 GB
500 GB
5 TB

Bandwidth

Bandwidth per month

100 GB/month
100 GB
500 GB
5 TB

Seats

Number of user seats

1
1
50

Add-on Features

SAML Single Sign-On (SSO)

Add-on

Simplify project access using a third-party identity provider like Okta, Google, or Azure Active Directory.

$1,399/month

Dedicated Support

Add-on

Get direct technical support from Sanity's Support Engineers.

$799/month

Cost Summary

PlanFree

Additional Costs

No additional costs
Total Monthly Cost$0

Estimated cost based on selected usage. Actual costs may vary.

Don't Navigate Your Migration Alone

ContentWrap can simplify your CMS migration, with proven strategies on reducing costs, transferring data, and designing studios.

Contentwrap migrating old CMSes to Sanity CMS

Common Pricing Surprises When Implementing Sanity CMS

API vs. API CDN Requests: The Hidden Cost Driver

One of the most significant surprises organizations encounter is the distinction between API and API CDN requests:

  • API requests (api.sanity.io) provide the freshest data but require more server computation, making them more expensive at scale. Each request must reach Sanity's backend, triggering a new computation.
  • API CDN requests (apicdn.sanity.io) deliver cached content, offering significantly faster responses at a lower cost. However, content updates have a 60-second time-to-live (TTL), creating a tradeoff between freshness and cost.

During Ramp's migration, the team discovered that balancing these request types was essential for optimizing costs while maintaining performance. In November 2024, their cache revalidation strategy shifted to a path-based approach, creating a more efficient balance between content freshness and API costs.

Document Limits and Enterprise Upgrades

Many organizations underestimate how quickly they approach document limits, especially during migrations. In Ramp's case, migrating over 1,500 documents meant carefully managing document counts to avoid unexpected overages. Consider:

  • The Growth plan includes 25k documents, which sounds ample until you factor in:
    • Each version of a document counts separately
    • Content relationships create additional documents
    • Rich media attachments add to document counts

Several organizations need to upgrade to Enterprise sooner than anticipated.

Custom Widget and Reference Development

Custom embeds and widgets with references translate directly to higher costs: Resolving references requires additional API calls, which can multiply quickly across hundreds of content pieces, affecting your total request volume and associated costs.

Understanding Calculator Parameters

Key Metrics That Drive Your Sanity Costs

Our calculator helps you estimate costs based on the following key parameters:

Datasets serve as separate "databases" for your content. While the Growth plan includes 2 datasets (typically for production and development), complex implementations may require additional datasets ($999 each) for staging, testing, or specialized content collections.

Documents are your individual content pieces, and the Growth plan includes 25k. For context, a mid-sized company website with blogs might use 1k—5k documents, while a large enterprise like Ramp with over 1,500 documents plus related content could easily approach or exceed this limit.

API and API CDN Requests reflect how your site or application fetches content. The Growth plan includes 250k API requests and 1 million API CDN requests monthly. For reference:

  • A corporate website with 10k monthly visitors might generate 100k - 300k requests
  • A high-traffic blog platform could exceed millions of requests, requiring additional capacity

Seats Available determines how many team members can access your Sanity Studio. Ramp specifically noted the need to evaluate an Enterprise plan as they anticipated exceeding the 50-seat Growth plan limit with their expanding content team. ("Viewer" roles/seats do not count toward seat usage/allotment. But if users want to comment or edit documents, they will consume chargeable seats.)

Implementation Strategies to Optimize Costs

Based on our experience with migrations like Ramp's, here are proven strategies to control your Sanity implementation costs:

1. Optimize Your Cache Strategy

For most public-facing content, use the API CDN endpoint and implement targeted revalidation only where necessary.

1// Inefficient approach (excessive API requests)
2const client = sanityClient({
3  projectId: 'your-project-id',
4  dataset: 'production',
5  useCdn: false // Always uses uncached API
6});
7
8// Cost-efficient approach (uses API CDN for most requests)
9const client = sanityClient({
10  projectId: 'your-project-id',
11  dataset: 'production',
12  useCdn: true, // Leverages cached responses
13  // Only disable cache for admin/editor views where freshness is critical
14});

2. Implement Flat Data Structures

Flat data structures are preferred over nested, for performance. This approach not only improves GROQ query performance but also reduces API request complexity:

1// Inefficient deeply nested structure (expensive to query)
2{
3  "title": "Blog Post",
4  "sections": [
5    {
6      "heading": "Section 1",
7      "subSections": [
8        { "content": "..." },
9        { "content": "..." }
10      ]
11    }
12  ]
13}
14
15// More efficient flattened structure
16{
17  "title": "Blog Post",
18  "sections": [
19    { "heading": "Section 1", "order": 1, "parentId": null },
20    { "heading": "Subsection 1.1", "order": 1, "parentId": "section1" },
21    { "heading": "Subsection 1.2", "order": 2, "parentId": "section1" }
22  ]
23}

3. Chunk Large Migrations

Chunking large collection migrations, rather than bulk imports, prevents API usage spikes that could trigger overages:

1// Instead of one massive import that could hit rate limits
2async function migrateInChunks(documents) {
3  const chunkSize = 50;
4  for (let i = 0; i < documents.length; i += chunkSize) {
5    const chunk = documents.slice(i, i + chunkSize);
6    await client.create(chunk);
7    // Add delay between chunks to prevent rate limiting
8    await new Promise(resolve => setTimeout(resolve, 1000));
9  }
10}

4. Implement Selective Path and Tag-Based Revalidation

Using path and tag-based revalidation ensures you're only making uncached API calls when absolutely necessary; Set up webhooks and API routes so, when you make changes to your Sanity data, your frontend app knows that, upon next load, it needs to skip its cache and fetch the freshest Sanity data.

1// In Next.js, implement selective revalidation
2export async function getStaticProps() {
3  return {
4    props: {
5      data: await fetchData()
6    },
7    // Only revalidate critical paths frequently
8    revalidate: isHighPriorityContent ? 60 : 3600
9  }
10}

5. Monitor API Usage Patterns

In the first few weeks using Sanity CMS, be sure to monitor your API usage, which can be done by visiting the "Usage" tab of your project. Tracking these metrics from day one will help you identify and address inefficient patterns before they severely impact your costs.

Looking for more insights on reducing costs?

ContentWrap helped Ramp save thousands annually by automatically compressing images, caching API requests, and removing unused documents.

Frequently Asked Questions