Skip to main content
The Everhour API enforces rate limits to ensure stability for all users.

Current limits

The limit is approximately 20 requests per 10 seconds per API key. This value may vary with server load and is subject to change.

Exceeded limit response

When you exceed the rate limit, the API returns:
HTTP/1.1 429 Too Many Requests
Retry-After: 5
The Retry-After header specifies how many seconds to wait before retrying.

Handling 429 responses

Implement exponential backoff in your integration:
for attempt in 1 2 3 4 5; do
  response=$(curl -s -w "\n%{http_code}" https://api.everhour.com/projects \
    -H "X-Api-Key: YOUR_API_KEY")
  status=$(echo "$response" | tail -1)
  if [ "$status" != "429" ]; then break; fi
  sleep $(( 2 ** attempt ))
done

Batch operations

If your use case requires a large volume of requests — such as a one-time data migration or bulk export — contact us before running it. We may be able to provide a more efficient data access method. Reach us via chat inside your Everhour account or at ask@everhour.com.