Ecomdash API Throttling Rules

To maintain the performance of our API and manage the number of calls made, we've implemented throttling rules for all API consumers.

Basic Throttling

The basic throttling rules are 120 calls per minute per ecomdash account. This means that if multiple developers are making API calls for the same ecomdash account, they share the same pool of 120 calls per minute. When a developer is throttled from this basic rule, they will receive a "429 Too Many Requests" response with an HTTP Header called "Retry-After" that will let you know how many seconds are remaining before you should retry.

Concurrency Throttling

In addition to the basic throttling, there are limits to how many calls you can make simultaneously to prevent API consumers from making 120 calls all at once at the beginning of each minute. This new concurrency throttling policy will limit simultaneous calls to 3 for each "per ecomdash account and per API operation" combination. Below are some examples of what will and will not be throttled:

  • Will be throttled: 6 simultaneous calls, all are for the same ecomdash customer and all are the same API operation.
    • GET /Inventory/?pageNumber=1
    • GET /Inventory/?pageNumber=2
    • GET /Inventory/?pageNumber=3
    • GET /Inventory/?pageNumber=4
    • GET /Inventory/?pageNumber=5
    • GET /Inventory/?pageNumber=6
  • Won't be throttled: 6 simultaneous calls, all are for the same ecomdash customer, but not all are the same API operation, the maximum of any 1 operation is 3.
    • GET /Inventory/?pageNumber=1
    • GET /Inventory/?pageNumber=2
    • GET /Inventory/?pageNumber=3
    • GET /Inventory/12345/buildcomponents
    • GET /Inventory/54321/buildcomponents
    • PUT /Inventory

When you are throttled from this concurrency throttling rule, you will receive a "429 Too Many Requests" response and can retry as soon as another one of your calls completes. As a basic rule, you should just limit any parallel loops that are making the same API calls for the same ecomdash customer to 3 threads.

Bad Request Throttling

In addition to the throttling types above, we've also implemented throttling for any API consumer that makes 500 or more calls in a 24-hour period that results in a "400 Bad Request" error. We throw "400 Bad Request" errors when the validation rules are not followed or duplicate data is attempted to be inserted into ecomdash. When a developer is throttled from this rule, they will receive a "403 Unauthorized" response with an HTTP Header called "Retry-After" that will let you know how many seconds are remaining before you should retry.