Skip to main content
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.

How Rate Limiting Works

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.

Rate Limit Response Headers

Every response from JTL’s APIs includes these headers: 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.

Rate Limits by API

Cloud-ERP API

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.

SCX Channel API

The SCX Channel API has published rate limits per route pattern:
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.

Handling Rate Limit Errors

When you exceed the limit, the API returns HTTP 429 Too Many Requests. Here’s how to handle it properly.

1. Monitor Headers Proactively

Don’t wait for a 429, prevent it. Track X-RateLimit-Remaining and pause before you hit zero:

2. Retry with Exponential Backoff

When you get a 429, don’t retry immediately. Wait at increasing intervals before retrying:
Backoff Schedule (with Jitter):

3. Queue and Spread Requests

Use a queue to enforce a fixed request rate and avoid bursts.

4. Cache Responses

Cache data based on how often it changes:
  • Rarely changes → cache longer (categories, attributes)
  • Frequently changes → cache briefly or not at all (orders)

Best Practices

Quick Reference


What’s Next?

Webhooks

Reduce polling and API calls by reacting to events in real time.

Pagination

How to page through large result sets without hitting rate limits.

Error Handling

Handle 429 errors alongside other error types.

API Reference

Browse endpoints and their specific rate limits.