UPDATE:
There is now AWS pricing API:
https://aws.amazon.com/blogs/aws/new-aws-price-list-api/
Orginal answer:
The price lists are available in form of JSONP files (you need to strip off function call) which are used by the AWS pricing pages. Each table (and each tab for table) has separate JSON file. It is not an API maybe, but definitely computer digestible. Here is a list that supports EC2 pricing page (as of 17 December 2014):
- On-demand Linux: http://a0.awsstatic.com/pricing/1/ec2/linux-od.min.js
- On-demand RedHat: http://a0.awsstatic.com/pricing/1/ec2/rhel-od.min.js
- On-demand SUSE: http://a0.awsstatic.com/pricing/1/ec2/sles-od.min.js
- On-demand Windows: http://a0.awsstatic.com/pricing/1/ec2/mswin-od.min.js
- On-demand SQL Standard: http://a0.awsstatic.com/pricing/1/ec2/mswinSQL-od.min.js
- On-demand SQL Web: http://a0.awsstatic.com/pricing/1/ec2/mswinSQLWeb-od.min.js
- Reserved Linux: http://a0.awsstatic.com/pricing/1/ec2/ri-v2/linux-unix-shared.min.js
- Reserved RedHat: http://a0.awsstatic.com/pricing/1/ec2/ri-v2/red-hat-enterprise-linux-shared.min.js
- Reserved SUSE: http://a0.awsstatic.com/pricing/1/ec2/ri-v2/suse-linux-shared.min.js
- Reserved Windows: http://a0.awsstatic.com/pricing/1/ec2/ri-v2/windows-shared.min.js
- Reserved SQL Standard: http://a0.awsstatic.com/pricing/1/ec2/ri-v2/windows-with-sql-server-standard-shared.min.js
- Reserved SQL Web: http://a0.awsstatic.com/pricing/1/ec2/ri-v2/windows-with-sql-server-web-shared.min.js
- Reserved Spot instances: http://spot-price.s3.amazonaws.com/spot.js
- Data transfer: http://a0.awsstatic.com/pricing/1/ec2/pricing-data-transfer-with-regions.min.js
- EBS optimized: http://a0.awsstatic.com/pricing/1/ec2/pricing-ebs-optimized-instances.min.js
- EBS: http://a0.awsstatic.com/pricing/1/ebs/pricing-ebs.min.js
- Elastic IP: http://a0.awsstatic.com/pricing/1/ec2/pricing-elastic-ips.min.js
- CloudWatch: http://a0.awsstatic.com/pricing/1/cloudwatch/pricing-cloudwatch.min.js
- ELB: http://a0.awsstatic.com/pricing/1/ec2/pricing-elb.min.js
- EMR: https://a0.awsstatic.com/pricing/1/emr/pricing-emr.min.js
WARNING: The endpoints change from time to time and often old URL is still there with old values. It is best to check what is the current status rather than relying on links provided in this thread.
So, here is a short command to get current set or URLs from any AWS pricing page. Example based on EC2. Run it on Linux or Cygwin. Actually this command was used to create the list above.
curl http://aws.amazon.com/ec2/pricing/ 2>/dev/null | grep 'model:' | sed -e "s/.*'\(.*\)'.*/http:\\1/"
For those who don't like command line, you can also check in a web browser network console (you get there with F12), filter with JS objects: