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