Rate Limits
Every Straply API plan includes a daily lookup limit. Rate limits reset at midnight UTC each day.
Limits by plan
Section titled “Limits by plan”| Plan | Daily lookups | Requests per second |
|---|---|---|
| Free | 100 | 2 |
| Developer | 5,000 | 5 |
| Pro | 25,000 | 10 |
| Enterprise | 100,000 | 25 |
Rate limit headers
Section titled “Rate limit headers”Every API response includes headers that show your current rate limit status:
X-RateLimit-Limit: 10000X-RateLimit-Remaining: 9847X-RateLimit-Reset: 1741564800| Header | Description |
|---|---|
X-RateLimit-Limit | Your daily lookup limit |
X-RateLimit-Remaining | Lookups remaining today |
X-RateLimit-Reset | Unix timestamp when the limit resets (midnight UTC) |
What counts as a lookup
Section titled “What counts as a lookup”Each API call that returns property or market data counts as one lookup:
GET /v1/properties/{id}— 1 lookupGET /v1/properties/lookup— 1 lookupGET /v1/properties(search) — 1 lookup regardless of result countGET /v1/markets/{zipCode}— 1 lookupGET /v1/markets/{zipCode}/history— 1 lookup
These do not count toward your limit:
- Health check requests (
GET /v1/health) - Authentication failures (invalid key)
- Requests that return errors (4xx, 5xx)
Exceeding your limit
Section titled “Exceeding your limit”When you exceed your daily limit, the API returns a 429 Too Many Requests response:
{ "error": { "code": "rate_limit_exceeded", "message": "Daily lookup limit exceeded. Resets at midnight UTC.", "status": 429 }}Per-second burst limits
Section titled “Per-second burst limits”If you exceed the per-second request limit, you will also receive a 429 response. Per-second limits use a sliding window and reset automatically.
Best practices
Section titled “Best practices”- Cache responses when possible to reduce lookups
- Monitor usage via the
X-RateLimit-Remainingheader - Implement backoff when you receive a
429response - Upgrade your plan if you consistently hit your limit
- Use bulk endpoints (Pro and Enterprise) for high-volume data needs