Skip to content

Rate limits

Each key is rate-limited per minute. Bursting past the limit returns 429 with a Retry-After header (in seconds) - back off for that long, then retry:

HTTP/1.1 429 Too Many Requests
Retry-After: 12

A simple, correct client honours Retry-After rather than guessing:

python
import time, requests

def get_with_backoff(url, headers):
    while True:
        res = requests.get(url, headers=headers)
        if res.status_code != 429:
            return res
        time.sleep(int(res.headers.get("Retry-After", "1")))

Tips

  • Cache aggressively. Anonymous catalog reads carry an ETag - revalidate with If-None-Match so a 304 costs you nothing against the limit. See Pagination & caching.
  • Sync with deltas. Use updated_since to pull only what changed instead of re-listing the whole catalog.
  • Ask for a higher limit. Each key's per-minute limit is set when it's issued - your Harmon admin can raise it for production traffic.

Next steps

In the API Reference

  • GET /v1/products - a rate-limited read; pair it with If-None-Match so a 304 costs nothing

Built on the Harmon platform — the storefront API for merchants.