S3 request costs: when GET/PUT/LIST becomes meaningful
Reviewed by CloudCostKit Editorial Team. Last updated: 2026-02-07. Editorial policy and methodology.
Start with a calculator if you need a first-pass estimate, then use this guide to validate the assumptions and catch the billing traps.
This is the request-cost boundary page. Use it when GET, PUT, LIST, and metadata-heavy behavior are the real driver, not the full storage-system budget or the whole S3 bill anatomy.
Go back to the storage parent page if the broader storage budget shape is still unclear.
Many teams ignore S3 request costs because storage and egress usually dominate. But requests become meaningful when you have millions of small objects, frequent LIST/HEAD calls, or chatty pipelines.
Request cost drivers to count
- GET/PUT/LIST: separate high-volume request types.
- Small objects: many small files amplify request charges.
- Lifecycle actions: transitions and restores add requests.
What to model (requests are not one bucket)
- Read-like: GET/HEAD (often tied to user traffic and cache hit rate)
- Write-like: PUT/COPY/POST (often tied to ingestion pipelines and churn)
- Listing/metadata: LIST/Inventory-style scans (can be surprisingly expensive for large namespaces)
How to estimate request fees (practical workflow)
- Collect request counts from billing exports or access logs (preferred).
- When you only have RPS, convert with the monthly request calculator.
- Apply request-class pricing (do not blend classes into one number).
- Add a peak scenario: deploys, backfills, and incidents often multiply requests.
Tool: S3 request cost calculator.
Worked estimate template (copy/paste)
- GET/month = average GET RPS * seconds/month (baseline + peak)
- PUT/month = objects written/month (or PUT RPS converted)
- LIST/month = scans/month * (requests per scan) for your largest prefixes
Common pitfalls (why request bills spike)
- Retry loops and timeouts that multiply GET/HEAD during incidents.
- LIST over huge prefixes (full scans) instead of using a manifest or index.
- Many small objects: high requests per GB stored and per GB transferred.
- Chatty SDK usage: repeated HEAD calls for metadata that could be cached.
- Backfills and migrations that look like "one-time work" but run for weeks.
How to validate the estimate
- Confirm request unit pricing (per 1,000 / 10,000 / 1,000,000) for each request class.
- Separate request fees from transfer: high GET volume often also implies high egress.
- Look for a small number of noisy prefixes/endpoints driving most LIST/HEAD.
- After the first month, reconcile billing usage types against your modeled request classes.
Safe ways to reduce request costs
- Cache metadata (ETags, sizes) to reduce repeated HEAD calls.
- Batch work: avoid per-object workflows when your access pattern allows it.
- Replace full LIST scans with an index, manifest, or inventory output.
- Fix retry storms (timeouts and missing jitter) before they become a request bill.
Related tools
Sources
Related guides
S3 Glacier retrieval pricing per GB and per request
A practical breakdown of Glacier retrieval pricing: cost per GB retrieved plus request fees, with guidance for small-object amplification and tier selection.
Estimate Glacier/Deep Archive retrieval volume (GB and requests)
How to estimate archival retrieval costs: model GB restored per month and the number of objects retrieved (requests), plus common drivers like restores, rehydration, and analytics.
Estimate Secrets Manager API calls per month (GetSecretValue volume)
A practical workflow to estimate Secrets Manager API request volume (especially GetSecretValue): measure and scale when possible, model from runtime churn when not, and validate with CloudTrail so your budget survives peaks.
Glacier/Deep Archive cost optimization (reduce restores and requests)
A practical playbook to reduce archival storage costs: reduce restores, reduce small-object request volume, and avoid minimum duration penalties. Includes validation steps and related tools.
S3 Glacier Pricing & Cost Guide (storage, retrieval, Deep Archive)
Practical S3 Glacier cost model: storage GB-month, retrieval volume and requests, and minimum duration fees.
S3 pricing: a practical model for storage, requests, egress, and replication
A practical S3 pricing guide: what to include (GB-month, requests, egress, replication) and how to estimate the key inputs without copying price tables.
Related calculators
RPS to Monthly Requests Calculator
Estimate monthly request volume from RPS, hours/day, and utilization.
API Request Cost Calculator
Estimate request-based charges from monthly requests and $ per million.
CDN Request Cost Calculator
Estimate CDN request fees from monthly requests and $ per 10k/1M pricing.
FAQ
When do S3 request costs matter?
When you have many small objects, high request rates (GET/PUT), frequent LIST/HEAD calls, or metadata-heavy pipelines. For large objects, storage and egress usually dominate first.
What's the fastest way to estimate requests/month?
Use billing exports or access logs. If you only have RPS, convert with the RPS to Monthly Requests calculator, then apply request-class pricing.
What creates unexpected request spikes?
Retry loops, inventory scans, LIST operations over large prefixes, chatty SDK usage, and many small object workflows (high requests per GB).
How do I reduce request costs safely?
Reduce LIST/HEAD calls, batch operations, cache metadata, and avoid repeated full-prefix scans. Always validate behavior with logs after changes.
Last updated: 2026-02-07. Reviewed against CloudCostKit methodology and current provider documentation. See the Editorial Policy
.