Tiers
API usage is governed by tier-based, endpoint-specific rate limits.
Free Tier
Default limits apply upon registration.
Pro Tier
Higher default limits apply. For Pro tier partners, limits can be adjusted per agreement.
Tier upgrades are handled manually.
Contact the Houdini team through the Partner Portal to request an upgrade.
Endpoint Limits
Rate limits are enforced per endpoint.
Free Tier Limits
| Endpoint | Requests per hour |
|---|
| quote | 50 |
| exchange | 2 |
Pro Tier Limits
| Endpoint | Requests per minute |
|---|
| quote | 1000 |
| exchange | 500 |
Rate Limit Enforcement
When rate limits are exceeded, the API will throw an error with HTTP status code 429:
Example:
{
"errors": [
{
"message": "Too many quote requests. Try again in 45 seconds.",
"extensions": {
"code": 429,
"type": "RATE_LIMIT_EXCEEDED",
"retryAfter": 45,
"limit": 45,
"windowMs": 60000
}
}
]
}
{
"code": 429,
"type": "RATE_LIMIT_EXCEEDED",
"message": "Too many quote requests. Try again in 45 seconds.",
"extensions": {
"retryAfter": 45,
"limit": 45,
"windowMs": 60000
}
}
Response Fields:
| Field | Description |
|---|
code | HTTP status code (429) |
type | Error type: RATE_LIMIT_EXCEEDED |
message | Operation-specific message indicating when to retry |
retryAfter | Seconds until the rate limit resets |
limit | Maximum requests allowed in the time window |
windowMs | Time window in milliseconds (e.g., 60000 = 1 minute) |
Best Practice: Implement exponential backoff when handling rate limit errors. Always respect the retryAfter value provided in the response.