Understand how rate limits work across JTL’s APIs: quotas, response headers, and strategies for staying within limits.
Rate limiting controls how many requests your app can make to JTL’s APIs within a given time window. It ensures fair usage across all developers and prevents any single app from overloading the system.Exceeding the limit returns an HTTP 429 “Too Many Requests” error. Some endpoints have lower limits than others to protect resource-intensive operations.
Every API response includes headers that tell you your current quota status. Monitor these headers to stay within limits proactively rather than reacting to 429 errors.
Every response from JTL’s APIs includes these headers:
Header
Description
Example
X-RateLimit-Limit
Maximum requests allowed in the current interval
10
X-RateLimit-Interval-Length-Seconds
Length of the rate limit window in seconds
45
X-RateLimit-Remaining
Requests remaining in the current interval
5
Read these headers after every request. They’re your real-time view of how much quota you have left. When X-RateLimit-Remaining approaches zero, slow down or pause until the interval resets.
The Cloud-ERP API applies rate limits to all endpoints. Use the X-RateLimit-* response headers to determine the limits for each endpoint in your environment.
The SCX Channel API has published rate limits per route pattern:
Route pattern
Requests
Interval
Effective Rate
Default (all other routes)
10
60 seconds
~0.17/sec
/v[version]/channel*
60
60 seconds
1/sec
/v[version]/channel/order*
600
60 seconds
10/sec
/v[version]/channel/event*
240
60 seconds
4/sec
/v[version]/channel/offer*
1,500
60 seconds
25/sec
/v[version]/channel/attribute/category*
86,400
86,400 seconds
1/sec (daily)
/v[version]/channel/attribute/global*
10
3,600 seconds
~0.003/sec (hourly)
/v[version]/channel/categories*
10
3,600 seconds
~0.003/sec (hourly)
Sandbox rate limits are different from production. Don’t assume your sandbox testing reflects production capacity. Always check the X-RateLimit-* headers in each environment.