Amazon: API limits/task is failing
About this article
This article describes some of Amazon's rate limiting practices, and why they may cause issues.
Introduction
If you have more than five or six Amazon channels enabled, you may notice that tasks regarding the export of data, offers, returns, and shipments fails at times – or that certain tasks take longer to be processed. This is due to Amazon's rather strict limits on their APIs.
Amazon's Orders API
The order API's limit is separate from the feed API, it has a request quota of six calls and a restore rate of one request per minute. This means that only six orders can be fetched before a cooldown period kicks in, after which more orders can be fetched.
If you are processing several orders on Amazon and the Order import feature is enabled for all countries, the order import can become sluggish and it takes a while before all new orders are available on ChannelEngine. However, ChannelEngine takes this throttling into account, so the Import orders from channel task does not fail under normal circumstances.
The above-mentioned limit is also the reason ChannelEngine cannot accommodate requests regarding fetching Amazon orders every five to ten minutes.
Amazon's Feeds API
Many other Amazon operations are performed via their feed API. This API requires you to submit a feed (i.e.: a CSV template) containing the relevant data for the type of operation you want to perform.
The offer and content exports are done via CSV templates, which is also the case for shipments and cancelations – they all use the order adjustment feed operation. However, this endpoint shares one combined hourly limit of 30 operations for all of your Amazon channels – a threshold that is reset hourly.
This limit of 30 operations/hour is not an issue if you only use Amazon.de or Amazon.nl, for example, but it can become problematic if you sell your products across five or more Amazon channels. See the example below.
Example A - one Amazon channel enabled
Operation | Number of times performed/hour |
Export offers to channel (every 20 minutes) | 3 |
Export data to channel (every 30 minutes) | 2 |
Export shipments to channels (every 30 minutes) | 2 |
Export returns to channels (every hour) | 1 |
Total | 8 |
Example B - six Amazon channels enabled (with a normal schedule)
Operation | Number of times performed/hour |
Export offers to channel (every 20 minutes) | 18 (3 * 6) |
Export data to channel (every 30 minutes) | 12 (2 * 6) |
Export shipments to channels (every 30 minutes) | 12 (2 * 6) |
Export returns to channels (every hour) | 6 (1 * 6) |
Total | 48 |
As you can see in example B, the result is a total of 48 calls/hour if every call is performed, which is well above the limit of 30 – though if there are no new shipments, no calls are performed. This may result in tasks failing, or updates being exported and processed later by Amazon.
If you see this happen often, contact your customer success manager or the Support team so the task schedule can be tweaked. Bear in mind that, apart from making changes to the schedule, ChannelEngine has no influence on Amazon's API limits.
Comments
0 comments
Article is closed for comments.