New – Programmatic Access to AWS Billing Data
You can now access your AWS billing data programmatically. This has been a much-requested feature and I’m confident that it will be put to good use right away.
To get started, all you need to do is to provide an Amazon S3 bucket for your billing data, give the AWS Billing system permission to write to it, and visit the Billing Preferences page to enable programmatic access:
Once you have done this, we will generate an Estimated bill several times per day and store it in the bucket, where you can download and process it as desired. We will also generate a Final bill at the conclusion of each billing period.
Billing Reports are generated as CSV files and include plenty of details:
Here is a list of the fields (read the documentation for more information):
- Invoice ID
- Payer Account Name and ID
- Linked Account Name and ID (for Consolidated Billing)
- Record Type
- Record ID
- Billing Period Start and End Dates
- Invoice Date
- Taxation Address
- Payer Purchase Order Number
- Product Code
- Product Name
- Seller of Record
- Usage Type
- Rate ID
- Item Description
- Usage Start and Usage End Date and Time
- Usage Quantity
- Blended Rate (for Consolidated Billing)
- Currency Code
- Cost Before Tax
- Tax Amount
- Tax Type
- Total Cost
As you can see above, several of the fields make sense only in the context of Consolidated Billing. This option, which is used by many of our enterprise customers, allows payment for a number of AWS accounts to roll up to a designated payer account (see my blog post for more info), while also making the AWS volume tiers easier to reach.
The reports are stored in the S3 bucket of your choice, and you are responsible for all storage costs. You can delete the reports after you process them, and you may want to use S3’s Object Expiration feature to keep things under control.
I’m really looking forward to seeing the apps emerge that take advantage of this data. If you create one, leave a comment!