Rate limits protect the API from abuse and ensure fair usage for all consumers.Documentation Index
Fetch the complete documentation index at: https://docs.humandesignapi.nl/llms.txt
Use this file to discover all available pages before exploring further.
Limits
| Scope | Limit | Key |
|---|---|---|
Authenticated API (/v1/*, /v2/*) | 100 requests/min | Per API key |
Response When Limited
When you exceed a rate limit, the API returns:- HTTP 429 Too Many Requests
- Error code:
RATE_LIMIT_EXCEEDED Retry-Afterheader: number of seconds to wait before retrying
Rate Limit Headers
Every response includes standard rate limit headers per the IETF RateLimit header fields specification:| Header | Description | Example |
|---|---|---|
ratelimit-policy | Policy name, quota (q), window in seconds (w), and partition key (pk) | "100-in-1min"; q=100; w=60; pk=:ZGE1M2Y4...: |
ratelimit | Policy name, remaining requests (r), and seconds until reset (t) | "100-in-1min"; r=99; t=60 |
Retry-After | Seconds to wait before retrying (only on 429 responses) | 30 |
Best Practices
- Respect
Retry-After— when you receive a 429, wait for the specified number of seconds - Monitor rate limit headers — parse the
RateLimitheader to check remaining requests and throttle proactively - Use exponential backoff — if retrying, increase delay: 1s, 2s, 4s
- Cache results — Human Design charts for the same birth data are deterministic. Cache responses to avoid redundant calls
- Batch wisely — if generating multiple charts, space requests evenly rather than bursting

