Amazon Billing And Cost Management Budget Actions API

Automated actions when budget thresholds are exceeded

GitHub OpenAPI
Business capability
IT Financial Management BC-600.80

Operations 7

POST /#CreateBudgetAction Create Budget Action #
POST /#DeleteBudgetAction Delete Budget Action #
POST /#DescribeBudgetAction Describe Budget Action #
POST /#DescribeBudgetActionsForAccount Describe Budget Actions For Account #
POST /#DescribeBudgetActionsForBudget Describe Budget Actions For Budget #
POST /#ExecuteBudgetAction Execute Budget Action #
POST /#UpdateBudgetAction Update Budget Action #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/amazon-billing-and-cost-management:amazon-billing-and-cost-management-budget-actions-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

amazon-billing-and-cost-management-budget-actions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: AWS Cost Explorer Service Budget Actions API
  version: '2017-10-25'
  description: Generated from AWS's published Smithy model for AWS Cost Explorer Service. 7 operation(s).
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/contact-us/
  license:
    name: Apache 2.0
    identifier: Apache-2.0
    url: https://github.com/aws/api-models-aws/blob/main/LICENSE
servers:
- url: https://budgets.{region}.amazonaws.com
  variables:
    region:
      default: us-east-1
security:
- sigv4: []
paths:
  /#CreateBudgetAction:
    post:
      operationId: CreateBudgetAction
      summary: Create Budget Action
      description: Creates a budget action.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/CreateBudgetActionResponse'
        '403':
          description: AccessDeniedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/BudgetsAccessDeniedException'
        '405':
          description: CreationLimitExceededException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/CreationLimitExceededException'
        '409':
          description: DuplicateRecordException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/DuplicateRecordException'
        '500':
          description: InternalErrorException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalErrorException'
        '400':
          description: InvalidParameterException; ThrottlingException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidParameterException'
        '404':
          description: NotFoundException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/NotFoundException'
        '402':
          description: ServiceQuotaExceededException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ServiceQuotaExceededException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSBudgetServiceGateway.CreateBudgetAction
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/CreateBudgetActionRequest'
      tags:
      - Budget Actions
  /#DeleteBudgetAction:
    post:
      operationId: DeleteBudgetAction
      summary: Delete Budget Action
      description: Deletes a budget action.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/DeleteBudgetActionResponse'
        '403':
          description: AccessDeniedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/BudgetsAccessDeniedException'
        '500':
          description: InternalErrorException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalErrorException'
        '400':
          description: InvalidParameterException; ThrottlingException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidParameterException'
        '404':
          description: NotFoundException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/NotFoundException'
        '423':
          description: ResourceLockedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ResourceLockedException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSBudgetServiceGateway.DeleteBudgetAction
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/DeleteBudgetActionRequest'
      tags:
      - Budget Actions
  /#DescribeBudgetAction:
    post:
      operationId: DescribeBudgetAction
      summary: Describe Budget Action
      description: Describes a budget action detail.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/DescribeBudgetActionResponse'
        '403':
          description: AccessDeniedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/BudgetsAccessDeniedException'
        '500':
          description: InternalErrorException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalErrorException'
        '400':
          description: InvalidParameterException; ThrottlingException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidParameterException'
        '404':
          description: NotFoundException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/NotFoundException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSBudgetServiceGateway.DescribeBudgetAction
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/DescribeBudgetActionRequest'
      tags:
      - Budget Actions
  /#DescribeBudgetActionsForAccount:
    post:
      operationId: DescribeBudgetActionsForAccount
      summary: Describe Budget Actions For Account
      description: Describes all of the budget actions for an account.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/DescribeBudgetActionsForAccountResponse'
        '403':
          description: AccessDeniedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/BudgetsAccessDeniedException'
        '500':
          description: InternalErrorException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalErrorException'
        '400':
          description: InvalidNextTokenException; InvalidParameterException; ThrottlingException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidNextTokenException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSBudgetServiceGateway.DescribeBudgetActionsForAccount
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/DescribeBudgetActionsForAccountRequest'
      tags:
      - Budget Actions
  /#DescribeBudgetActionsForBudget:
    post:
      operationId: DescribeBudgetActionsForBudget
      summary: Describe Budget Actions For Budget
      description: Describes all of the budget actions for a budget.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/DescribeBudgetActionsForBudgetResponse'
        '403':
          description: AccessDeniedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/BudgetsAccessDeniedException'
        '500':
          description: InternalErrorException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalErrorException'
        '400':
          description: InvalidNextTokenException; InvalidParameterException; ThrottlingException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidNextTokenException'
        '404':
          description: NotFoundException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/NotFoundException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSBudgetServiceGateway.DescribeBudgetActionsForBudget
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/DescribeBudgetActionsForBudgetRequest'
      tags:
      - Budget Actions
  /#ExecuteBudgetAction:
    post:
      operationId: ExecuteBudgetAction
      summary: Execute Budget Action
      description: Executes a budget action.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ExecuteBudgetActionResponse'
        '403':
          description: AccessDeniedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/BudgetsAccessDeniedException'
        '500':
          description: InternalErrorException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalErrorException'
        '400':
          description: InvalidParameterException; ThrottlingException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidParameterException'
        '404':
          description: NotFoundException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/NotFoundException'
        '423':
          description: ResourceLockedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ResourceLockedException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSBudgetServiceGateway.ExecuteBudgetAction
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/ExecuteBudgetActionRequest'
      tags:
      - Budget Actions
  /#UpdateBudgetAction:
    post:
      operationId: UpdateBudgetAction
      summary: Update Budget Action
      description: Updates a budget action.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/UpdateBudgetActionResponse'
        '403':
          description: AccessDeniedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/BudgetsAccessDeniedException'
        '500':
          description: InternalErrorException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalErrorException'
        '400':
          description: InvalidParameterException; ThrottlingException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidParameterException'
        '404':
          description: NotFoundException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/NotFoundException'
        '423':
          description: ResourceLockedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ResourceLockedException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSBudgetServiceGateway.UpdateBudgetAction
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/UpdateBudgetActionRequest'
      tags:
      - Budget Actions
components:
  securitySchemes:
    sigv4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4. The Authorization header carries an AWS4-HMAC-SHA256 signature over the canonical
        request, with X-Amz-Date (and X-Amz-Security-Token for temporary credentials). Not a bearer token.
      x-aws-sigv4:
        signingName: budgets
  schemas:
    Action:
      type: object
      properties:
        ActionId:
          type: string
          description: A system-generated universally unique identifier (UUID) for the action.
        BudgetName:
          type: string
        NotificationType:
          type: string
          enum:
          - ACTUAL
          - FORECASTED
        ActionType:
          type: string
          enum:
          - APPLY_IAM_POLICY
          - APPLY_SCP_POLICY
          - RUN_SSM_DOCUMENTS
          description: The type of action. This defines the type of tasks that can be carried out by this action. This field
            also determines the format for definition.
        ActionThreshold:
          $ref: '#/components/schemas/ActionThreshold'
        Definition:
          $ref: '#/components/schemas/Definition'
        ExecutionRoleArn:
          type: string
          description: The role passed for action execution and reversion. Roles and actions must be in the same account.
        ApprovalModel:
          type: string
          enum:
          - AUTOMATIC
          - MANUAL
          description: This specifies if the action needs manual or automatic approval.
        Status:
          type: string
          enum:
          - STANDBY
          - PENDING
          - EXECUTION_IN_PROGRESS
          - EXECUTION_SUCCESS
          - EXECUTION_FAILURE
          - REVERSE_IN_PROGRESS
          - REVERSE_SUCCESS
          - REVERSE_FAILURE
          - RESET_IN_PROGRESS
          - RESET_FAILURE
          description: The status of the action.
        Subscribers:
          type: array
          items:
            $ref: '#/components/schemas/BudgetsSubscriber'
      required:
      - ActionId
      - BudgetName
      - NotificationType
      - ActionType
      - ActionThreshold
      - Definition
      - ExecutionRoleArn
      - ApprovalModel
      - Status
      - Subscribers
    ActionThreshold:
      type: object
      properties:
        ActionThresholdValue:
          type: number
        ActionThresholdType:
          type: string
          enum:
          - PERCENTAGE
          - ABSOLUTE_VALUE
      required:
      - ActionThresholdValue
      - ActionThresholdType
    BudgetsAccessDeniedException:
      type: object
      properties:
        Message:
          type: string
    BudgetsSubscriber:
      type: object
      properties:
        SubscriptionType:
          type: string
          enum:
          - SNS
          - EMAIL
          description: The type of notification that Amazon Web Services sends to a subscriber.
        Address:
          type: string
          description: The address that Amazon Web Services sends budget notifications to, either an SNS topic or an email.
            When you create a subscriber, the value of Address can't contain line breaks.
      required:
      - SubscriptionType
      - Address
    CreateBudgetActionRequest:
      type: object
      properties:
        AccountId:
          type: string
        BudgetName:
          type: string
        NotificationType:
          type: string
          enum:
          - ACTUAL
          - FORECASTED
        ActionType:
          type: string
          enum:
          - APPLY_IAM_POLICY
          - APPLY_SCP_POLICY
          - RUN_SSM_DOCUMENTS
          description: The type of action. This defines the type of tasks that can be carried out by this action. This field
            also determines the format for definition.
        ActionThreshold:
          $ref: '#/components/schemas/ActionThreshold'
        Definition:
          $ref: '#/components/schemas/Definition'
        ExecutionRoleArn:
          type: string
          description: The role passed for action execution and reversion. Roles and actions must be in the same account.
        ApprovalModel:
          type: string
          enum:
          - AUTOMATIC
          - MANUAL
          description: This specifies if the action needs manual or automatic approval.
        Subscribers:
          type: array
          items:
            $ref: '#/components/schemas/BudgetsSubscriber'
        ResourceTags:
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
          description: An optional list of tags to associate with the specified budget action. Each tag consists of a key
            and a value, and each key must be unique for the resource.
      required:
      - AccountId
      - BudgetName
      - NotificationType
      - ActionType
      - ActionThreshold
      - Definition
      - ExecutionRoleArn
      - ApprovalModel
      - Subscribers
    CreateBudgetActionResponse:
      type: object
      properties:
        AccountId:
          type: string
        BudgetName:
          type: string
        ActionId:
          type: string
          description: A system-generated universally unique identifier (UUID) for the action.
      required:
      - AccountId
      - BudgetName
      - ActionId
    CreationLimitExceededException:
      type: object
      properties:
        Message:
          type: string
    Definition:
      type: object
      properties:
        IamActionDefinition:
          $ref: '#/components/schemas/IamActionDefinition'
        ScpActionDefinition:
          $ref: '#/components/schemas/ScpActionDefinition'
        SsmActionDefinition:
          $ref: '#/components/schemas/SsmActionDefinition'
    DeleteBudgetActionRequest:
      type: object
      properties:
        AccountId:
          type: string
        BudgetName:
          type: string
        ActionId:
          type: string
          description: A system-generated universally unique identifier (UUID) for the action.
      required:
      - AccountId
      - BudgetName
      - ActionId
    DeleteBudgetActionResponse:
      type: object
      properties:
        AccountId:
          type: string
        BudgetName:
          type: string
        Action:
          $ref: '#/components/schemas/Action'
      required:
      - AccountId
      - BudgetName
      - Action
    DescribeBudgetActionRequest:
      type: object
      properties:
        AccountId:
          type: string
        BudgetName:
          type: string
        ActionId:
          type: string
          description: A system-generated universally unique identifier (UUID) for the action.
      required:
      - AccountId
      - BudgetName
      - ActionId
    DescribeBudgetActionResponse:
      type: object
      properties:
        AccountId:
          type: string
        BudgetName:
          type: string
        Action:
          $ref: '#/components/schemas/Action'
      required:
      - AccountId
      - BudgetName
      - Action
    DescribeBudgetActionsForAccountRequest:
      type: object
      properties:
        AccountId:
          type: string
        MaxResults:
          type: integer
        NextToken:
          type: string
      required:
      - AccountId
    DescribeBudgetActionsForAccountResponse:
      type: object
      properties:
        Actions:
          type: array
          items:
            $ref: '#/components/schemas/Action'
          description: A list of the budget action resources information.
        NextToken:
          type: string
      required:
      - Actions
    DescribeBudgetActionsForBudgetRequest:
      type: object
      properties:
        AccountId:
          type: string
        BudgetName:
          type: string
        MaxResults:
          type: integer
        NextToken:
          type: string
      required:
      - AccountId
      - BudgetName
    DescribeBudgetActionsForBudgetResponse:
      type: object
      properties:
        Actions:
          type: array
          items:
            $ref: '#/components/schemas/Action'
          description: A list of the budget action resources information.
        NextToken:
          type: string
      required:
      - Actions
    DuplicateRecordException:
      type: object
      properties:
        Message:
          type: string
    ExecuteBudgetActionRequest:
      type: object
      properties:
        AccountId:
          type: string
        BudgetName:
          type: string
        ActionId:
          type: string
          description: A system-generated universally unique identifier (UUID) for the action.
        ExecutionType:
          type: string
          enum:
          - APPROVE_BUDGET_ACTION
          - RETRY_BUDGET_ACTION
          - REVERSE_BUDGET_ACTION
          - RESET_BUDGET_ACTION
          description: The type of execution.
      required:
      - AccountId
      - BudgetName
      - ActionId
      - ExecutionType
    ExecuteBudgetActionResponse:
      type: object
      properties:
        AccountId:
          type: string
        BudgetName:
          type: string
        ActionId:
          type: string
          description: A system-generated universally unique identifier (UUID) for the action.
        ExecutionType:
          type: string
          enum:
          - APPROVE_BUDGET_ACTION
          - RETRY_BUDGET_ACTION
          - REVERSE_BUDGET_ACTION
          - RESET_BUDGET_ACTION
          description: The type of execution.
      required:
      - AccountId
      - BudgetName
      - ActionId
      - ExecutionType
    IamActionDefinition:
      type: object
      properties:
        PolicyArn:
          type: string
          description: The Amazon Resource Name (ARN) of the policy to be attached.
        Roles:
          type: array
          items:
            type: string
          description: A list of roles to be attached. There must be at least one role.
        Groups:
          type: array
          items:
            type: string
          description: A list of groups to be attached. There must be at least one group.
        Users:
          type: array
          items:
            type: string
          description: A list of users to be attached. There must be at least one user.
      required:
      - PolicyArn
    InternalErrorException:
      type: object
      properties:
        Message:
          type: string
    InvalidNextTokenException:
      type: object
      properties:
        Message:
          type: string
    InvalidParameterException:
      type: object
      properties:
        Message:
          type: string
    NotFoundException:
      type: object
      properties:
        Message:
          type: string
    ResourceLockedException:
      type: object
      properties:
        Message:
          type: string
    ResourceTag:
      type: object
      properties:
        Key:
          type: string
          description: The key that's associated with the tag.
        Value:
          type: string
          description: The value that's associated with the tag.
      required:
      - Key
      - Value
    ScpActionDefinition:
      type: object
      properties:
        PolicyId:
          type: string
          description: The policy ID attached.
        TargetIds:
          type: array
          items:
            type: string
          description: A list of target IDs.
      required:
      - PolicyId
      - TargetIds
    ServiceQuotaExceededException:
      type: object
      properties:
        Message:
          type: string
    SsmActionDefinition:
      type: object
      properties:
        ActionSubType:
          type: string
          enum:
          - STOP_EC2_INSTANCES
          - STOP_RDS_INSTANCES
          description: The action subType.
        Region:
          type: string
          description: The Region to run the SSM document.
        InstanceIds:
          type: array
          items:
            type: string
          description: The EC2 and RDS instance IDs.
      required:
      - ActionSubType
      - Region
      - InstanceIds
    UpdateBudgetActionRequest:
      type: object
      properties:
        AccountId:
          type: string
        BudgetName:
          type: string
        ActionId:
          type: string
          description: A system-generated universally unique identifier (UUID) for the action.
        NotificationType:
          type: string
          enum:
          - ACTUAL
          - FORECASTED
        ActionThreshold:
          $ref: '#/components/schemas/ActionThreshold'
        Definition:
          $ref: '#/components/schemas/Definition'
        ExecutionRoleArn:
          type: string
          description: The role passed for action execution and reversion. Roles and actions must be in the same account.
        ApprovalModel:
          type: string
          enum:
          - AUTOMATIC
          - MANUAL
          description: This specifies if the action needs manual or automatic approval.
        Subscribers:
          type: array
          items:
            $ref: '#/components/schemas/BudgetsSubscriber'
      required:
      - AccountId
      - BudgetName
      - ActionId
    UpdateBudgetActionResponse:
      type: object
      properties:
        AccountId:
          type: string
        BudgetName:
          type: string
        OldAction:
          $ref: '#/components/schemas/Action'
        NewAction:
          $ref: '#/components/schemas/Action'
      required:
      - AccountId
      - BudgetName
      - OldAction
      - NewAction
x-provenance:
  method: harvested
  publisher: Amazon Web Services
  source: https://raw.githubusercontent.com/aws/api-models-aws/3cd98287b471c106254abd89279cc87308d38bfd/models/budgets/service/2016-10-20/budgets-2016-10-20.json
  note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)