AWS Cloud Pricing Cost Impact Report
Pricing
from $2.00 / 1,000 aws price rows
AWS Cloud Pricing Cost Impact Report
Read official AWS public USD offer files for Lambda, S3, and RDS and emit stable price changes and cost-impact report rows.
Pricing
from $2.00 / 1,000 aws price rows
Rating
0.0
(0)
Developer
naoki anzai
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Share
Buyer, Input, Output, Value
Buyer: FinOps teams, cloud platform owners, procurement analysts, and pricing operations teams that need a repeatable view of AWS list-price exposure.
Input: scopes[] with a supported AWS service code (AWSLambda, AmazonS3, or AmazonRDS), a required region, optional price filters, and optional monthly quantities keyed by the AWS price-list unit. Choose mode: "report" or mode: "watch"; the actor uses USD only and never requests credentials.
Output: Dataset rows with stable SKU/term identities. The exact row types are aws_price_row, aws_sku_price_change, aws_cost_impact_report, and aws_price_export. Every report row includes scopeCount, estimatedMonthlyCostUsd, and sourceUrl. Report rows also show observed price changes and estimated monthly deltas where a supplied usage quantity matches the AWS unit.
Value report: A scheduled run turns official AWS public price-list changes into a review queue with the affected service, region, SKU, term, previous/current USD unit price, and estimated monthly cost impact. Baselines and identical watch runs are quiet by default, so buyers pay for new information rather than heartbeat activity.
This is an official-list-price reader, not an AWS account billing calculator. Public list prices can differ from an account invoice because of discounts, credits, free tier, taxes, negotiated pricing, Savings Plans, Reserved Instance utilization, data transfer, commitments, and other account or workload conditions.
Run the next report
- Azure Retail Price Cost Impact Report generates the corresponding source-linked Azure retail price alerts and monthly cost-impact report.
- AI API Pricing & Model Lifecycle Report compares public model pricing and lifecycle changes.
Quick Start
Run npm install, then npm test. For a local sample without network access, use dryRun: true. In Apify, supply the same JSON shape through the Actor input.
The actor reads only these official AWS Bulk API JSON paths on pricing.us-east-1.amazonaws.com:
https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/index.jsonhttps://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/{serviceCode}/current/region_index.jsonhttps://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/{serviceCode}/{version}/{region}/index.json
There is no AWS SDK credential flow, signed request, account lookup, or EC2 support.
Examples
1. First report after a baseline
Use baseline_only on the first scheduled run, then use emit_current when the buyer wants the current report delivered.
{"scopes": [{"serviceCode": "AWSLambda","region": "us-east-1","usage": {"Requests": 12000000,"GB-Seconds": 300000}},{"serviceCode": "AmazonS3","region": "us-east-1","filters": {"productFamily": "Storage","unit": "GB-Mo","attributes": {"storageClass": "General Purpose","volumeType": "Standard"}},"usage": {"GB-Mo": 2500}}],"mode": "report","initialRunMode": "emit_current","generateReport": true,"emitUnchanged": false,"emitRawRows": false,"maxChargeUsd": 10}
This produces one report row when the snapshot is first delivered. Its estimatedMonthlyCostUsd uses one unambiguous pricing lane per unit. OnDemand tiers are applied only when their ranges are contiguous and non-overlapping; mutually exclusive terms are never added together.
2. Scheduled price-change watch
{"scopes": [{"label": "Lambda production","serviceCode": "AWSLambda","region": "ap-northeast-1","filters": {"usageType": "Lambda-GB-Second","unit": "Lambda-GB-Second"},"usage": {"Lambda-GB-Second": 800000}}],"mode": "watch","initialRunMode": "baseline_only","generateReport": true,"emitUnchanged": false,"maxChargeUsd": 10}
The baseline writes a durable snapshot and emits zero rows. Later runs emit only new, removed, or price-changed SKU/term dimensions. An identical watch emits zero rows and zero charges.
3. Filtered raw price export
{"scopes": [{"serviceCode": "AmazonRDS","region": "us-west-2","filters": {"productFamily": "Database Instance","termTypes": ["OnDemand"],"descriptionIncludes": ["db.t3.micro"],"unit": "Hrs"},"usage": {"Hrs": 730}}],"mode": "report","initialRunMode": "emit_current","generateReport": true,"emitRawRows": true,"maxChargeUsd": 10}
Raw rows use the aws-price-row event at $0.002 each. A successful raw-row delivery also includes one aws-price-export handoff row.
Pricing And No-Change Behavior
productFamily, usageType, operation, unit, offerTermCode, tier, and every entry in filters.attributes use exact case-insensitive matching. descriptionIncludes is only a description substring check and is never a product selector. For S3 storage, use exact storageClass or volumeType attributes. A scope that leaves multiple SKU lanes, S3 storage variants, overlapping or incomplete tiers, or Reserved alternatives selected fails closed instead of summing them.
| Value event | Price | Emitted when |
|---|---|---|
aws-price-row | $0.002 | A selected canonical USD SKU/term price row is delivered |
aws-sku-price-change | $0.10 | A stable SKU/term price dimension is added, removed, or changes price |
aws-cost-impact-report | $3.00 | A report-worthy current snapshot or watch change is delivered |
aws-price-export | $2.00 | A raw price-row handoff is delivered |
There is no start charge. Empty datasets are not pushed. emitUnchanged defaults to false; state suppresses repeated row content and stable report content. baseline_only always saves a successful snapshot with zero output rows. A successful identical watch has zero output rows and zero charges. maxChargeUsd is a hard preflight cap: if the estimated event total exceeds it, the run fails before delivery and state commit.
Safety And Source Boundaries
- Only official public AWS offer/index JSON files are accepted. The host and
/offers/v1.0/aws/path are allowlisted. - Responses are streamed and bounded at 50 MiB. Timeouts, partial streams, invalid JSON, 403, 429, and suspicious-empty documents fail closed.
- ETag and Last-Modified validators are sent when a prior successful source response has them. A 304 uses the stored successful snapshot; a 304 without a baseline is an error.
- State is keyed by a normalized scope fingerprint. A missing first-run file is an empty baseline; malformed, unreadable, or failed state reads/writes fail closed. A failed or incomplete run never calls the state save path.
- Delivery validates every row, event name, stable key, planned charge, and
maxChargeUsdbefore the first push. Unknown or invalid rows andeventChargeLimitReachedare failures; an already accepted push cannot be rolled back by the platform. - Currency is fixed to USD.
AmazonEC2and every other service are rejected during input validation.
The Apify Console dataset view is defined in .actor/dataset_schema.json; .actor/output_schema.json links the results output to the run default dataset.

