Skip to main content

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