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

Operation

Rate ID

Item Description

Usage Start and Usage End Date and Time

Usage Quantity

Blended Rate (for Consolidated Billing)

Currency Code

Cost Before Tax

Credits

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!

— Jeff;