Valley LogoBETA
ReferenceRate limits

Rate limits

Rate limits are enforced per API key using a Redis sliding window — separately for per-minute and per-day buckets.

Tiers

TierPer minutePer day
Free20 requests500 requests
Pro200 requests50,000 requests

All new keys start on the Free tier.

Response headers

Every API response includes rate limit information:

HeaderDescription
X-RateLimit-TierYour tier: free or pro
X-RateLimit-Limit-MinuteYour per-minute cap
X-RateLimit-Limit-DayYour per-day cap
X-RateLimit-Remaining-MinuteRequests remaining this minute
X-RateLimit-Remaining-DayRequests remaining today

HTTP 429 response

When a limit is exceeded you receive:

json
1{
2  "statusCode": 429,
3  "error": "Too Many Requests",
4  "message": "Per-minute rate limit exceeded (20 req/min for free tier)",
5  "retryAfter": 43
6}

retryAfter is the number of seconds until the current window resets.

Tips

  • Check X-RateLimit-Remaining-Minute before batching requests.
  • Cache responses where freshness isn't critical (e.g. company profiles, GET /v1/market/sectors).
  • Contact support to enquire about Pro tier access.