AWS Billing and Cost Management Pricing Calculator

2025/11/19 - AWS Billing and Cost Management Pricing Calculator - 7 updated api methods

Changes  Add GroupSharingPreference, CostCategoryGroupSharingPreferenceArn, and CostCategoryGroupSharingPreferenceEffectiveDate to Bill Estimate. Add GroupSharingPreference and CostCategoryGroupSharingPreferenceArn to Bill Scenario.

CreateBillEstimate (updated) Link ¶
Changes (response)
{'costCategoryGroupSharingPreferenceArn': 'string',
 'costCategoryGroupSharingPreferenceEffectiveDate': 'timestamp',
 'groupSharingPreference': 'OPEN | PRIORITIZED | RESTRICTED'}

Create a Bill estimate from a Bill scenario. In the Bill scenario you can model usage addition, usage changes, and usage removal. You can also model commitment addition and commitment removal. After all changes in a Bill scenario is made satisfactorily, you can call this API with a Bill scenario ID to generate the Bill estimate. Bill estimate calculates the pre-tax cost for your consolidated billing family, incorporating all modeled usage and commitments alongside existing usage and commitments from your most recent completed anniversary bill, with any applicable discounts applied.

See also: AWS API Documentation

Request Syntax

client.create_bill_estimate(
    billScenarioId='string',
    name='string',
    clientToken='string',
    tags={
        'string': 'string'
    }
)
type billScenarioId:

string

param billScenarioId:

[REQUIRED]

The ID of the Bill Scenario for which you want to create a Bill estimate.

type name:

string

param name:

[REQUIRED]

The name of the Bill estimate that will be created. Names must be unique for an account.

type clientToken:

string

param clientToken:

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

This field is autopopulated if not provided.

type tags:

dict

param tags:

An optional list of tags to associate with the specified BillEstimate. You can use resource tags to control access to your BillEstimate using IAM policies. Each tag consists of a key and a value, and each key must be unique for the resource. The following restrictions apply to resource tags:

  • Although the maximum number of array members is 200, you can assign a maximum of 50 user-tags to one resource. The remaining are reserved for Amazon Web Services.

  • The maximum length of a key is 128 characters.

  • The maximum length of a value is 256 characters.

  • Keys and values can only contain alphanumeric characters, spaces, and any of the following: _.:/=+@-.

  • Keys and values are case sensitive.

  • Keys and values are trimmed for any leading or trailing whitespaces.

  • Don't use aws: as a prefix for your keys. This prefix is reserved for Amazon Web Services.

  • (string) --

    • (string) --

rtype:

dict

returns:

Response Syntax

{
    'id': 'string',
    'name': 'string',
    'status': 'IN_PROGRESS'|'COMPLETE'|'FAILED',
    'failureMessage': 'string',
    'billInterval': {
        'start': datetime(2015, 1, 1),
        'end': datetime(2015, 1, 1)
    },
    'costSummary': {
        'totalCostDifference': {
            'historicalCost': {
                'amount': 123.0,
                'currency': 'USD'
            },
            'estimatedCost': {
                'amount': 123.0,
                'currency': 'USD'
            }
        },
        'serviceCostDifferences': {
            'string': {
                'historicalCost': {
                    'amount': 123.0,
                    'currency': 'USD'
                },
                'estimatedCost': {
                    'amount': 123.0,
                    'currency': 'USD'
                }
            }
        }
    },
    'createdAt': datetime(2015, 1, 1),
    'expiresAt': datetime(2015, 1, 1),
    'groupSharingPreference': 'OPEN'|'PRIORITIZED'|'RESTRICTED',
    'costCategoryGroupSharingPreferenceArn': 'string',
    'costCategoryGroupSharingPreferenceEffectiveDate': datetime(2015, 1, 1)
}

Response Structure

  • (dict) --

    • id (string) --

      The unique identifier of your newly created Bill estimate.

    • name (string) --

      The name of your newly created Bill estimate.

    • status (string) --

      The status of your newly created Bill estimate. Bill estimate creation can take anywhere between 8 to 12 hours. The status will allow you to identify when the Bill estimate is complete or has failed.

    • failureMessage (string) --

      This attribute provides the reason if a Bill estimate result generation fails.

    • billInterval (dict) --

      The bill month start and end timestamp that was used to create the Bill estimate. This is set to the last complete anniversary bill month start and end timestamp.

      • start (datetime) --

        The start date and time of the interval.

      • end (datetime) --

        The end date and time of the interval.

    • costSummary (dict) --

      Returns summary-level cost information once a Bill estimate is successfully generated. This summary includes: 1) the total cost difference, showing the pre-tax cost change for the consolidated billing family between the completed anniversary bill and the estimated bill, and 2) total cost differences per service, detailing the pre-tax cost of each service, comparing the completed anniversary bill to the estimated bill on a per-service basis.

      • totalCostDifference (dict) --

        The total difference in cost between the estimated and historical costs.

        • historicalCost (dict) --

          The historical cost amount.

          • amount (float) --

            The numeric value of the cost.

          • currency (string) --

            The currency code for the cost amount.

        • estimatedCost (dict) --

          The estimated cost amount.

          • amount (float) --

            The numeric value of the cost.

          • currency (string) --

            The currency code for the cost amount.

      • serviceCostDifferences (dict) --

        A breakdown of cost differences by Amazon Web Services service.

        • (string) --

          • (dict) --

            Represents the difference between historical and estimated costs.

            • historicalCost (dict) --

              The historical cost amount.

              • amount (float) --

                The numeric value of the cost.

              • currency (string) --

                The currency code for the cost amount.

            • estimatedCost (dict) --

              The estimated cost amount.

              • amount (float) --

                The numeric value of the cost.

              • currency (string) --

                The currency code for the cost amount.

    • createdAt (datetime) --

      The timestamp of when the Bill estimate create process was started (not when it successfully completed or failed).

    • expiresAt (datetime) --

      The timestamp of when the Bill estimate will expire. A Bill estimate becomes inaccessible after expiration.

    • groupSharingPreference (string) --

      The setting for the reserved instance and savings plan group sharing used in this estimate.

    • costCategoryGroupSharingPreferenceArn (string) --

      The arn of the cost category used in the reserved and prioritized group sharing.

    • costCategoryGroupSharingPreferenceEffectiveDate (datetime) --

      Timestamp of the effective date of the cost category used in the group sharing settings.

CreateBillScenario (updated) Link ¶
Changes (both)
{'costCategoryGroupSharingPreferenceArn': 'string',
 'groupSharingPreference': 'OPEN | PRIORITIZED | RESTRICTED'}

Creates a new bill scenario to model potential changes to Amazon Web Services usage and costs.

See also: AWS API Documentation

Request Syntax

client.create_bill_scenario(
    name='string',
    clientToken='string',
    tags={
        'string': 'string'
    },
    groupSharingPreference='OPEN'|'PRIORITIZED'|'RESTRICTED',
    costCategoryGroupSharingPreferenceArn='string'
)
type name:

string

param name:

[REQUIRED]

A descriptive name for the bill scenario.

type clientToken:

string

param clientToken:

A unique, case-sensitive identifier to ensure idempotency of the request.

This field is autopopulated if not provided.

type tags:

dict

param tags:

The tags to apply to the bill scenario.

  • (string) --

    • (string) --

type groupSharingPreference:

string

param groupSharingPreference:

The setting for the reserved instance and savings plan group sharing used in this estimate.

type costCategoryGroupSharingPreferenceArn:

string

param costCategoryGroupSharingPreferenceArn:

The arn of the cost category used in the reserved and prioritized group sharing.

rtype:

dict

returns:

Response Syntax

{
    'id': 'string',
    'name': 'string',
    'billInterval': {
        'start': datetime(2015, 1, 1),
        'end': datetime(2015, 1, 1)
    },
    'status': 'READY'|'LOCKED'|'FAILED'|'STALE',
    'createdAt': datetime(2015, 1, 1),
    'expiresAt': datetime(2015, 1, 1),
    'failureMessage': 'string',
    'groupSharingPreference': 'OPEN'|'PRIORITIZED'|'RESTRICTED',
    'costCategoryGroupSharingPreferenceArn': 'string'
}

Response Structure

  • (dict) --

    • id (string) --

      The unique identifier for the created bill scenario.

    • name (string) --

      The name of the created bill scenario.

    • billInterval (dict) --

      The time period covered by the bill scenario.

      • start (datetime) --

        The start date and time of the interval.

      • end (datetime) --

        The end date and time of the interval.

    • status (string) --

      The current status of the bill scenario.

    • createdAt (datetime) --

      The timestamp when the bill scenario was created.

    • expiresAt (datetime) --

      The timestamp when the bill scenario will expire.

    • failureMessage (string) --

      An error message if the bill scenario creation failed.

    • groupSharingPreference (string) --

      The setting for the reserved instance and savings plan group sharing used in this estimate.

    • costCategoryGroupSharingPreferenceArn (string) --

      The arn of the cost category used in the reserved and prioritized group sharing.

GetBillEstimate (updated) Link ¶
Changes (response)
{'costCategoryGroupSharingPreferenceArn': 'string',
 'costCategoryGroupSharingPreferenceEffectiveDate': 'timestamp',
 'groupSharingPreference': 'OPEN | PRIORITIZED | RESTRICTED'}

Retrieves details of a specific bill estimate.

See also: AWS API Documentation

Request Syntax

client.get_bill_estimate(
    identifier='string'
)
type identifier:

string

param identifier:

[REQUIRED]

The unique identifier of the bill estimate to retrieve.

rtype:

dict

returns:

Response Syntax

{
    'id': 'string',
    'name': 'string',
    'status': 'IN_PROGRESS'|'COMPLETE'|'FAILED',
    'failureMessage': 'string',
    'billInterval': {
        'start': datetime(2015, 1, 1),
        'end': datetime(2015, 1, 1)
    },
    'costSummary': {
        'totalCostDifference': {
            'historicalCost': {
                'amount': 123.0,
                'currency': 'USD'
            },
            'estimatedCost': {
                'amount': 123.0,
                'currency': 'USD'
            }
        },
        'serviceCostDifferences': {
            'string': {
                'historicalCost': {
                    'amount': 123.0,
                    'currency': 'USD'
                },
                'estimatedCost': {
                    'amount': 123.0,
                    'currency': 'USD'
                }
            }
        }
    },
    'createdAt': datetime(2015, 1, 1),
    'expiresAt': datetime(2015, 1, 1),
    'groupSharingPreference': 'OPEN'|'PRIORITIZED'|'RESTRICTED',
    'costCategoryGroupSharingPreferenceArn': 'string',
    'costCategoryGroupSharingPreferenceEffectiveDate': datetime(2015, 1, 1)
}

Response Structure

  • (dict) --

    • id (string) --

      The unique identifier of the retrieved bill estimate.

    • name (string) --

      The name of the retrieved bill estimate.

    • status (string) --

      The current status of the bill estimate.

    • failureMessage (string) --

      An error message if the bill estimate retrieval failed.

    • billInterval (dict) --

      The time period covered by the bill estimate.

      • start (datetime) --

        The start date and time of the interval.

      • end (datetime) --

        The end date and time of the interval.

    • costSummary (dict) --

      A summary of the estimated costs.

      • totalCostDifference (dict) --

        The total difference in cost between the estimated and historical costs.

        • historicalCost (dict) --

          The historical cost amount.

          • amount (float) --

            The numeric value of the cost.

          • currency (string) --

            The currency code for the cost amount.

        • estimatedCost (dict) --

          The estimated cost amount.

          • amount (float) --

            The numeric value of the cost.

          • currency (string) --

            The currency code for the cost amount.

      • serviceCostDifferences (dict) --

        A breakdown of cost differences by Amazon Web Services service.

        • (string) --

          • (dict) --

            Represents the difference between historical and estimated costs.

            • historicalCost (dict) --

              The historical cost amount.

              • amount (float) --

                The numeric value of the cost.

              • currency (string) --

                The currency code for the cost amount.

            • estimatedCost (dict) --

              The estimated cost amount.

              • amount (float) --

                The numeric value of the cost.

              • currency (string) --

                The currency code for the cost amount.

    • createdAt (datetime) --

      The timestamp when the bill estimate was created.

    • expiresAt (datetime) --

      The timestamp when the bill estimate will expire.

    • groupSharingPreference (string) --

      The setting for the reserved instance and savings plan group sharing used in this estimate.

    • costCategoryGroupSharingPreferenceArn (string) --

      The arn of the cost category used in the reserved and prioritized group sharing.

    • costCategoryGroupSharingPreferenceEffectiveDate (datetime) --

      Timestamp of the effective date of the cost category used in the group sharing settings.

GetBillScenario (updated) Link ¶
Changes (response)
{'costCategoryGroupSharingPreferenceArn': 'string',
 'groupSharingPreference': 'OPEN | PRIORITIZED | RESTRICTED'}

Retrieves details of a specific bill scenario.

See also: AWS API Documentation

Request Syntax

client.get_bill_scenario(
    identifier='string'
)
type identifier:

string

param identifier:

[REQUIRED]

The unique identifier of the bill scenario to retrieve.

rtype:

dict

returns:

Response Syntax

{
    'id': 'string',
    'name': 'string',
    'billInterval': {
        'start': datetime(2015, 1, 1),
        'end': datetime(2015, 1, 1)
    },
    'status': 'READY'|'LOCKED'|'FAILED'|'STALE',
    'createdAt': datetime(2015, 1, 1),
    'expiresAt': datetime(2015, 1, 1),
    'failureMessage': 'string',
    'groupSharingPreference': 'OPEN'|'PRIORITIZED'|'RESTRICTED',
    'costCategoryGroupSharingPreferenceArn': 'string'
}

Response Structure

  • (dict) --

    • id (string) --

      The unique identifier of the retrieved bill scenario.

    • name (string) --

      The name of the retrieved bill scenario.

    • billInterval (dict) --

      The time period covered by the bill scenario.

      • start (datetime) --

        The start date and time of the interval.

      • end (datetime) --

        The end date and time of the interval.

    • status (string) --

      The current status of the bill scenario.

    • createdAt (datetime) --

      The timestamp when the bill scenario was created.

    • expiresAt (datetime) --

      The timestamp when the bill scenario will expire.

    • failureMessage (string) --

      An error message if the bill scenario retrieval failed.

    • groupSharingPreference (string) --

      The setting for the reserved instance and savings plan group sharing used in this estimate.

    • costCategoryGroupSharingPreferenceArn (string) --

      The arn of the cost category used in the reserved and prioritized group sharing.

ListBillScenarios (updated) Link ¶
Changes (request, response)
Request
{'filters': {'name': {'COST_CATEGORY_ARN', 'GROUP_SHARING_PREFERENCE'}}}
Response
{'items': {'costCategoryGroupSharingPreferenceArn': 'string',
           'groupSharingPreference': 'OPEN | PRIORITIZED | RESTRICTED'}}

Lists all bill scenarios for the account.

See also: AWS API Documentation

Request Syntax

client.list_bill_scenarios(
    filters=[
        {
            'name': 'STATUS'|'NAME'|'GROUP_SHARING_PREFERENCE'|'COST_CATEGORY_ARN',
            'values': [
                'string',
            ],
            'matchOption': 'EQUALS'|'STARTS_WITH'|'CONTAINS'
        },
    ],
    createdAtFilter={
        'afterTimestamp': datetime(2015, 1, 1),
        'beforeTimestamp': datetime(2015, 1, 1)
    },
    expiresAtFilter={
        'afterTimestamp': datetime(2015, 1, 1),
        'beforeTimestamp': datetime(2015, 1, 1)
    },
    nextToken='string',
    maxResults=123
)
type filters:

list

param filters:

Filters to apply to the list of bill scenarios.

  • (dict) --

    Represents a filter for listing bill scenarios.

    • name (string) -- [REQUIRED]

      The name of the filter attribute.

    • values (list) -- [REQUIRED]

      The values to filter by.

      • (string) --

    • matchOption (string) --

      The match option for the filter (e.g., equals, contains).

type createdAtFilter:

dict

param createdAtFilter:

Filter bill scenarios based on the creation date.

  • afterTimestamp (datetime) --

    Include results after this timestamp.

  • beforeTimestamp (datetime) --

    Include results before this timestamp.

type expiresAtFilter:

dict

param expiresAtFilter:

Filter bill scenarios based on the expiration date.

  • afterTimestamp (datetime) --

    Include results after this timestamp.

  • beforeTimestamp (datetime) --

    Include results before this timestamp.

type nextToken:

string

param nextToken:

A token to retrieve the next page of results.

type maxResults:

integer

param maxResults:

The maximum number of results to return per page.

rtype:

dict

returns:

Response Syntax

{
    'items': [
        {
            'id': 'string',
            'name': 'string',
            'billInterval': {
                'start': datetime(2015, 1, 1),
                'end': datetime(2015, 1, 1)
            },
            'status': 'READY'|'LOCKED'|'FAILED'|'STALE',
            'createdAt': datetime(2015, 1, 1),
            'expiresAt': datetime(2015, 1, 1),
            'failureMessage': 'string',
            'groupSharingPreference': 'OPEN'|'PRIORITIZED'|'RESTRICTED',
            'costCategoryGroupSharingPreferenceArn': 'string'
        },
    ],
    'nextToken': 'string'
}

Response Structure

  • (dict) --

    • items (list) --

      The list of bill scenarios for the account.

      • (dict) --

        Provides a summary of a bill scenario.

        • id (string) --

          The unique identifier of the bill scenario.

        • name (string) --

          The name of the bill scenario.

        • billInterval (dict) --

          The time period covered by the bill scenario.

          • start (datetime) --

            The start date and time of the interval.

          • end (datetime) --

            The end date and time of the interval.

        • status (string) --

          The current status of the bill scenario.

        • createdAt (datetime) --

          The timestamp when the bill scenario was created.

        • expiresAt (datetime) --

          The timestamp when the bill scenario will expire.

        • failureMessage (string) --

          An error message if the bill scenario creation or processing failed.

        • groupSharingPreference (string) --

          The setting for the reserved instance and savings plan group sharing used in this estimate.

        • costCategoryGroupSharingPreferenceArn (string) --

          The arn of the cost category used in the reserved and prioritized group sharing.

    • nextToken (string) --

      A token to retrieve the next page of results, if any.

UpdateBillEstimate (updated) Link ¶
Changes (response)
{'costCategoryGroupSharingPreferenceArn': 'string',
 'costCategoryGroupSharingPreferenceEffectiveDate': 'timestamp',
 'groupSharingPreference': 'OPEN | PRIORITIZED | RESTRICTED'}

Updates an existing bill estimate.

See also: AWS API Documentation

Request Syntax

client.update_bill_estimate(
    identifier='string',
    name='string',
    expiresAt=datetime(2015, 1, 1)
)
type identifier:

string

param identifier:

[REQUIRED]

The unique identifier of the bill estimate to update.

type name:

string

param name:

The new name for the bill estimate.

type expiresAt:

datetime

param expiresAt:

The new expiration date for the bill estimate.

rtype:

dict

returns:

Response Syntax

{
    'id': 'string',
    'name': 'string',
    'status': 'IN_PROGRESS'|'COMPLETE'|'FAILED',
    'failureMessage': 'string',
    'billInterval': {
        'start': datetime(2015, 1, 1),
        'end': datetime(2015, 1, 1)
    },
    'costSummary': {
        'totalCostDifference': {
            'historicalCost': {
                'amount': 123.0,
                'currency': 'USD'
            },
            'estimatedCost': {
                'amount': 123.0,
                'currency': 'USD'
            }
        },
        'serviceCostDifferences': {
            'string': {
                'historicalCost': {
                    'amount': 123.0,
                    'currency': 'USD'
                },
                'estimatedCost': {
                    'amount': 123.0,
                    'currency': 'USD'
                }
            }
        }
    },
    'createdAt': datetime(2015, 1, 1),
    'expiresAt': datetime(2015, 1, 1),
    'groupSharingPreference': 'OPEN'|'PRIORITIZED'|'RESTRICTED',
    'costCategoryGroupSharingPreferenceArn': 'string',
    'costCategoryGroupSharingPreferenceEffectiveDate': datetime(2015, 1, 1)
}

Response Structure

  • (dict) --

    • id (string) --

      The unique identifier of the updated bill estimate.

    • name (string) --

      The updated name of the bill estimate.

    • status (string) --

      The current status of the updated bill estimate.

    • failureMessage (string) --

      An error message if the bill estimate update failed.

    • billInterval (dict) --

      The time period covered by the updated bill estimate.

      • start (datetime) --

        The start date and time of the interval.

      • end (datetime) --

        The end date and time of the interval.

    • costSummary (dict) --

      A summary of the updated estimated costs.

      • totalCostDifference (dict) --

        The total difference in cost between the estimated and historical costs.

        • historicalCost (dict) --

          The historical cost amount.

          • amount (float) --

            The numeric value of the cost.

          • currency (string) --

            The currency code for the cost amount.

        • estimatedCost (dict) --

          The estimated cost amount.

          • amount (float) --

            The numeric value of the cost.

          • currency (string) --

            The currency code for the cost amount.

      • serviceCostDifferences (dict) --

        A breakdown of cost differences by Amazon Web Services service.

        • (string) --

          • (dict) --

            Represents the difference between historical and estimated costs.

            • historicalCost (dict) --

              The historical cost amount.

              • amount (float) --

                The numeric value of the cost.

              • currency (string) --

                The currency code for the cost amount.

            • estimatedCost (dict) --

              The estimated cost amount.

              • amount (float) --

                The numeric value of the cost.

              • currency (string) --

                The currency code for the cost amount.

    • createdAt (datetime) --

      The timestamp when the bill estimate was originally created.

    • expiresAt (datetime) --

      The updated expiration timestamp for the bill estimate.

    • groupSharingPreference (string) --

      The setting for the reserved instance and savings plan group sharing used in this estimate.

    • costCategoryGroupSharingPreferenceArn (string) --

      The arn of the cost category used in the reserved and prioritized group sharing.

    • costCategoryGroupSharingPreferenceEffectiveDate (datetime) --

      Timestamp of the effective date of the cost category used in the group sharing settings.

UpdateBillScenario (updated) Link ¶
Changes (both)
{'costCategoryGroupSharingPreferenceArn': 'string',
 'groupSharingPreference': 'OPEN | PRIORITIZED | RESTRICTED'}

Updates an existing bill scenario.

See also: AWS API Documentation

Request Syntax

client.update_bill_scenario(
    identifier='string',
    name='string',
    expiresAt=datetime(2015, 1, 1),
    groupSharingPreference='OPEN'|'PRIORITIZED'|'RESTRICTED',
    costCategoryGroupSharingPreferenceArn='string'
)
type identifier:

string

param identifier:

[REQUIRED]

The unique identifier of the bill scenario to update.

type name:

string

param name:

The new name for the bill scenario.

type expiresAt:

datetime

param expiresAt:

The new expiration date for the bill scenario.

type groupSharingPreference:

string

param groupSharingPreference:

The setting for the reserved instance and savings plan group sharing used in this estimate.

type costCategoryGroupSharingPreferenceArn:

string

param costCategoryGroupSharingPreferenceArn:

The arn of the cost category used in the reserved and prioritized group sharing.

rtype:

dict

returns:

Response Syntax

{
    'id': 'string',
    'name': 'string',
    'billInterval': {
        'start': datetime(2015, 1, 1),
        'end': datetime(2015, 1, 1)
    },
    'status': 'READY'|'LOCKED'|'FAILED'|'STALE',
    'createdAt': datetime(2015, 1, 1),
    'expiresAt': datetime(2015, 1, 1),
    'failureMessage': 'string',
    'groupSharingPreference': 'OPEN'|'PRIORITIZED'|'RESTRICTED',
    'costCategoryGroupSharingPreferenceArn': 'string'
}

Response Structure

  • (dict) --

    • id (string) --

      The unique identifier of the updated bill scenario.

    • name (string) --

      The updated name of the bill scenario.

    • billInterval (dict) --

      The time period covered by the updated bill scenario.

      • start (datetime) --

        The start date and time of the interval.

      • end (datetime) --

        The end date and time of the interval.

    • status (string) --

      The current status of the updated bill scenario.

    • createdAt (datetime) --

      The timestamp when the bill scenario was originally created.

    • expiresAt (datetime) --

      The updated expiration timestamp for the bill scenario.

    • failureMessage (string) --

      An error message if the bill scenario update failed.

    • groupSharingPreference (string) --

      The setting for the reserved instance and savings plan group sharing used in this estimate.

    • costCategoryGroupSharingPreferenceArn (string) --

      The arn of the cost category used in the reserved and prioritized group sharing.