Just replace webservices.amazon.com
with com.commercedna.com
If you are a developer using Amazon product feed, you should be intimately familiar with this error message:
AWS Access Key ID: XXXXXXXXXXXXXXXX. You are submitting requests too quickly. Please retry your requests at a slower rate.
This happens when your application is submitting requests to Amazon faster than once per second. Amazon has a one-second rule i.e. if you are submitting more than one request per second, it will throw RequestThrottled error. When you are building an ambitious e-commerce project like a price or product comparision site, this can be very frustrating.
There are 2 ways to overcome this error:
If you are a brand new startup, option 1 is not feasible. So, your best bet is option 2 i.e. caching. We faced the same problem. So, we built a shared cache that startups like us can use. With BrowseNodes, you get unthrottled access to Amazon product feed, so that you can build great user experience for your users.
Lets say, user 1 makes an API call to our server to fetch browse node: 1000 (Books). The first time such request is made, our server will make an API call to Amazon using user 1's AWS key. Once we get the response back, we will cache the result and send back the result to user 1. When user 2 makes the request for the same browse node 1000 (Books), we will not hit Amazon server again. Instead, we will get the cached data from our database and send it back to the user 2 without using his/her AWS key.
This way the number of API calls made will be less than one per second for a user. In rare cases where it exceeds more than one request per second, our server will take care of retrying with exponential backoff and serving them. So, you don't have to deal with RequestThrottled error and build a clean application with good user exerience. We also take of cache expiry of old data and keep the fresh copy of data by sharing it with other users.
If you have the Amazon AccessKey, replace xxx
in the below url and copy/paste/go in your browser address bar to see results:
Note: Use encodeURIComponent() if your SecretAccessKey has special characters. This uses SecretAccessKey as plain text in the request URL. For production environment, we recommend using the option below with Signature.
You can follow the same instructions as Amazon Product API.
But, before calling the API replace webservices.amazon.com
with com.commercedna.com
in the url. Make sure, the Signature
is generated before replacing the domain name.
Please try to use ResponseGroup=Accessories,AlternateVersions,BrowseNodes,EditorialReview,Images,ItemAttributes,ItemIds,Large,Medium,OfferFull,OfferListings,Offers,OfferSummary,PromotionSummary,Reviews,SalesRank,Similarities,Small,Tracks,Variations,VariationMatrix,VariationOffers,VariationSummary
when you make a request. This way, the cache will be useful for everyone.
If you are a Node.js developer, you can find the Node.js client below, which takes care of the above instructions.
Get Node.js API client
Browse products
If you have questions, write to us at commercedna@guesswork.co