Amazon Accidentally Bites Some Developer Hands with API Limits

When Amazon recently implemented what it calls "efficiency guidelines" in its Amazon Product Advertising API, the online retail giant took some developers by surprise. The change was meant to limit access to sites that did not send buying customers. However, a change to your code is required to ensure that you receive the correct level of access. Those that didn't make the change were subjected to the lowest limits. For some, that meant lost revenue--both to the developer and Amazon.

The efficiency guidelines, which Amazon describes here, are meant to decrease the load from under-converting websites. In other words, if you don't send enough money to Amazon, don't expect to receive a wide pipe of data. The new restrictions seem fair, but the implementation left some high earners restricted. The reason is that some left their associate tag off of requests. Without any identifier with which to provide greater access, Amazon gave the smallest pipe of data--2,000 requests per hour. For high traffic sites, that just won't cut it.

A PC World article details one developer's struggle:

One website developer who asked not to be named said that during a busy hour, his site might max out with the new limits. His site lets visitors compare prices and shipping times for products sold by a variety of online retailers. Each time a visitor searches for a product, the site queries Amazon using the Product Advertising API for that information.

He was surprised at how Amazon handled this change. Because implementing the new code wasn't required to continue making queries, he didn't notice that he needed to and didn't implement it initially. That means that until he put it in place, Amazon results were turning up for visitors to his site usually only within about 15 minutes after each hour. After that time, if visitors bought products from other sites, the developer would have earned commission from those sites but Amazon would have lost out on a chance at the sale.

The solution is fairly simple: include your associate tag with every call. And Amazon has responded to developer complaints on forums, suggesting that developers who believe they're being erroneously restricted make contact. Like Twitter's move away from basic authentication, a change to an extremely popular API is tough to institute perfectly. There's bound to be fall-out, which lands on the developer first, but is eventually felt by the provider. For Amazon, it's felt as disenchanted developers, as well as lost revenue.

Amazon's approach is meant to maintain revenue by only restricting those who do not convert API calls into sales. The metric used is dollars per hour, averaged over the last 30 days. For each dollar, the developer receives an additional 500 calls per hour, maxing out at 25,000. Those without sales--or who do not include their associate tag--receive the minimum 2,000 calls per hour.

Be sure to read the next eCommerce article: Instant Meme Still Going Strong: 16 Instant Mashups


Comments (6)


This is really a disaster. Even if you've made all the required changes, your sales may not be correcty counted for additional API calls. Especially partners outside the US get problems, because they need two different Amazon accounts: one local associate account and one US-account for the API. If you've created them with different email addresses, you are left out in the cold. It looks as if Amazon wants to get rid of its faithful affiliate community.

[...] The work is (practically) done for you — Sure you could develop your own database of DVDs and collect tons of information on each movie in existence, but Amazon has already done this, and really doesn’t mind sharing this information with your app, as long as enough look-ups turn to sales. [...]


By requiring signed webservice calls, Amazon has already annoyed a lot of open source developers, with their products not being able to use the Product Advertisement API out of the box. It seems to me that they do not really want people to actually use their service.



I know this is an older thread but I was hoping for some clarity on a couple of things regarding the topic of this article as I am a little confused (really hopeful that I have picked it up wrong!).

I am releasing a new app next month that uses this API. I have many customers who will be accessing and hammering the app and I hope to drive sales to Amazon (so I can get my slice!), but am not sure when my customers will start spending their money. It may not be in the first 30 days, but will hopefully ramp up over the months ahead once they get used to how my app works.

Before reading this thread I was under the impression that I only got 2000 requests an hour to this API with or without passing my signature with each call, but after reading this article I am hoping that if I do add my signature that I am not restricted like this. Is this correct?

Basically, am I restricted to 2000 calls per hour regardless of whether I pass through my account signature with each call until I start making sales and then I start to get the extra 500 calls per $1 made?

A second question on the API that is worrying and baffling me is that I have just read that an Amazon cart that I create on my site and pass through for sale can only have 50 items in it (each item can have up to 999 in terms of quantity). IS THIS TRUE!? Surely this is a restriction too far...

I am able to create a cart with as many items in it as I like on their website, so why can't I create a cart with more than 50 unique items on my site and send it through?

Any help and clarification on this, or where I should seek it as they seem very unresponsive, would be very much welcome.

Thanks in advance!