Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Select, configure, and scale Azure compute resources—VMs, App Service, AKS, and Container Apps
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
references/retail-prices-api.md
1# Azure Retail Prices API Guide23The [Azure Retail Prices API](https://learn.microsoft.com/en-us/rest/api/cost-management/retail-prices/azure-retail-prices) is **unauthenticated** — no Azure account or subscription needed.45## Endpoint67```text8https://prices.azure.com/api/retail/prices9```1011Preview version (includes savings plan rates):12```text13https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview14```1516## Querying VM Prices1718> **No Azure CLI command exists** for the Retail Prices API. Since the API is unauthenticated, use `curl` (bash) or `Invoke-RestMethod` (PowerShell) directly. The `az rest` command also works but adds no auth benefit.1920### Basic VM price lookup2122```http23GET https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and armRegionName eq 'eastus' and armSkuName eq 'Standard_D4s_v5' and priceType eq 'Consumption'24```2526```bash27curl -s "https://prices.azure.com/api/retail/prices?\$filter=serviceName%20eq%20'Virtual%20Machines'%20and%20armRegionName%20eq%20'eastus'%20and%20armSkuName%20eq%20'Standard_D4s_v5'%20and%20priceType%20eq%20'Consumption'"28```2930```powershell31$filter = "serviceName eq 'Virtual Machines' and armRegionName eq 'eastus' and armSkuName eq 'Standard_D4s_v5' and priceType eq 'Consumption'"32$response = Invoke-RestMethod "https://prices.azure.com/api/retail/prices?`$filter=$filter"33$response.Items | Select-Object armSkuName, retailPrice, unitOfMeasure, meterName34```3536### Filter by family (all D-series in a region)3738```http39GET https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and armRegionName eq 'eastus' and contains(armSkuName, 'Standard_D') and priceType eq 'Consumption'40```4142```bash43curl -s "https://prices.azure.com/api/retail/prices?\$filter=serviceName%20eq%20'Virtual%20Machines'%20and%20armRegionName%20eq%20'eastus'%20and%20contains(armSkuName,%20'Standard_D')%20and%20priceType%20eq%20'Consumption'"44```4546```powershell47$filter = "serviceName eq 'Virtual Machines' and armRegionName eq 'eastus' and contains(armSkuName, 'Standard_D') and priceType eq 'Consumption'"48$response = Invoke-RestMethod "https://prices.azure.com/api/retail/prices?`$filter=$filter"49$response.Items | Select-Object armSkuName, retailPrice, meterName50```5152### Reservation pricing5354```http55GET https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and armSkuName eq 'Standard_D4s_v5' and priceType eq 'Reservation'56```5758```bash59curl -s "https://prices.azure.com/api/retail/prices?\$filter=serviceName%20eq%20'Virtual%20Machines'%20and%20armSkuName%20eq%20'Standard_D4s_v5'%20and%20priceType%20eq%20'Reservation'"60```6162```powershell63$filter = "serviceName eq 'Virtual Machines' and armSkuName eq 'Standard_D4s_v5' and priceType eq 'Reservation'"64$response = Invoke-RestMethod "https://prices.azure.com/api/retail/prices?`$filter=$filter"65$response.Items | Select-Object armSkuName, retailPrice, reservationTerm, meterName66```6768### Non-USD currency6970Append `currencyCode` parameter:71```http72GET https://prices.azure.com/api/retail/prices?currencyCode='EUR'&$filter=serviceName eq 'Virtual Machines' and armSkuName eq 'Standard_D4s_v5'73```7475```bash76curl -s "https://prices.azure.com/api/retail/prices?currencyCode='EUR'&\$filter=serviceName%20eq%20'Virtual%20Machines'%20and%20armSkuName%20eq%20'Standard_D4s_v5'"77```7879```powershell80$filter = "serviceName eq 'Virtual Machines' and armSkuName eq 'Standard_D4s_v5'"81$response = Invoke-RestMethod "https://prices.azure.com/api/retail/prices?currencyCode='EUR'&`$filter=$filter"82$response.Items | Select-Object armSkuName, retailPrice, currencyCode, meterName83```8485## Available Filters8687| Filter | Example Value | Notes |88| --------------- | -------------------------------- | ------------------------------ |89| `serviceName` | `'Virtual Machines'` | Case-sensitive in preview API |90| `armRegionName` | `'eastus'`, `'westeurope'` | ARM region name |91| `armSkuName` | `'Standard_D4s_v5'` | Full ARM SKU name |92| `priceType` | `'Consumption'`, `'Reservation'` | Pay-as-you-go vs reserved |93| `serviceFamily` | `'Compute'` | Broad category |94| `productName` | `'Virtual Machines Dv5 Series'` | Product line |95| `meterName` | `'D4s v5'`, `'D4s v5 Spot'` | Includes Spot and Low Priority |9697> **Warning:** Filter values are **case-sensitive** in API version `2023-01-01-preview` and later.9899## Response Fields100101| Field | Description |102| ---------------------- | ------------------------------------------------------------------ |103| `armSkuName` | ARM SKU name (e.g., `Standard_D4s_v5`) |104| `retailPrice` | Microsoft retail price (USD unless overridden) |105| `unitOfMeasure` | Usually `1 Hour` for VMs |106| `armRegionName` | Region code |107| `meterName` | Human-readable meter (includes "Spot" / "Low Priority" variants) |108| `productName` | Product line with OS (e.g., "Virtual Machines Dv5 Series Windows") |109| `type` | `Consumption`, `Reservation`, or `DevTestConsumption` |110| `reservationTerm` | `1 Year` or `3 Years` (reservation only) |111| `savingsPlan` | Array with `term` and `unitPrice` (preview API only) |112| `isPrimaryMeterRegion` | Filter to `true` to avoid duplicate regional meters |113114## Pagination115116API returns max 1,000 records per request. Follow `NextPageLink` in the response to get more:117118```json119{ "NextPageLink": "https://prices.azure.com:443/api/retail/prices?$filter=...&$skip=1000" }120```121122## Tips for Recommendations1231241. **Filter Linux vs Windows**: `productName` contains the OS — e.g., `'Virtual Machines Dv5 Series'` (Linux) vs `'Virtual Machines Dv5 Series Windows'`1252. **Use `isPrimaryMeterRegion eq true`** to deduplicate1263. **Compare Consumption + Reservation + Savings Plan** for full cost picture1274. **Monthly estimate**: `retailPrice × 730` (hours/month)1285. **Spot pricing**: Filter `meterName` containing `'Spot'` for discounted interruptible VMs129