Amazon Billing And Cost Management Forecasting API

Generate cost and usage forecasts

GitHub OpenAPI
Business capability
IT Financial Management BC-600.80

Operations 2

POST /#GetCostForecast Get Cost Forecast #
POST /#GetUsageForecast Get Usage Forecast #

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-forecasting-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-forecasting-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: AWS Cost Explorer Service Forecasting API
  version: '2017-10-25'
  description: Generated from AWS's published Smithy model for AWS Cost Explorer Service. 2 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://ce.{region}.amazonaws.com
  variables:
    region:
      default: us-east-1
security:
- sigv4: []
paths:
  /#GetCostForecast:
    post:
      operationId: GetCostForecast
      summary: Get Cost Forecast
      description: Retrieves a forecast for how much Amazon Web Services predicts that you will spend over the forecast time
        period that you select, based on your past costs.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/GetCostForecastResponse'
        '400':
          description: BillingViewHealthStatusException; DataUnavailableException; LimitExceededException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/BillingViewHealthStatusException'
        '404':
          description: ResourceNotFoundException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSInsightsIndexService.GetCostForecast
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/GetCostForecastRequest'
      tags:
      - Forecasting
  /#GetUsageForecast:
    post:
      operationId: GetUsageForecast
      summary: Get Usage Forecast
      description: Retrieves a forecast for how much Amazon Web Services predicts that you will use over the forecast time
        period that you select, based on your past usage.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/GetUsageForecastResponse'
        '400':
          description: BillingViewHealthStatusException; DataUnavailableException; LimitExceededException; UnresolvableUsageUnitException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/BillingViewHealthStatusException'
        '404':
          description: ResourceNotFoundException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSInsightsIndexService.GetUsageForecast
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/GetUsageForecastRequest'
      tags:
      - Forecasting
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: ce
  schemas:
    BillingViewHealthStatusException:
      type: object
      properties:
        Message:
          type: string
    CostCategoryValues:
      type: object
      properties:
        Key:
          type: string
        Values:
          type: array
          items:
            type: string
          description: The specific value of the cost category.
        MatchOptions:
          type: array
          items:
            type: string
            enum:
            - EQUALS
            - ABSENT
            - STARTS_WITH
            - ENDS_WITH
            - CONTAINS
            - CASE_SENSITIVE
            - CASE_INSENSITIVE
            - GREATER_THAN_OR_EQUAL
          description: The match options that you can use to filter your results. MatchOptions is only applicable for actions
            related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE.
    DateInterval:
      type: object
      properties:
        Start:
          type: string
          description: The beginning of the time period. The start date is inclusive. For example, if start is 2017-01-01,
            Amazon Web Services retrieves cost and usage data starting at 2017-01-01 up to the end date. The start date must
            be equal to or no later than the current date to avoid a validation error.
        End:
          type: string
          description: The end of the time period. The end date is exclusive. For example, if end is 2017-05-01, Amazon Web
            Services retrieves cost and usage data from the start date up to, but not including, 2017-05-01.
      required:
      - Start
      - End
    DimensionValues:
      type: object
      properties:
        Key:
          type: string
          enum:
          - AZ
          - INSTANCE_TYPE
          - LINKED_ACCOUNT
          - PAYER_ACCOUNT
          - LINKED_ACCOUNT_NAME
          - OPERATION
          - PURCHASE_TYPE
          - REGION
          - SERVICE
          - SERVICE_CODE
          - USAGE_TYPE
          - USAGE_TYPE_GROUP
          - RECORD_TYPE
          - OPERATING_SYSTEM
          - TENANCY
          - SCOPE
          - PLATFORM
          - SUBSCRIPTION_ID
          - LEGAL_ENTITY_NAME
          - DEPLOYMENT_OPTION
          - DATABASE_ENGINE
          - CACHE_ENGINE
          - INSTANCE_TYPE_FAMILY
          - BILLING_ENTITY
          - RESERVATION_ID
          - RESOURCE_ID
          - RIGHTSIZING_TYPE
          - SAVINGS_PLANS_TYPE
          - SAVINGS_PLAN_ARN
          - PAYMENT_OPTION
          - AGREEMENT_END_DATE_TIME_AFTER
          - AGREEMENT_END_DATE_TIME_BEFORE
          - INVOICING_ENTITY
          - ANOMALY_TOTAL_IMPACT_ABSOLUTE
          - ANOMALY_TOTAL_IMPACT_PERCENTAGE
          - PRODUCT_ATTRIBUTE
          description: The names of the metadata types that you can use to filter and group your results. For example, AZ
            returns a list of Availability Zones. Not all dimensions are supported in each API. Refer to the documentation
            for each specific API to see what is supported. LINKED_ACCOUNT_NAME and SERVICE_CODE can only be used in CostCategoryRule.
            ANOMALY_TOTAL_IMPACT_ABSOLUTE and ANOMALY_TOTAL_IMPACT_PERCENTAGE can only be used in AnomalySubscriptions. Use
            PRODUCT_ATTRIBUTE only as the Dimension in GetDimensionValues. To filter or group by product attributes, use the
            ProductAttributes field of Expression or t
        Values:
          type: array
          items:
            type: string
          description: The metadata values that you can use to filter and group your results. You can use GetDimensionValues
            to find specific values.
        MatchOptions:
          type: array
          items:
            type: string
            enum:
            - EQUALS
            - ABSENT
            - STARTS_WITH
            - ENDS_WITH
            - CONTAINS
            - CASE_SENSITIVE
            - CASE_INSENSITIVE
            - GREATER_THAN_OR_EQUAL
          description: The match options that you can use to filter your results. MatchOptions is only applicable for actions
            related to cost category and Anomaly Subscriptions. Refer to the documentation for each specific API to see what
            is supported. The default values for MatchOptions are EQUALS and CASE_SENSITIVE.
    Expression:
      type: object
      properties:
        Or:
          type: array
          items:
            $ref: '#/components/schemas/Expression'
          description: Return results that match either Dimension object.
        And:
          type: array
          items:
            $ref: '#/components/schemas/Expression'
          description: Return results that match both Dimension objects.
        Not:
          $ref: '#/components/schemas/Expression'
        Dimensions:
          $ref: '#/components/schemas/DimensionValues'
        Tags:
          $ref: '#/components/schemas/TagValues'
        CostCategories:
          $ref: '#/components/schemas/CostCategoryValues'
        ProductAttributes:
          $ref: '#/components/schemas/ProductAttributeValues'
    ForecastResult:
      type: object
      properties:
        TimePeriod:
          $ref: '#/components/schemas/DateInterval'
        MeanValue:
          type: string
          description: The mean value of the forecast.
        PredictionIntervalLowerBound:
          type: string
          description: The lower limit for the prediction interval.
        PredictionIntervalUpperBound:
          type: string
          description: The upper limit for the prediction interval.
    GetCostForecastRequest:
      type: object
      properties:
        TimePeriod:
          $ref: '#/components/schemas/DateInterval'
        Metric:
          type: string
          enum:
          - BLENDED_COST
          - UNBLENDED_COST
          - AMORTIZED_COST
          - NET_UNBLENDED_COST
          - NET_AMORTIZED_COST
          - USAGE_QUANTITY
          - NORMALIZED_USAGE_AMOUNT
          description: 'Which metric Cost Explorer uses to create your forecast. For more information about blended and unblended
            rates, see Why does the "blended" annotation appear on some line items in my bill?. Valid values for a GetCostForecast
            call are the following: AMORTIZED_COST BLENDED_COST NET_AMORTIZED_COST NET_UNBLENDED_COST UNBLENDED_COST'
        Granularity:
          type: string
          enum:
          - DAILY
          - MONTHLY
          - HOURLY
          description: How granular you want the forecast to be. You can get 3 months of DAILY forecasts or 18 months of MONTHLY
            forecasts. The GetCostForecast operation supports only DAILY and MONTHLY granularities.
        Filter:
          $ref: '#/components/schemas/Expression'
        BillingViewArn:
          type: string
          description: The Amazon Resource Name (ARN) that uniquely identifies a specific billing view. The ARN is used to
            specify which particular billing view you want to interact with or retrieve information from when making API calls
            related to Amazon Web Services Billing and Cost Management features. The BillingViewArn can be retrieved by calling
            the ListBillingViews API.
        PredictionIntervalLevel:
          type: integer
          description: Cost Explorer always returns the mean forecast as a single point. You can request a prediction interval
            around the mean by specifying a confidence level. The higher the confidence level, the more confident Cost Explorer
            is about the actual value falling in the prediction interval. Higher confidence levels result in wider prediction
            intervals.
      required:
      - TimePeriod
      - Metric
      - Granularity
    GetCostForecastResponse:
      type: object
      properties:
        Total:
          $ref: '#/components/schemas/MetricValue'
        ForecastResultsByTime:
          type: array
          items:
            $ref: '#/components/schemas/ForecastResult'
          description: The forecasts for your query, in order. For DAILY forecasts, this is a list of days. For MONTHLY forecasts,
            this is a list of months.
    GetUsageForecastRequest:
      type: object
      properties:
        TimePeriod:
          $ref: '#/components/schemas/DateInterval'
        Metric:
          type: string
          enum:
          - BLENDED_COST
          - UNBLENDED_COST
          - AMORTIZED_COST
          - NET_UNBLENDED_COST
          - NET_AMORTIZED_COST
          - USAGE_QUANTITY
          - NORMALIZED_USAGE_AMOUNT
          description: 'Which metric Cost Explorer uses to create your forecast. Valid values for a GetUsageForecast call
            are the following: USAGE_QUANTITY NORMALIZED_USAGE_AMOUNT'
        Granularity:
          type: string
          enum:
          - DAILY
          - MONTHLY
          - HOURLY
          description: How granular you want the forecast to be. You can get 3 months of DAILY forecasts or 18 months of MONTHLY
            forecasts. The GetUsageForecast operation supports only DAILY and MONTHLY granularities.
        Filter:
          $ref: '#/components/schemas/Expression'
        BillingViewArn:
          type: string
          description: The Amazon Resource Name (ARN) that uniquely identifies a specific billing view. The ARN is used to
            specify which particular billing view you want to interact with or retrieve information from when making API calls
            related to Amazon Web Services Billing and Cost Management features. The BillingViewArn can be retrieved by calling
            the ListBillingViews API.
        PredictionIntervalLevel:
          type: integer
          description: Amazon Web Services Cost Explorer always returns the mean forecast as a single point. You can request
            a prediction interval around the mean by specifying a confidence level. The higher the confidence level, the more
            confident Cost Explorer is about the actual value falling in the prediction interval. Higher confidence levels
            result in wider prediction intervals.
      required:
      - TimePeriod
      - Metric
      - Granularity
    GetUsageForecastResponse:
      type: object
      properties:
        Total:
          $ref: '#/components/schemas/MetricValue'
        ForecastResultsByTime:
          type: array
          items:
            $ref: '#/components/schemas/ForecastResult'
          description: The forecasts for your query, in order. For DAILY forecasts, this is a list of days. For MONTHLY forecasts,
            this is a list of months.
    MetricValue:
      type: object
      properties:
        Amount:
          type: string
          description: The actual number that represents the metric.
        Unit:
          type: string
          description: The unit that the metric is given in.
    ProductAttributeValues:
      type: object
      properties:
        Key:
          type: string
          description: 'The name of the product attribute, such as model. The keys that are available depend on the service.
            For the keys of each supported service, see ProductAttributeValues . Keys are case-sensitive. A key that doesn''t
            exist doesn''t return an error: EQUALS matches no costs, and ABSENT matches all costs of supported services.'
        Values:
          type: array
          items:
            type: string
          description: The specific values of the product attribute, such as Claude Sonnet 5 for the model key. Values are
            matched exactly, including case. To list the values of a key, use GetDimensionValues with Dimension set to PRODUCT_ATTRIBUTE
            and DimensionKey set to the key. To match costs that have no value for the key, set MatchOptions to ABSENT and
            omit Values. Otherwise, Values is required.
        MatchOptions:
          type: array
          items:
            type: string
            enum:
            - EQUALS
            - ABSENT
            - STARTS_WITH
            - ENDS_WITH
            - CONTAINS
            - CASE_SENSITIVE
            - CASE_INSENSITIVE
            - GREATER_THAN_OR_EQUAL
          description: 'The match options that you can use to filter your results. Valid values: EQUALS - Matches the values
            that you specify. ABSENT - Matches costs that have no value for the key. Omit Values. CASE_SENSITIVE - Use only
            with EQUALS. Values are always matched case-sensitively. Default values are EQUALS and CASE_SENSITIVE.'
      required:
      - Key
    ResourceNotFoundException:
      type: object
      properties:
        Message:
          type: string
        ResourceName:
          type: string
    TagValues:
      type: object
      properties:
        Key:
          type: string
          description: The key for the tag.
        Values:
          type: array
          items:
            type: string
          description: The specific value of the tag.
        MatchOptions:
          type: array
          items:
            type: string
            enum:
            - EQUALS
            - ABSENT
            - STARTS_WITH
            - ENDS_WITH
            - CONTAINS
            - CASE_SENSITIVE
            - CASE_INSENSITIVE
            - GREATER_THAN_OR_EQUAL
          description: The match options that you can use to filter your results. MatchOptions is only applicable for actions
            related to cost category. The default values for MatchOptions are EQUALS and CASE_SENSITIVE.
x-provenance:
  method: harvested
  publisher: Amazon Web Services
  source: https://raw.githubusercontent.com/aws/api-models-aws/3cd98287b471c106254abd89279cc87308d38bfd/models/cost-explorer/service/2017-10-25/cost-explorer-2017-10-25.json
  note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)