Don't Navigate Your Migration Alone
ContentWrap can simplify your CMS migration, with proven strategies on reducing costs, transferring data, and designing studios.

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.
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:
3. Chunk Large Migrations
Chunking large collection migrations, rather than bulk imports, prevents API usage spikes that could trigger overages:
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.
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.