Skip to main content
Version: v1.8

FinOps overview

Topaz integrates with ACE (Azure Cost Estimator) to give you monthly cost estimates for all resources running inside your local emulator. This lets you catch expensive configurations early — before deploying to real Azure.

How it works​

When you call the cost estimation endpoint, Topaz collects all resources provisioned in the requested subscription, queries the Azure Retail Prices API via ACE, and returns a JSON response with per-resource monthly cost breakdowns.

note

Cost estimates are based on list prices from the Azure Retail Prices API. They do not account for reservations, committed-use discounts, or enterprise agreements.

REST endpoint​

GET https://topaz.local.dev:8899/topaz/subscriptions/{subscriptionId}/estimatedCosts

Query parameters​

ParameterTypeDefaultDescription
currencystringUSDISO 4217 currency code. ACE supports 17 currencies: USD, EUR, GBP, AUD, BRL, CAD, CHF, CNY, DKK, INR, JPY, KRW, NOK, NZD, RUB, SEK, TWD.

Response shape​

{
"subscriptionId": "f1a2b3c4-d5e6-7890-abcd-ef0011223344",
"currency": "USD",
"totalMonthlyCost": 142.50,
"resources": [
{
"resourceId": "/subscriptions/.../providers/Microsoft.KeyVault/vaults/my-vault",
"resourceType": "Microsoft.KeyVault/vaults",
"estimatedMonthlyCost": 12.00
}
]
}

Example — curl​

curl -s \
"https://topaz.local.dev:8899/topaz/subscriptions/$(az account show --query id -o tsv)/estimatedCosts?currency=EUR" \
--cacert topaz.crt | jq .

CLI command​

The topaz finops estimate command queries the endpoint and renders the result as a table:

topaz finops estimate --subscription <subscriptionId>

Options​

FlagDefaultDescription
--subscription(required)Target subscription ID.
--currencyUSDCurrency code (see supported currencies above).
--outputtableOutput format: table or json.

Example output​

┌─────────────────────────────────────────────────┬──────────────────────────┐
│ Resource type │ Estimated monthly cost │
├─────────────────────────────────────────────────┼──────────────────────────┤
│ Microsoft.KeyVault/vaults │ $12.00 │
│ Microsoft.Storage/storageAccounts │ $4.80 │
│ Microsoft.ContainerRegistry/registries │ $5.00 │
├─────────────────────────────────────────────────┼──────────────────────────┤
│ Total │ $21.80 / month │
└─────────────────────────────────────────────────┴──────────────────────────┘

Supported resource types​

ACE covers a wide range of Azure resource types. Resources whose type is not recognised by ACE are counted but not priced (they appear with $0.00). See the ACE documentation for the full list of supported services.

Known limitations​

  • The endpoint calls the live Azure Retail Prices API. It requires outbound internet access from the machine running Topaz.
  • Resources with no location set are skipped by the ACE engine.
Star on GitHub