Budget

A budget resource.

Cost ManagementFinOpsCloud CostBillingBudgetsExportCost AnalysisForecastingChargebacksFocusMicrosoft AzureReserved Instances

Properties

Name Type Description
properties object The properties of the budget.
eTag object eTag of the resource. To handle concurrent update scenario, this field will be used to determine whether the user is updating the latest version or not.
View JSON Schema on GitHub

JSON Schema

microsoft-azure-cost-management-budget-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-cost-management/json-schema/microsoft-azure-cost-management-budget-schema.json",
  "title": "Budget",
  "description": "A budget resource.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-azure-cost-management-budgets-api-openapi.yml#/components/schemas/Budget",
  "type": "object",
  "properties": {
    "properties": {
      "$ref": "#/$defs/BudgetProperties",
      "description": "The properties of the budget.",
      "x-ms-client-flatten": true
    },
    "eTag": {
      "$ref": "#/$defs/Azure.Core.eTag",
      "description": "eTag of the resource. To handle concurrent update scenario, this field will be used to determine whether the user is updating the latest version or not."
    }
  },
  "allOf": [
    {
      "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource"
    }
  ],
  "$defs": {
    "Azure.Core.eTag": {
      "type": "string",
      "description": "The ETag (or entity tag) HTTP response header is an identifier for a specific version of a resource.\nIt lets caches be more efficient and save bandwidth, as a web server does not need to resend a full response if the content was not changed.\n\nIt is a string of ASCII characters placed between double quotes, like \"675af34563dc-tr34\"."
    },
    "BudgetComparisonExpression": {
      "type": "object",
      "description": "The comparison expression to be used in the budgets.",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the column to use in comparison."
        },
        "operator": {
          "$ref": "#/$defs/BudgetOperatorType",
          "description": "The operator to use for comparison."
        },
        "values": {
          "type": "array",
          "description": "Array of values to use for comparison",
          "minItems": 0,
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "name",
        "operator",
        "values"
      ]
    },
    "BudgetFilter": {
      "type": "object",
      "description": "May be used to filter budgets by user-specified dimensions and/or tags.\n\nSupported for CategoryType(s): Cost, ReservationUtilization.",
      "properties": {
        "and": {
          "type": "array",
          "description": "The logical \"AND\" expression. Must have at least 2 items.\n\nSupported for CategoryType(s): Cost.",
          "minItems": 0,
          "items": {
            "$ref": "#/$defs/BudgetFilterProperties"
          },
          "x-ms-identifiers": []
        },
        "dimensions": {
          "$ref": "#/$defs/BudgetComparisonExpression",
          "description": "Has comparison expression for a dimension.\n\nSupported for CategoryType(s): Cost, ReservationUtilization.\n\nSupported dimension names for **CategoryType: ReservationUtilization**\n- ReservationId\n- ReservedResourceType"
        },
        "tags": {
          "$ref": "#/$defs/BudgetComparisonExpression",
          "description": "Has comparison expression for a tag.\n\nSupported for CategoryType(s): Cost."
        }
      }
    },
    "BudgetFilterProperties": {
      "type": "object",
      "description": "The Dimensions or Tags to filter a budget by.\n\nSupported for CategoryType(s): Cost, ReservationUtilization.",
      "properties": {
        "dimensions": {
          "$ref": "#/$defs/BudgetComparisonExpression",
          "description": "Has comparison expression for a dimension.\n\nSupported for CategoryType(s): Cost, ReservationUtilization.\n\nSupported dimension names for **CategoryType: ReservationUtilization**\n- ReservationId\n- ReservedResourceType"
        },
        "tags": {
          "$ref": "#/$defs/BudgetComparisonExpression",
          "description": "Has comparison expression for a tag.\n\nSupported for CategoryType(s): Cost."
        }
      }
    },
    "BudgetNotificationOperatorType": {
      "type": "string",
      "description": "The comparison operator.\n\nSupported for CategoryType(s): Cost, ReservationUtilization.\n\nSupported operators for **CategoryType: Cost**\n- GreaterThan\n- GreaterThanOrEqualTo\n\nSupported operators for **CategoryType: ReservationUtilization**\n- LessThan",
      "enum": [
        "EqualTo",
        "GreaterThan",
        "GreaterThanOrEqualTo",
        "LessThan"
      ],
      "x-ms-enum": {
        "name": "BudgetNotificationOperatorType",
        "modelAsString": true,
        "values": [
          {
            "name": "EqualTo",
            "value": "EqualTo",
            "description": "Notification will be triggered if the evaluated cost is the same as threshold value. Note: It’s not recommended to use this OperatorType as there’s low chance of cost being exactly the same as threshold value, leading to missing of your alert. This OperatorType will be deprecated in future.\n\nSupported for CategoryType(s): Cost."
          },
          {
            "name": "GreaterThan",
            "value": "GreaterThan",
            "description": "Notification will be triggered if the evaluated cost is greater than the threshold value. Note: This is the recommended OperatorType while configuring Budget Alert.\n\nSupported for CategoryType(s): Cost."
          },
          {
            "name": "GreaterThanOrEqualTo",
            "value": "GreaterThanOrEqualTo",
            "description": "Notification will be triggered if the evaluated cost is greater than or equal to the threshold value.\n\nSupported for CategoryType(s): Cost."
          },
          {
            "name": "LessThan",
            "value": "LessThan",
            "description": "Notification will be triggered if any Reservations in the scope of the Reservation Utilization Alert Rule have a utilization less than the threshold percentage.\n\nSupported for CategoryType(s): ReservationUtilization."
          }
        ]
      }
    },
    "BudgetOperatorType": {
      "type": "string",
      "description": "The operator to use for comparison.",
      "enum": [
        "In"
      ],
      "x-ms-enum": {
        "name": "BudgetOperatorType",
        "modelAsString": true,
        "values": [
          {
            "name": "In",
            "value": "In"
          }
        ]
      }
    },
    "BudgetProperties": {
      "type": "object",
      "description": "The properties of the budget.",
      "properties": {
        "category": {
          "$ref": "#/$defs/CategoryType",
          "description": "The category of the budget.\n- 'Cost' defines a Budget.\n- 'ReservationUtilization' defines a Reservation Utilization Alert Rule."
        },
        "amount": {
          "type": "number",
          "format": "float",
          "description": "The total amount of cost to track with the budget.\n\nSupported for CategoryType(s): Cost.\n\nRequired for CategoryType(s): Cost."
        },
        "timeGrain": {
          "$ref": "#/$defs/TimeGrainType",
          "description": "The time covered by a budget. Tracking of the amount will be reset based on the time grain.\n\nSupported for CategoryType(s): Cost, ReservationUtilization.\n\nSupported timeGrainTypes for **CategoryType: Cost**\n\n- Monthly\n- Quarterly\n- Annually\n- BillingMonth*\n- BillingQuarter*\n- BillingAnnual*\n\n*only supported for Web Direct customers.\n\nSupported timeGrainTypes for **CategoryType: ReservationUtilization**\n- Last7Days\n- Last30Days\n\nRequired for CategoryType(s): Cost, ReservationUtilization."
        },
        "timePeriod": {
          "$ref": "#/$defs/BudgetTimePeriod",
          "description": "The time period that defines the active period of the budget. The budget will evaluate data on or after the startDate and will expire on the endDate.\n\nSupported for CategoryType(s): Cost, ReservationUtilization.\n\nRequired for CategoryType(s): Cost, ReservationUtilization."
        },
        "filter": {
          "$ref": "#/$defs/BudgetFilter",
          "description": "May be used to filter budgets by user-specified dimensions and/or tags.\n\nSupported for CategoryType(s): Cost, ReservationUtilization."
        },
        "currentSpend": {
          "$ref": "#/$defs/CurrentSpend",
          "description": "The current amount of cost which is being tracked for a budget.\n\nSupported for CategoryType(s): Cost.",
          "readOnly": true
        },
        "notifications": {
          "type": "object",
          "description": "Dictionary of notifications associated with the budget.\n\nSupported for CategoryType(s): Cost, ReservationUtilization.\n\n- Constraints for **CategoryType: Cost** - Budget can have up to 5 notifications with thresholdType: Actual and 5 notifications with thresholdType: Forecasted.\n- Constraints for **CategoryType: ReservationUtilization** - Only one notification allowed. thresholdType is not applicable.",
          "additionalProperties": {
            "$ref": "#/$defs/Notification"
          }
        },
        "forecastSpend": {
          "$ref": "#/$defs/ForecastSpend",
          "description": "The forecasted cost which is being tracked for a budget.\n\nSupported for CategoryType(s): Cost.",
          "readOnly": true
        }
      },
      "required": [
        "category",
        "timeGrain",
        "timePeriod"
      ]
    },
    "BudgetTimePeriod": {
      "type": "object",
      "description": "The time period that defines the active period of the budget. The budget will evaluate data on or after the startDate and will expire on the endDate.\n\nSupported for CategoryType(s): Cost, ReservationUtilization.\n\nRequired for CategoryType(s): Cost, ReservationUtilization.",
      "properties": {
        "startDate": {
          "type": "string",
          "format": "date-time",
          "description": "The start date for the budget.\n\n- Constraints for **CategoryType: Cost** - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should  be selected within the timegrain period.\n\n- Constraints for **CategoryType: ReservationUtilization** - Must be on or after the current date and less than the end date."
        },
        "endDate": {
          "type": "string",
          "format": "date-time",
          "description": "The end date for the budget.\n\n- Constraints for **CategoryType: Cost** - No constraints. If not provided, we default this to 10 years from the start date.\n\n- Constraints for **CategoryType: ReservationUtilization** - End date cannot be more than 3 years after the start date."
        }
      },
      "required": [
        "startDate"
      ]
    },
    "CategoryType": {
      "type": "string",
      "description": "The category of the budget.\n- 'Cost' defines a Budget.\n- 'ReservationUtilization' defines a Reservation Utilization Alert Rule.",
      "enum": [
        "Cost",
        "ReservationUtilization"
      ],
      "x-ms-enum": {
        "name": "CategoryType",
        "modelAsString": true,
        "values": [
          {
            "name": "Cost",
            "value": "Cost",
            "description": "A Budget that evaluates monetary cost of Azure resources against an amount, and alerts based on a configured notification threshold."
          },
          {
            "name": "ReservationUtilization",
            "value": "ReservationUtilization",
            "description": "An Alert Rule that evaluates the utilization percentage of Azure Reservations, and alerts based on a configured notification threshold."
          }
        ]
      }
    },
    "CultureCode": {
      "type": "string",
      "description": "Language in which the recipient will receive the notification,\n\nSupported for CategoryType(s): Cost, ReservationUtilization.",
      "enum": [
        "en-us",
        "ja-jp",
        "zh-cn",
        "de-de",
        "es-es",
        "fr-fr",
        "it-it",
        "ko-kr",
        "pt-br",
        "ru-ru",
        "zh-tw",
        "cs-cz",
        "pl-pl",
        "tr-tr",
        "da-dk",
        "en-gb",
        "hu-hu",
        "nb-no",
        "nl-nl",
        "pt-pt",
        "sv-se"
      ],
      "x-ms-enum": {
        "name": "CultureCode",
        "modelAsString": true,
        "values": [
          {
            "name": "en-us",
            "value": "en-us"
          },
          {
            "name": "ja-jp",
            "value": "ja-jp"
          },
          {
            "name": "zh-cn",
            "value": "zh-cn"
          },
          {
            "name": "de-de",
            "value": "de-de"
          },
          {
            "name": "es-es",
            "value": "es-es"
          },
          {
            "name": "fr-fr",
            "value": "fr-fr"
          },
          {
            "name": "it-it",
            "value": "it-it"
          },
          {
            "name": "ko-kr",
            "value": "ko-kr"
          },
          {
            "name": "pt-br",
            "value": "pt-br"
          },
          {
            "name": "ru-ru",
            "value": "ru-ru"
          },
          {
            "name": "zh-tw",
            "value": "zh-tw"
          },
          {
            "name": "cs-cz",
            "value": "cs-cz"
          },
          {
            "name": "pl-pl",
            "value": "pl-pl"
          },
          {
            "name": "tr-tr",
            "value": "tr-tr"
          },
          {
            "name": "da-dk",
            "value": "da-dk"
          },
          {
            "name": "en-gb",
            "value": "en-gb"
          },
          {
            "name": "hu-hu",
            "value": "hu-hu"
          },
          {
            "name": "nb-no",
            "value": "nb-no"
          },
          {
            "name": "nl-nl",
            "value": "nl-nl"
          },
          {
            "name": "pt-pt",
            "value": "pt-pt"
          },
          {
            "name": "sv-se",
            "value": "sv-se"
          }
        ]
      }
    },
    "CurrentSpend": {
      "type": "object",
      "description": "The current amount of cost which is being tracked for a budget.\n\nSupported for CategoryType(s): Cost.",
      "properties": {
        "amount": {
          "type": "number",
          "format": "float",
          "description": "The total amount of cost which is being tracked by the budget.",
          "readOnly": true
        },
        "unit": {
          "type": "string",
          "description": "The unit of measure for the budget amount.",
          "readOnly": true
        }
      }
    },
    "ForecastSpend": {
      "type": "object",
      "description": "The forecasted cost which is being tracked for a budget.\n\nSupported for CategoryType(s): Cost.",
      "properties": {
        "amount": {
          "type": "number",
          "format": "float",
          "description": "The forecasted cost for the total time period which is being tracked by the budget. This value is only provided if the budget contains a forecast alert type.",
          "readOnly": true
        },
        "unit": {
          "type": "string",
          "description": "The unit of measure for the budget amount.",
          "readOnly": true
        }
      }
    },
    "Frequency": {
      "type": "string",
      "description": "Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days).\n\nSupported for CategoryType(s): ReservationUtilization.",
      "enum": [
        "Daily",
        "Weekly",
        "Monthly"
      ],
      "x-ms-enum": {
        "name": "Frequency",
        "modelAsString": true,
        "values": [
          {
            "name": "Daily",
            "value": "Daily",
            "description": "After the threshold breaches and an Alert is fired, no further alerts will be sent until the next calendar day."
          },
          {
            "name": "Weekly",
            "value": "Weekly",
            "description": "After the threshold breaches and an Alert is fired, no further alerts will be sent for 7 calendar days."
          },
          {
            "name": "Monthly",
            "value": "Monthly",
            "description": "After the threshold breaches and an Alert is fired, no further alerts will be sent for 30 calendar days."
          }
        ]
      }
    },
    "Notification": {
      "type": "object",
      "description": "The notification associated with a budget.\n\nSupported for CategoryType(s): Cost, ReservationUtilization.",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "The notification is enabled or not.\n\nSupported for CategoryType(s): Cost, ReservationUtilization."
        },
        "operator": {
          "$ref": "#/$defs/BudgetNotificationOperatorType",
          "description": "The comparison operator.\n\nSupported for CategoryType(s): Cost, ReservationUtilization.\n\nSupported operators for **CategoryType: Cost**\n- GreaterThan\n- GreaterThanOrEqualTo\n\nSupported operators for **CategoryType: ReservationUtilization**\n- LessThan"
        },
        "threshold": {
          "type": "number",
          "format": "float",
          "description": "Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places.\n\nSupported for CategoryType(s): Cost, ReservationUtilization.\n\n**CategoryType: Cost** - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold.\n\n**CategoryType: ReservationUtilization** - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold."
        },
        "frequency": {
          "$ref": "#/$defs/Frequency",
          "description": "Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days).\n\nSupported for CategoryType(s): ReservationUtilization."
        },
        "contactEmails": {
          "type": "array",
          "description": "Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified.\n\nSupported for CategoryType(s): Cost, ReservationUtilization.",
          "minItems": 0,
          "maxItems": 50,
          "items": {
            "type": "string"
          }
        },
        "contactRoles": {
          "type": "array",
          "description": "Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached.\n\nSupported for CategoryType(s): Cost.",
          "items": {
            "type": "string"
          }
        },
        "contactGroups": {
          "type": "array",
          "description": "Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id.\n\nSupported for CategoryType(s): Cost.",
          "minItems": 0,
          "maxItems": 50,
          "items": {
            "type": "string"
          }
        },
        "thresholdType": {
          "type": "string",
          "description": "The type of threshold.\n\nSupported for CategoryType(s): Cost.",
          "default": "Actual",
          "enum": [
            "Actual",
            "Forecasted"
          ],
          "x-ms-enum": {
            "name": "ThresholdType",
            "modelAsString": true,
            "values": [
              {
                "name": "Actual",
                "value": "Actual",
                "description": "Actual costs budget alerts notify when the actual accrued cost exceeds the allocated budget."
              },
              {
                "name": "Forecasted",
                "value": "Forecasted",
                "description": "Forecasted costs budget alerts provide advanced notification that your spending trends are likely to exceed your allocated budget, as it relies on forecasted cost predictions."
              }
            ]
          }
        },
        "locale": {
          "$ref": "#/$defs/CultureCode",
          "description": "Language in which the recipient will receive the notification,\n\nSupported for CategoryType(s): Cost, ReservationUtilization."
        }
      },
      "required": [
        "enabled",
        "operator",
        "threshold",
        "contactEmails"
      ]
    },
    "TimeGrainType": {
      "type": "string",
      "description": "The time covered by a budget. Tracking of the amount will be reset based on the time grain.\n\nSupported for CategoryType(s): Cost, ReservationUtilization.\n\nSupported timeGrainTypes for **CategoryType: Cost**\n\n- Monthly\n- Quarterly\n- Annually\n- BillingMonth*\n- BillingQuarter*\n- BillingAnnual*\n\n*only supported for Web Direct customers.\n\nSupported timeGrainTypes for **CategoryType: ReservationUtilization**\n- Last7Days\n- Last30Days\n\nRequired for CategoryType(s): Cost, ReservationUtilization.",
      "enum": [
        "Monthly",
        "Quarterly",
        "Annually",
        "BillingMonth",
        "BillingQuarter",
        "BillingAnnual",
        "Last7Days",
        "Last30Days"
      ],
      "x-ms-enum": {
        "name": "TimeGrainType",
        "modelAsString": true,
        "values": [
          {
            "name": "Monthly",
            "value": "Monthly",
            "description": "The budget will track costs in the current calendar month against the amount.\n\nSupported for CategoryType: Cost only."
          },
          {
            "name": "Quarterly",
            "value": "Quarterly",
            "description": "The budget will track costs in the current calendar quarter against the amount.\n\nSupported for CategoryType: Cost only."
          },
          {
            "name": "Annually",
            "value": "Annually",
            "description": "The budget will track costs in the current calendar year against the amount.\n\nSupported for CategoryType: Cost only."
          },
          {
            "name": "BillingMonth",
            "value": "BillingMonth",
            "description": "The budget will track costs in the current billing month against the amount.\n\nSupported for CategoryType: Cost and Web Direct customers only."
          },
          {
            "name": "BillingQuarter",
            "value": "BillingQuarter",
            "description": "The budget will track costs in the current billing quarter against the amount.\n\nSupported for CategoryType: Cost and Web Direct customers only."
          },
          {
            "name": "BillingAnnual",
            "value": "BillingAnnual",
            "description": "The budget will track costs in the current billing year against the amount.\n\nSupported for CategoryType: Cost and Web Direct customers only."
          },
          {
            "name": "Last7Days",
            "value": "Last7Days",
            "description": "The Reservation Utilization Alert Rule will evaluate reservations based on their 7-Day utilization percentage.\n\nSupported for CategoryType: ReservationUtilization only."
          },
          {
            "name": "Last30Days",
            "value": "Last30Days",
            "description": "The Reservation Utilization Alert Rule will evaluate reservations based on their 30-Day utilization percentage.\n\nSupported for CategoryType: ReservationUtilization only."
          }
        ]
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/microsoft-azure-cost-management-budget"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.