Understanding usage metrics
ButterCMS tracks three primary usage metrics that determine your plan limits and potential overages:API calls
An API call is any request made to the ButterCMS API. This includes:
*Image API requests through the CDN don’t count toward your API call limit.
Each API request to endpoints like
/v2/pages/, /v2/posts/, or /v2/content/ counts as one API call, regardless of how many items are returned.Bandwidth
Bandwidth measures the total data transferred when serving your content and media assets through the ButterCMS CDN. What counts toward bandwidth:- Media file downloads (images, videos, documents)
- API response payloads
- CDN-served content
- Number of visitors to your site
- Size of media files
- API response sizes (controlled by field selection)
Asset storage
Asset storage is the total disk space used by files uploaded to your Media Library:- Images (JPG, PNG, WebP, GIF, SVG)
- Videos (MP4, WebM)
- Documents (PDF, DOC, etc.)
- Audio files
Plan limits by tier
Monitoring your usage
Viewing current usage
Usage figures live in two places in the ButterCMS dashboard (the Billing page doesn’t show them):- Home dashboard: the Usage card shows current/limit pairs, for example “42,500 / 100,000” Total API Requests for the current month, plus Pages, Blog posts, Collections, Locales, Assets and Total users. Metrics without a plan cap show “Unlimited”.
- Analytics: select Analytics in the navigation menu for charts over time. Once a metric reaches 80% of its plan quota, a dashed Plan Limit line appears on that chart. See Monitoring API Usage.
API and bandwidth usage resets at the start of each UTC calendar month, which may not line up with your subscription’s billing/renewal date.
Optimizing API usage
Reduce your API call consumption with these strategies:Implement caching
Cache API responses to avoid repeated calls for the same content:Use static site generation (SSG)
For static sites, fetch content at build time instead of on every request:- Next.js: Use
getStaticPropswithrevalidate - Nuxt: Use
generateorasyncDatain static mode - Astro: Content is fetched at build time by default
Leverage webhooks for cache invalidation
Instead of polling for updates, use webhooks to invalidate caches only when content changes:Request only needed fields
Reduce response size by passingexclude_body: true to blog post calls, or limiting reference depth with levels:
Batch related requests
Running independent requests in parallel withPromise.all reduces latency, but each request is still a separate counted API call:
keys query parameter:
{ "data": { "key_one": [...], "key_two": [...] } } as one counted API call instead of one call per collection.
Optimizing bandwidth
Optimize image sizes
Use the ButterCMS Image API to serve appropriately sized images:Use modern image formats
Convert images to WebP for smaller file sizes:Enable compression
Ensure your frontend server has gzip/brotli compression enabled for API responses.Lazy load media
Implement lazy loading for images and videos below the fold:Content limits
Pages and Blog Posts
Each plan has limits on the number of pages and blog posts you can create:- Approaching limit: There is no advance warning. Watch the current/limit figures on the Home dashboard Usage card.
- At limit: You won’t be able to create new content without upgrading or deleting existing content
Collection items
Collection items are limited per plan. Consider:- Consolidating similar collections
- Archiving old items instead of keeping them
- Upgrading if you consistently need more items
Locales
Locales are included on the Professional plan (3 locales) and Enterprise (custom). Translations don’t multiply your content counts: a page translated into 3 locales still counts as 1 page toward your page limit.Overage charges
Paid plans are billed for API calls and bandwidth used above the plan’s included amounts. Overage rates depend on your plan and contract. Contact customer success for the rates that apply to your account.How overages work
- Threshold reached: You exceed your plan’s included usage
- Overage counted: Additional usage is tracked
- Billed: Overage charges are reflected on your invoice; contact support if you have questions about a charge
Preventing unexpected overages
Prevention strategies:- Monitor usage weekly - Check the Usage card on your Home dashboard regularly
- Implement caching - Reduce redundant API calls
- Optimize images - Use the Image API for efficient delivery
- Plan for traffic spikes - Upgrade before big launches or campaigns
- Use webhooks - Avoid polling-based architectures
When to upgrade vs. pay overages
Consider upgrading your plan if you:- Consistently exceed limits by 20% or more
- Have predictable, sustained growth
- Need additional features from higher tiers
- Have occasional traffic spikes (product launches, viral content)
- Are testing before committing to a higher tier
- Have seasonal usage patterns
API blocking (429)
ButterCMS enforces monthly usage limits for API calls and bandwidth. If a Free or Trial account exceeds its monthly API call limit, API requests are blocked until the start of the next UTC calendar month.Response when blocked
Retry-After header indicating the seconds remaining until the monthly reset.
What to do
- Check usage on the Home dashboard Usage card or the Analytics page
- Reduce calls (cache responses and avoid polling)
- Wait for reset or upgrade if you consistently exceed limits
Paid plans use usage-based billing for API overages and are not blocked for exceeding monthly API call limits. If you see
429 on a paid plan, contact support.Usage alerts
ButterCMS doesn’t send emails or show in-app warnings as you approach your API call or bandwidth limits. The first signal a Free or Trial account gets is the429 response once it’s blocked. Check the Usage card and Analytics page yourself, or add alerting in your own application (see Setting up usage alerts).
Frequently asked questions
Do unused API calls roll over to the next month?
Do unused API calls roll over to the next month?
No, API call allocations reset at the start of each UTC calendar month (not your subscription’s renewal date). Unused calls don’t carry over.
What happens if I exceed my limits?
What happens if I exceed my limits?
For content limits (pages, posts), you won’t be able to create new content until you upgrade or delete existing items. For API calls and bandwidth, paid plans may be billed for overage usage; Free/Trial accounts are blocked until the monthly reset.
Does caching reduce my API usage?
Does caching reduce my API usage?
Yes, caching API responses in your application significantly reduces the number of calls to ButterCMS. This is one of the most effective ways to stay within limits.
Are image transformations counted as API calls?
Are image transformations counted as API calls?
No, image transformations via the CDN (resizing, format conversion) don’t count toward your API call limit.
How do I check my current usage?
How do I check my current usage?
Open the Home dashboard and look at the Usage card, or select Analytics in the navigation menu for charts over time. The Billing page doesn’t show usage.
Can I get a usage report for my team?
Can I get a usage report for my team?
The Usage card on the Home dashboard shows overall account usage. For detailed analytics and breakdowns, see the Analytics dashboard (see Monitoring API Usage). For advanced reporting, contact support or consider the Enterprise plan.