AWS Cost Explorer Service
Cost Management APIs


Creates a budget and, if included, notifications and subscribers.

Request Syntax

{ "AccountId": "string", "Budget": { "BudgetLimit": { "Amount": "string", "Unit": "string" }, "BudgetName": "string", "BudgetType": "string", "CalculatedSpend": { "ActualSpend": { "Amount": "string", "Unit": "string" }, "ForecastedSpend": { "Amount": "string", "Unit": "string" } }, "CostFilters": { "string" : [ "string" ] }, "CostTypes": { "IncludeCredit": boolean, "IncludeDiscount": boolean, "IncludeOtherSubscription": boolean, "IncludeRecurring": boolean, "IncludeRefund": boolean, "IncludeSubscription": boolean, "IncludeSupport": boolean, "IncludeTax": boolean, "IncludeUpfront": boolean, "UseAmortized": boolean, "UseBlended": boolean }, "LastUpdatedTime": number, "TimePeriod": { "End": number, "Start": number }, "TimeUnit": "string" }, "NotificationsWithSubscribers": [ { "Notification": { "ComparisonOperator": "string", "NotificationState": "string", "NotificationType": "string", "Threshold": number, "ThresholdType": "string" }, "Subscribers": [ { "Address": "string", "SubscriptionType": "string" } ] } ] }

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.


The accountId that is associated with the budget.

Type: String

Length Constraints: Fixed length of 12.

Pattern: \d{12}

Required: Yes


The budget object that you want to create.

Type: Budget object

Required: Yes


A notification that you want to associate with a budget. A budget can have up to five notifications, and each notification can have one SNS subscriber and up to 10 email subscribers. If you include notifications and subscribers in your CreateBudget call, AWS creates the notifications and subscribers for you.

Type: Array of NotificationWithSubscribers objects

Array Members: Maximum number of 5 items.

Required: No

Response Elements

If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.


For information about the errors that are common to all actions, see Common Errors.


You've exceeded the notification or subscriber limit.

HTTP Status Code: 400


The budget name already exists. Budget names must be unique within an account.

HTTP Status Code: 400


An error on the server occurred during the processing of your request. Try again later.

HTTP Status Code: 400


An error on the client occurred. Typically, the cause is an invalid input value.

HTTP Status Code: 400


The following is a sample request of the CreateBudget operation.

Sample Request

POST / HTTP/1.1 Host: awsbudgets.<region>.<domain> x-amz-Date: <Date> Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=contenttype;date;host;user-agent;x-amz-date;x-amz-target;x-amzn-requestid,Signature=<Signature> User-Agent: <UserAgentString> Content-Type: application/x-amz-json-1.1 Content-Length: <PayloadSizeBytes> Connection: Keep-Alive X-Amz-Target: AWSBudgetServiceGateway.CreateBudgets { "AccountId": "111122223333", "Budget": { "BudgetLimit": { "Amount": "100", "Unit": "USD" }, "BudgetName": "Example Budget", "BudgetType": "COST", "CostFilters": { "AZ" : [ "us-east-1" ] }, "CostTypes": { "IncludeCredit": true, "IncludeDiscount": true, "IncludeOtherSubscription": true, "IncludeRecurring": true, "IncludeRefund": true, "IncludeSubscription": true, "IncludeSupport": true, "IncludeTax": true, "IncludeUpfront": true, "UseBlended": false }, "TimePeriod": { "Start": 1477353600, "End": 1477958399 }, "TimeUnit": "MONTHLY" }, "NotificationsWithSubscribers": [ { "Notification": { "ComparisonOperator": "GREATER_THAN", "NotificationType": "ACTUAL", "Threshold": 80, "ThresholdType": "PERCENTAGE" }, "Subscribers": [ { "Address": "", "SubscriptionType": "EMAIL" } ] } ] }

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: