Azure Retail Price Cost Impact Report
Pricing
from $6.00 / 1,000 azure price rows
Azure Retail Price Cost Impact Report
Monitor official Azure Retail Prices for selected SKUs and regions. Receive source-linked price change alerts, estimated monthly cost impact reports, and exports without Azure authentication.
Pricing
from $6.00 / 1,000 azure price rows
Rating
0.0
(0)
Developer
naoki anzai
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
FinOps and cloud architecture teams enter Azure service, region, SKU or meter, and a monthly usage quantity. The Actor reads the unauthenticated Azure Retail Prices API and compares the current snapshot with an isolated saved baseline. It returns source-linked price-change alerts, estimated monthly cost impact reports, and optional exports; baseline and unchanged checks emit zero rows and zero charges.
Store Quickstart
Run the first scheduled check with baseline_only. It saves the selected public price meter without delivering rows or charging PPE.
{"scopes": [{"id": "eastus-b2s-linux","label": "East US B2s Linux","serviceName": "Virtual Machines","armRegionName": "eastus","armSkuName": "Standard_B2s","meterName": "B2s","productName": "Virtual Machines BS Series","priceType": "Consumption","usageQuantity": 730,"usageUnit": "1 Hour","allowMultipleMatches": false}],"monitorKey": "azure-finops-b2s-watch","initialRunMode": "baseline_only","generateReport": true,"emitRawRows": false,"emitExport": false,"emitUnchanged": false,"maxChargeUsd": 25,"dryRun": false}
After the baseline, run the same input on a schedule. When a selected meter price changes, the Actor delivers the previous price, current price, previous estimated monthly cost, current estimated monthly cost, delta, and official source URL.
An unchanged run always delivers zero dataset rows and zero PPE charges, even if emitUnchanged is true.
Run the next report
Use emit_current for an explicit first report. It charges for the current matching price change rows and report because no prior baseline exists; previous cost is null until a prior successful snapshot exists.
{"scopes": [{"id": "japaneast-blob-hot","label": "Japan East Blob Hot storage","serviceName": "Storage","armRegionName": "japaneast","meterName": "Hot LRS Data Stored","productName": "Blob Storage","priceType": "Consumption","usageQuantity": 1024,"usageUnit": "1 GB/Month"}],"monitorKey": "storage-hot-watch","initialRunMode": "emit_current","generateReport": true,"emitRawRows": false,"emitExport": true,"maxChargeUsd": 25,"dryRun": false}
Input examples
Exact meter ID watch
{"scopes": [{"id": "meter-id-watch","serviceName": "Virtual Machines","armRegionName": "eastus","meterId": "00000000-0000-0000-0000-000000000000","priceType": "Consumption","usageQuantity": 730,"usageUnit": "1 Hour"}],"monitorKey": "exact-meter-watch","initialRunMode": "baseline_only","generateReport": true,"maxChargeUsd": 25,"dryRun": false}
Reservation term watch
{"scopes": [{"id": "vm-one-year-reservation","serviceName": "Virtual Machines","armRegionName": "eastus","armSkuName": "Standard_B2s","meterName": "B2s","productName": "Virtual Machines BS Series","priceType": "Reservation","reservationTerm": "1 Year","usageQuantity": 730,"usageUnit": "1 Hour"}],"monitorKey": "reservation-watch","initialRunMode": "baseline_only","generateReport": true,"maxPagesPerScope": 2,"maxItemsPerScope": 10,"maxChargeUsd": 25,"dryRun": false}
The API filter is exact and case-sensitive for the preview version. If a scope matches multiple distinct meters, the Actor stops by default rather than applying one usage quantity to an ambiguous set. Add a stronger selector such as meterId, productName, skuId, or set allowMultipleMatches: true only when applying the same quantity to multiple meters is intentional.
Output and pricing
See docs/sample-output.json for representative alert, report, and export rows. Current and previous values are linked to the official API URL, and monthly values are estimates based on the supplied usage quantity.
| Event | Price | Delivered when |
|---|---|---|
azure-price-row | $0.006 | Optional normalized current public price row |
azure-price-change-alert | $0.20 | A new, changed, or removed selected price meter is detected |
azure-cost-impact-report | $10.00 | Selected changes are summarized into a monthly cost-impact report |
azure-price-export | $6.00 | Selected changes are packaged into a source-linked JSON export |
There is no start charge. The Actor estimates all configured event charges before the first push and stops if they exceed maxChargeUsd. State is committed only after successful delivery. Unknown billing events, failed state writes, missing chargedCount, and charge-limit responses fail closed.
Data source and safeguards
- Source: Azure Retail Prices REST API, endpoint
https://prices.azure.com/api/retail/prices. - No Azure subscription, login, API key, or tenant permission is required for this public endpoint.
- USD is requested explicitly. Non-USD or malformed price rows are rejected.
- The API request is bounded by
maxPagesPerScope; matching items are bounded bymaxItemsPerScope. - Only HTTPS requests to
prices.azure.comunder/api/retail/pricesare accepted. - Public retail prices do not include your agreement, discount, credit, tax, free tier, or account-level usage context.
- This Actor is not affiliated with or endorsed by Microsoft or Azure and does not provide procurement, financial, legal, or architecture advice.
See also
- AWS Cloud Pricing Cost Impact Report for the corresponding official AWS public-price workflow.
- AI API Pricing & Model Lifecycle Report for public model price and lifecycle comparisons.
Development
npm testnpm start