Benefit Recommendations - List
List of recommendations for purchasing savings plan.
GET https://management.azure.com/{billingScope}/providers/Microsoft.CostManagement/benefitRecommendations?api-version=2024-08-01
GET https://management.azure.com/{billingScope}/providers/Microsoft.CostManagement/benefitRecommendations?$filter={$filter}&$orderby={$orderby}&$expand={$expand}&api-version=2024-08-01
URI Parameters
Name | In | Required | Type | Description |
---|---|---|---|---|
billing
|
path | True |
string |
The scope associated with benefit recommendation operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resource group scope, /providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for enterprise agreement scope, and '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billing profile scope |
api-version
|
query | True |
string |
The API version to use for this operation. |
$expand
|
query |
string |
May be used to expand the properties by: properties/usage, properties/allRecommendationDetails |
|
$filter
|
query |
string |
Can be used to filter benefitRecommendations by: properties/scope with allowed values ['Single', 'Shared'] and default value 'Shared'; and properties/lookBackPeriod with allowed values ['Last7Days', 'Last30Days', 'Last60Days'] and default value 'Last60Days'; properties/term with allowed values ['P1Y', 'P3Y'] and default value 'P3Y'; properties/subscriptionId; properties/resourceGroup |
|
$orderby
|
query |
string |
May be used to order the recommendations by: properties/armSkuName. For the savings plan, the results are in order by default. There is no need to use this clause. |
Responses
Name | Type | Description |
---|---|---|
200 OK |
OK. The request has succeeded. |
|
Other Status Codes |
Error response describing why the operation failed. |
Security
azure_auth
Azure Active Directory OAuth2 Flow.
Type:
oauth2
Flow:
implicit
Authorization URL:
https://login.microsoftonline.com/common/oauth2/authorize
Scopes
Name | Description |
---|---|
user_impersonation | impersonate your user account |
Examples
BenefitRecommendationsBillingAccountList
Sample request
GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/123456/providers/Microsoft.CostManagement/benefitRecommendations?$filter=properties/lookBackPeriod eq 'Last7Days' AND properties/term eq 'P1Y'&$expand=properties/usage,properties/allRecommendationDetails&api-version=2024-08-01
Sample response
{
"value": [
{
"id": "/providers/Microsoft.Billing/billingAccounts/123456/providers/Microsoft.CostManagement/benefitRecommendations/00000000-0000-0000-0000-000000000000",
"name": "00000000-0000-0000-0000-000000000000",
"type": "Microsoft.CostManagement/benefitRecommendations",
"kind": "SavingsPlan",
"properties": {
"firstConsumptionDate": "2022-10-18T00:00:00Z",
"lastConsumptionDate": "2022-10-25T00:00:00Z",
"lookBackPeriod": "Last7Days",
"totalHours": 168,
"usage": {
"usageGrain": "Hourly",
"charges": [
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
2,
2,
2,
2
]
},
"armSkuName": "Compute_Savings_Plan",
"term": "P1Y",
"commitmentGranularity": "Hourly",
"currencyCode": "USD",
"costWithoutBenefit": 218.267,
"scope": "Shared",
"recommendationDetails": {
"averageUtilizationPercentage": 99.33,
"coveragePercentage": 54.609,
"commitmentAmount": 0.164,
"overageCost": 144.841,
"benefitCost": 52.002,
"savingsAmount": 21.424,
"savingsPercentage": 9.815,
"totalCost": 196.843,
"wastageCost": 0.035
},
"allRecommendationDetails": {
"value": [
{
"averageUtilizationPercentage": 99.33,
"coveragePercentage": 54.609,
"commitmentAmount": 0.164,
"overageCost": 144.841,
"benefitCost": 52.002,
"savingsAmount": 21.424,
"savingsPercentage": 9.815,
"totalCost": 196.843,
"wastageCost": 0.035
},
{
"averageUtilizationPercentage": 81.474,
"coveragePercentage": 56.748,
"commitmentAmount": 0.161,
"overageCost": 120.389,
"benefitCost": 83.754,
"savingsAmount": 14.124,
"savingsPercentage": 6.47,
"totalCost": 204.143,
"wastageCost": 0.1
}
]
}
}
}
]
}
Definitions
Name | Description |
---|---|
all |
Benefit recommendation details. |
all |
The list of all benefit recommendations with the recommendation details. |
benefit |
Reservation or SavingsPlan. |
benefit |
benefit plan recommendation details. |
benefit |
Result of listing benefit recommendations. |
Error |
The details of the error. |
Error |
Error response indicates that the service is not able to process the incoming request. The reason is provided in the error message. Some Error responses:
|
grain |
The grain of the usage. Supported values: 'Hourly' |
look |
The number of days of usage evaluated for computing the recommendations. |
recommendation |
On-demand charges between firstConsumptionDate and lastConsumptionDate that were used for computing benefit recommendations. |
shared |
The properties of the benefit recommendation when scope is 'Shared'. |
single |
The properties of the benefit recommendations when scope is 'Single'. |
term |
Term period of the benefit. For example, P1Y or P3Y. |
allSavingsBenefitDetails
Benefit recommendation details.
Name | Type | Description |
---|---|---|
averageUtilizationPercentage |
number |
Estimated average utilization percentage for the 'totalHours' in the look-back period, with this commitment. |
benefitCost |
number |
The estimated cost with benefit for the 'totalHours' in the look-back period. It's equal to (commitmentAmount * totalHours) |
commitmentAmount |
number |
The commitment amount at the commitmentGranularity. |
coveragePercentage |
number |
Estimated benefit coverage percentage for the 'totalHours' in the look-back period, with this commitment. |
overageCost |
number |
The difference between total cost and benefit cost for the 'totalHours' in the look-back period. |
savingsAmount |
number |
The amount saved for the 'totalHours' in the look-back period, by purchasing the recommended quantity of the benefit. |
savingsPercentage |
number |
The savings in percentage for the 'totalHours' in the look-back period, by purchasing the recommended quantity of benefit. |
totalCost |
number |
Total cost, which is sum of benefit cost and overage cost. |
wastageCost |
number |
Estimated unused portion of the 'benefitCost'. |
allSavingsList
The list of all benefit recommendations with the recommendation details.
Name | Type | Description |
---|---|---|
nextLink |
string |
The link (URL) to the next page of results. |
value |
The list of benefit recommendations with the recommendation details.. |
benefitKind
Reservation or SavingsPlan.
Name | Type | Description |
---|---|---|
IncludedQuantity |
string |
Benefit is IncludedQuantity. |
Reservation |
string |
Benefit is Reservation. |
SavingsPlan |
string |
Benefit is SavingsPlan. |
benefitRecommendationModel
benefit plan recommendation details.
Name | Type | Description |
---|---|---|
id |
string |
Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} |
kind |
Reservation or SavingsPlan. |
|
name |
string |
The name of the resource |
properties | benefitRecommendationProperties: |
The properties of the benefit recommendations. |
type |
string |
The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" |
benefitRecommendationsListResult
Result of listing benefit recommendations.
Name | Type | Description |
---|---|---|
nextLink |
string |
The link (URL) to the next page of results. |
value |
The list of benefit recommendations. |
ErrorDetails
The details of the error.
Name | Type | Description |
---|---|---|
code |
string |
Error code. |
message |
string |
Error message indicating why the operation failed. |
ErrorResponse
Error response indicates that the service is not able to process the incoming request. The reason is provided in the error message.
Some Error responses:
429 TooManyRequests - Request is throttled. Retry after waiting for the time specified in the "x-ms-ratelimit-microsoft.consumption-retry-after" header.
503 ServiceUnavailable - Service is temporarily unavailable. Retry after waiting for the time specified in the "Retry-After" header.
Name | Type | Description |
---|---|---|
error |
The details of the error. |
grain
The grain of the usage. Supported values: 'Hourly'
Name | Type | Description |
---|---|---|
Daily |
string |
Hourly grain corresponds to value per day. |
Hourly |
string |
Hourly grain corresponds to value per hour. |
Monthly |
string |
Hourly grain corresponds to value per month. |
lookBackPeriod
The number of days of usage evaluated for computing the recommendations.
Name | Type | Description |
---|---|---|
Last30Days |
string |
30 days used to look back. |
Last60Days |
string |
60 days used to look back. |
Last7Days |
string |
7 days used to look back. |
recommendationUsageDetails
On-demand charges between firstConsumptionDate and lastConsumptionDate that were used for computing benefit recommendations.
Name | Type | Description |
---|---|---|
charges |
number[] |
On-demand charges for each hour between firstConsumptionDate and lastConsumptionDate that were used for computing benefit recommendations. |
usageGrain |
The grain of the usage. Supported values: 'Hourly' |
sharedScopeBenefitRecommendationProperties
The properties of the benefit recommendation when scope is 'Shared'.
Name | Type | Description |
---|---|---|
allRecommendationDetails |
The list of all benefit recommendations with the recommendation details. |
|
armSkuName |
string |
ARM SKU name. 'Compute_Savings_Plan' for SavingsPlan. |
commitmentGranularity |
Grain of the proposed commitment amount. Supported values: 'Hourly' |
|
costWithoutBenefit |
number |
The current cost without benefit, corresponds to 'totalHours' in the look-back period. |
currencyCode |
string |
An ISO 4217 currency code identifier for the costs and savings amounts. |
firstConsumptionDate |
string |
The first usage date used for looking back for computing the recommendations. |
lastConsumptionDate |
string |
The last usage date used for looking back for computing the recommendations. |
lookBackPeriod |
The number of days of usage evaluated for computing the recommendations. |
|
recommendationDetails |
The details of the proposed recommendation. |
|
scope |
string:
Shared |
Benefit scope. For example, Single or Shared. |
term |
Term period of the benefit. For example, P1Y or P3Y. |
|
totalHours |
integer |
The total hours for which the cost is covered. Its equal to number of records in a property 'properties/usage/charges'. |
usage |
On-demand charges between firstConsumptionDate and lastConsumptionDate that were used for computing benefit recommendations. |
singleScopeBenefitRecommendationProperties
The properties of the benefit recommendations when scope is 'Single'.
Name | Type | Description |
---|---|---|
allRecommendationDetails |
The list of all benefit recommendations with the recommendation details. |
|
armSkuName |
string |
ARM SKU name. 'Compute_Savings_Plan' for SavingsPlan. |
commitmentGranularity |
Grain of the proposed commitment amount. Supported values: 'Hourly' |
|
costWithoutBenefit |
number |
The current cost without benefit, corresponds to 'totalHours' in the look-back period. |
currencyCode |
string |
An ISO 4217 currency code identifier for the costs and savings amounts. |
firstConsumptionDate |
string |
The first usage date used for looking back for computing the recommendations. |
lastConsumptionDate |
string |
The last usage date used for looking back for computing the recommendations. |
lookBackPeriod |
The number of days of usage evaluated for computing the recommendations. |
|
recommendationDetails |
The details of the proposed recommendation. |
|
resourceGroup |
string |
The resource group that this single scope recommendation is for. Applicable only if recommendation is for 'Single' scope and 'ResourceGroup' request scope. |
scope |
string:
Single |
Benefit scope. For example, Single or Shared. |
subscriptionId |
string |
The subscription ID that this single scope recommendation is for. Applicable only if recommendation is for 'Single' scope. |
term |
Term period of the benefit. For example, P1Y or P3Y. |
|
totalHours |
integer |
The total hours for which the cost is covered. Its equal to number of records in a property 'properties/usage/charges'. |
usage |
On-demand charges between firstConsumptionDate and lastConsumptionDate that were used for computing benefit recommendations. |
term
Term period of the benefit. For example, P1Y or P3Y.
Name | Type | Description |
---|---|---|
P1Y |
string |
Benefit term is 1 year. |
P3Y |
string |
Benefit term is 3 years. |