Skip to main content
TeamCare APIs apply rate limits to protect system stability and ensure fair access. Limits are enforced on a per-location basis for resource endpoints and per IP for authentication. You must handle rate limit responses correctly to maintain a reliable integration.

Rate limits

Each location has its own independent budget. The per-location limit is also per API credential, so two different credentials accessing the same location each have their own 15-request budget.

How rate limiting works

Rate limits use fixed 60-second windows. Rejected requests (HTTP 429) still count toward the current window. If you exceed a limit, subsequent requests in that window will continue to receive 429 responses.

429 response contract

When you exceed a rate limit, the API returns a 429 Too Many Requests response with a Retry-After header.
The Retry-After value is an integer between 1 and 60, representing the number of seconds you must wait before making another request.

Required client behavior

  • You must wait the number of seconds specified in the Retry-After header before retrying.
  • You must cache your JWT token for the full 6-hour lifetime and not call the token endpoint for every request.
  • You should keep your sustained request rate at or below 15 requests per minute per location.
  • You should iterate round-robin across locations when syncing data from multiple locations to spread load evenly.

Reference implementation (Python)

When syncing multiple locations, iterate through them in round-robin order to stay within each location’s independent 15-request-per-minute budget.