Estimate API requests per month (RPS, logs, and metrics)
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 page is the API request measurement workflow. This page is the request-measurement workflow, not the bill-boundary page: the goal is to turn metrics, logs, RPS, automated traffic, and retries into a defendable requests-per-month model.
If you still are not sure which costs and traffic belong inside the API Gateway bill, go back to the pricing guide first.
Quick request count sources
- Metrics: CloudWatch request count by stage.
- Logs: count log lines for the API stage.
- RPS: convert average RPS to monthly volume.
Method 1: use API metrics (best if available)
- Use API request count metrics for a representative window (7-30 days).
- Sum daily totals, then scale to a month (or take an average day and multiply by 30.4).
- Segment by stage/environment (prod vs staging) if they are billed separately in your model.
Tip: use two windows (normal week and peak week) to create a baseline and busy-month range.
Method 2: count from access logs (good when metrics are missing)
- Count log lines per day for the API stage you care about.
- Exclude synthetic checks if they are frequent and not user-driven.
- Keep retries: if they hit the API, they are billable traffic.
Related: API Gateway access logs cost.
Method 3: convert from RPS (fastest early estimate)
- Requests/month = avg RPS x 60 x 60 x 24 x days
- If you only have peak RPS, apply a duty cycle (e.g., 20% of peak) and validate later.
- For bursty workloads, integrate by hour/day instead of using a single average.
Method 4: users x actions (useful before you have telemetry)
- Estimate daily active users x API calls per user per day.
- Split heavy endpoints (search, list, export) into their own call estimates.
- Model background workers (sync jobs, webhooks, queue consumers) explicitly.
Common pitfalls
- Using peak RPS as an average and overstating cost by 5-10x.
- Missing retries and timeouts (they can double or triple traffic during incidents).
- Ignoring automated traffic (health checks, bots, cron jobs, integrations).
- Mixing environments (prod + staging) when you only want production.
Evidence pack for a defendable API request model
- Primary source: which metrics, logs, or request counters were used as the base request signal.
- Automated traffic source: how health checks, bots, cron jobs, integrations, and other non-user traffic were identified instead of guessed.
- Retry source: where timeout-driven or SDK-driven retry inflation was measured for the busiest endpoints.
- Open uncertainty: any traffic slice still modeled loosely, such as staging bleed-through, missing logs, or poorly segmented endpoints.
Next: turn volume into cost
Use AWS API Gateway Cost Calculator to translate requests and response size into a monthly request + transfer estimate.
Validation checklist
- Cross-check at least two sources (metrics + logs, or metrics + analytics).
- Validate the busiest endpoints separately (they often dominate total requests).
- Confirm whether the request count includes cached hits (CDN) vs origin requests (API).
What this page should hand off next
- Hand off to API Gateway pricing if your measurement work changes what you think belongs in the API Gateway bill versus transfer, logs, or downstream system cost.
- Hand off to API Gateway cost optimization once the request model is stable enough to judge before and after changes.
- Do not move into optimization with only guessed retries or guessed automated traffic if the busiest API path is still unclear.
Sources
- API Gateway metrics (CloudWatch): docs.aws.amazon.com