[{"data":1,"prerenderedAt":305},["ShallowReactive",2],{"docs-\u002Flimits":3},{"id":4,"title":5,"body":6,"description":297,"extension":298,"meta":299,"navigation":300,"path":301,"seo":302,"stem":303,"__hash__":304},"docs\u002Fdocs\u002Flimits.md","Limits & Usage",{"type":7,"value":8,"toc":282},"minimark",[9,13,17,20,25,28,75,78,80,84,151,154,156,160,163,166,179,184,187,189,193,197,208,219,221,225,228,254,256,260,263],[10,11,5],"h1",{"id":12},"limits-usage",[14,15,16],"p",{},"Cachely tracks usage per user across all projects per month. Understanding how limits work helps you plan your usage and avoid unexpected interruptions.",[18,19],"hr",{},[21,22,24],"h2",{"id":23},"what-is-tracked","What is tracked",[14,26,27],{},"Each project tracks two metrics, aggregated at the user level for quota enforcement:",[29,30,31,44],"table",{},[32,33,34],"thead",{},[35,36,37,41],"tr",{},[38,39,40],"th",{},"Metric",[38,42,43],{},"Description",[45,46,47,59],"tbody",{},[35,48,49,56],{},[50,51,52],"td",{},[53,54,55],"strong",{},"Requests",[50,57,58],{},"Total number of asset requests served. This is the primary billing metric.",[35,60,61,67],{},[50,62,63,66],{},[53,64,65],{},"Bandwidth"," (bytes)",[50,68,69,70,74],{},"Total bytes served, measured from the ",[71,72,73],"code",{},"Content-Length"," header of each response. Both cache hits and cache misses count toward bandwidth.",[14,76,77],{},"Usage is aggregated into monthly buckets using UTC time. The bucket resets on the 1st of each month.",[18,79],{},[21,81,83],{"id":82},"plan-limits","Plan limits",[29,85,86,99],{},[32,87,88],{},[35,89,90,93,96],{},[38,91,92],{},"Limit",[38,94,95],{},"Free",[38,97,98],{},"Pro",[45,100,101,114,126,138],{},[35,102,103,108,111],{},[50,104,105],{},[53,106,107],{},"Projects",[50,109,110],{},"1",[50,112,113],{},"Unlimited",[35,115,116,120,123],{},[50,117,118],{},[53,119,55],{},[50,121,122],{},"500,000 \u002F month",[50,124,125],{},"5,000,000 included",[35,127,128,132,135],{},[50,129,130],{},[53,131,65],{},[50,133,134],{},"5 GB \u002F month",[50,136,137],{},"200 GB included",[35,139,140,145,148],{},[50,141,142],{},[53,143,144],{},"Over limit",[50,146,147],{},"Requests pause",[50,149,150],{},"$1.50\u002F1M requests, $0.10\u002F10GB BW",[14,152,153],{},"Limits are shared across all your projects. If project A uses 300,000 requests and project B uses 200,000 requests, you've hit the 500,000 free limit.",[18,155],{},[21,157,159],{"id":158},"quota-enforcement","Quota enforcement",[14,161,162],{},"Usage is tracked per request via fire-and-forget ingest events from the edge worker. The worker itself does not perform quota checks — it always serves the request and records usage asynchronously.",[14,164,165],{},"Quota enforcement happens at the API\u002Fbilling layer, where usage is aggregated and reconciled:",[167,168,169,173,176],"ul",{},[170,171,172],"li",{},"If within quota → no action needed",[170,174,175],{},"If over quota (free plan) → requests may be paused until the quota resets on the 1st of the next month",[170,177,178],{},"If over quota (Pro plan) → overage billing applies; requests continue to be served",[180,181,183],"h3",{"id":182},"fail-open-design","Fail-open design",[14,185,186],{},"The usage ingest is non-blocking. If the ingest endpoint is temporarily unavailable (network error, timeout, etc.), the asset request is still served normally. Usage tracking never blocks the response.",[18,188],{},[21,190,192],{"id":191},"viewing-usage","Viewing usage",[180,194,196],{"id":195},"dashboard","Dashboard",[14,198,199,200,207],{},"Navigate to ",[201,202,206],"a",{"href":203,"rel":204},"https:\u002F\u002Fapp.cachely.io\u002Ftenants",[205],"nofollow","your projects"," to see usage at a glance for each project. Click into a specific project to see detailed usage including:",[167,209,210,213,216],{},[170,211,212],{},"Current month requests and bandwidth",[170,214,215],{},"Previous month requests and bandwidth",[170,217,218],{},"Last request timestamp",[18,220],{},[21,222,224],{"id":223},"reducing-usage","Reducing usage",[14,226,227],{},"Here are some strategies to stay within your limits:",[167,229,230,236,242,248],{},[170,231,232,235],{},[53,233,234],{},"Increase cache TTL"," — Longer TTL means fewer origin fetches. The default is 2 days, but you can increase it up to 30 days for static assets.",[170,237,238,241],{},[53,239,240],{},"Optimize image sizes"," — Serve appropriately sized images from your CMS. Smaller images = less bandwidth.",[170,243,244,247],{},[53,245,246],{},"Use modern formats"," — WebP and AVIF are significantly smaller than JPEG\u002FPNG.",[170,249,250,253],{},[53,251,252],{},"Block bots"," — The default bot blocklist prevents crawlers from consuming requests. Customize it to block additional unwanted traffic.",[18,255],{},[21,257,259],{"id":258},"upgrading","Upgrading",[14,261,262],{},"If you're consistently hitting the free tier limits, consider upgrading to Pro:",[167,264,265,268,271,274],{},[170,266,267],{},"5,000,000 requests included (10x more)",[170,269,270],{},"200 GB bandwidth included",[170,272,273],{},"Overage billing instead of requests pausing",[170,275,276,277],{},"Upgrade from your ",[201,278,281],{"href":279,"rel":280},"https:\u002F\u002Fapp.cachely.io\u002Fprofile",[205],"profile page",{"title":283,"searchDepth":284,"depth":284,"links":285},"",2,[286,287,288,292,295,296],{"id":23,"depth":284,"text":24},{"id":82,"depth":284,"text":83},{"id":158,"depth":284,"text":159,"children":289},[290],{"id":182,"depth":291,"text":183},3,{"id":191,"depth":284,"text":192,"children":293},[294],{"id":195,"depth":291,"text":196},{"id":223,"depth":284,"text":224},{"id":258,"depth":284,"text":259},"How requests and bandwidth are tracked, how monthly quotas work, and what happens when a project reaches its limit.","md",{},true,"\u002Fdocs\u002Flimits",{"title":5,"description":297},"docs\u002Flimits","7EwmeiHR1we_xU4Kh6Gct_S1eKmVJdqkuQqB_Lef9V0",1777579477590]