# Azure Cost Management > Microsoft Cost Management is the Azure Resource Manager resource provider (Microsoft.CostManagement) > for cost analysis, budgets, alerts, scheduled exports, cost allocation and FinOps recommendations. > It is delivered at no additional cost as part of Azure. Every operation is an ARM call against > https://management.azure.com with a bearer token from Microsoft Entra ID and a mandatory > `api-version` query parameter. The current stable contract is 2026-06-01: 56 paths, 75 operations, > 14 tag groups. > > This file was generated by API Evangelist from the provider's own published contract and > documentation. Microsoft does not publish an llms.txt for this product — /llms.txt returned 404 on > learn.microsoft.com and azure.microsoft.com, and the pointer previously recorded at > portal.azure.com/llms.txt is an HTML soft-404. ## Contract - [OpenAPI 2026-06-01 (verbatim, Swagger 2.0)](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/cost-management/resource-manager/Microsoft.CostManagement/CostManagement/stable/2026-06-01/openapi.json): the first-party contract, 75 operations, host management.azure.com - [REST API reference](https://learn.microsoft.com/en-us/rest/api/cost-management/): per-operation documentation with request and response examples - [All api-versions](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/cost-management/resource-manager/Microsoft.CostManagement/CostManagement): 18 stable and 16 preview versions, each an immutable dated directory ## Calling it - Base URL: `https://management.azure.com` - Every request: `Authorization: Bearer ` and `?api-version=2026-06-01` - Most operations take a `{scope}` path segment that is itself an ARM resource id — a subscription, resource group, management group, billing account, billing profile, department or enrollment account - Authorization is Azure RBAC (Cost Management Reader, Cost Management Contributor), not OAuth scopes - Errors are the ARM envelope `{"error":{"code","message"}}`, not RFC 9457 problem+json - Lists return `{ value: [...], nextLink }` — follow nextLink; Exports and Settings lists are unpaged - Throttling is 429 with `x-ms-ratelimit-microsoft.costmanagement-qpu-retry-after` ## What it can do - [Query and Forecast](https://learn.microsoft.com/en-us/rest/api/cost-management/query): `Query_Usage`, `Forecast_Usage`, `Dimensions_List` — POST-but-read-only analytical calls; safe to rehearse - [Exports](https://learn.microsoft.com/en-us/rest/api/cost-management/exports): `Exports_CreateOrUpdate`, `Exports_Execute`, `Exports_GetExecutionHistory` — recurring extracts to your own storage account. `ExportType: FocusCost` emits the FinOps Foundation FOCUS schema instead of Azure's own columns - [Budgets](https://learn.microsoft.com/en-us/rest/api/cost-management/budgets): `Budgets_CreateOrUpdate`, `Budgets_List`, `Budgets_Delete` — cost and reservation-utilization thresholds with notifications - [Alerts](https://learn.microsoft.com/en-us/rest/api/cost-management/alerts): `Alerts_List`, `Alerts_Dismiss` - [Views and Scheduled Actions](https://learn.microsoft.com/en-us/rest/api/cost-management/views): saved Cost Analysis configurations, and scheduled emails of them - [Cost details reports](https://learn.microsoft.com/en-us/rest/api/cost-management/generate-cost-details-report): `GenerateCostDetailsReport_CreateOperation` — asynchronous; poll, then download. Max 1 month per request, no older than 13 months - Cost allocation rules, markup rules, settings, benefit recommendations and benefit utilization summaries ## Before an agent writes anything - There is no `Idempotency-Key` header. Resource creates are PUT to a client-chosen name, so they converge on replay; the job-triggering POSTs (`Exports_Execute`, `ScheduledActions_Run`, the report generators) have no replay protection at all — poll for an existing operation instead of re-POSTing - There is no dry-run, what-if or validate-only mode on any operation - Nothing here can be restored. Deletes have no undelete and no retention window; a PUT replaces the resource wholesale. Capture the GET body before you overwrite - `ScheduledActions_Run` sends email to up to 20 recipients. It is a send, not a test - Alerts are the one reversible write: `Alerts_Dismiss` can set status back to Active ## Clients - npm `@azure/arm-costmanagement` 1.0.0 (2026-07-16) - PyPI `azure-mgmt-costmanagement` 5.0.0 (2026-07-08) - NuGet `Azure.ResourceManager.CostManagement` 1.0.3 (2026-04-22) - Maven `com.azure.resourcemanager:azure-resourcemanager-costmanagement` 1.0.0 (2024-12-24) - Go `armcostmanagement` v1.1.1 (2023-04-14) - RubyGems `azure_mgmt_cost_management` 0.17.1 (2020-06-02, retired SDK generation) - Azure CLI extension `az costmanagement` (Exports only) and PowerShell `Az.CostManagement` 0.4.2 ## Operations and limits - [Automation, latency and rate limits](https://learn.microsoft.com/en-us/azure/cost-management-billing/costs/manage-automation): data refreshes every 4 hours; call no more than once a day per scope - Query API quota is measured in Query Processing Units — 12 QPU / 10s, 60 QPU / 1min, 600 QPU / 1hr, per tenant - [Azure status](https://azure.status.microsoft/en-us/status) - [Pricing](https://azure.microsoft.com/en-us/pricing/details/cost-management/): free for Azure usage - [Microsoft security.txt / MSRC](https://www.microsoft.com/.well-known/security.txt) ## Not available - No MCP server exposes this API. The Microsoft Learn MCP server (https://learn.microsoft.com/api/mcp) searches the documentation only, and the Azure MCP Server ships no Cost Management tool group - No A2A agent card is served on any Microsoft host probed - No AsyncAPI, no webhooks. Budget notifications go out by email or through an Azure Monitor action group - No GraphQL, no gRPC, no SOAP surface