Overview
The Azure Cost Management REST API enables programmatic access to cost data, budgets, alerts, and pricing information for Azure subscriptions, resource groups, and management groups.
Authentication
All calls must be authorized using Azure AD OAuth2 bearer tokens. Obtain a token for the https://management.azure.com/ resource.
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.CostManagement/query?api-version=2023-10-01
Authorization: Bearer <access_token>
Content-Type: application/json
Get Cost Data
Retrieve cost information for a scope (subscription, resource group, or management group).
| HTTP Method | URI | API Version |
|---|---|---|
| POST | /subscriptions/{subscriptionId}/providers/Microsoft.CostManagement/query | 2023-10-01 |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.CostManagement/exports/{exportName} | 2023-10-01 |
Request Body Example
{
"type": "ActualCost",
"timeframe": "MonthToDate",
"dataset": {
"granularity": "Daily",
"aggregation": {
"totalCost": {
"name": "Cost",
"function": "Sum"
}
},
"grouping": [
{
"type": "Dimension",
"name": "ResourceGroupName"
}
]
}
}
Budgets API
Create, read, update, and delete budgets.
// List budgets
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Consumption/budgets?api-version=2023-11-01
// Create budget
PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Consumption/budgets/{budgetName}?api-version=2023-11-01
Content-Type: application/json
{
"properties": {
"category": "Cost",
"amount": 500,
"timeGrain": "Monthly",
"timePeriod": {
"startDate": "2024-01-01",
"endDate": "2024-12-31"
},
"notifications": {
"emailLow": {
"enabled": true,
"threshold": 80,
"contactEmails": ["admin@example.com"]
}
}
}
}
Alerts API
Manage budget alerts.
// Get alerts for a budget
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Consumption/budgets/{budgetName}/alerts?api-version=2023-11-01
Pricing API
Access marketplace pricing information.
// Get price sheet
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Commerce/RateCard?api-version=2022-08-01&offerId=MS-AZR-0017P¤cyCode=USD&locale=en-US®ionInfo=US
Error Codes
| Status Code | Message |
|---|---|
| 400 | Bad request – missing or invalid parameters. |
| 401 | Unauthorized – invalid or expired token. |
| 403 | Forbidden – insufficient permissions. |
| 404 | Not found – resource does not exist. |
| 429 | Too many requests – rate limit exceeded. |
| 500 | Internal server error – retry later. |