Appearance
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: 12A 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 withIf-None-Matchso a304costs you nothing against the limit. See Pagination & caching. - Sync with deltas. Use
updated_sinceto 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
- Pagination & caching - spend fewer requests with
ETagandupdated_since. - Errors - the full status-code table.
In the API Reference
GET /v1/products- a rate-limited read; pair it withIf-None-Matchso a304costs nothing