Rate Limits

Rate limits for governed MLS access are set by each MLS's governance policy — not by your Conduit plan. Each MLS chooses a policy template that defines per-minute, per-hour, and per-day limits.

[i]Governance rate limits vs billing thresholds

Rate limits control how fast you can query. Billing thresholds control how many total queries are included in your plan. These are separate concerns. See Billing & Usage for included query thresholds and overage pricing.

Policy rate limits

Each MLS selects a governance policy template. The three standard templates define the following rate limits:

PolicyPer minutePer hourPer dayMax results/query
Standard Access601,00010,00050
Restricted Access203003,00025
Open Data1205,00050,000100

MLSs can also create custom policies with different rate limits.

How rate limits are enforced

Rate limits are enforced per-vendor-per-MLS. If you access multiple MLSs, each MLS has its own independent rate limit window. Limits are checked in order: per-minute first, then per-hour, then per-day. The first limit hit triggers a 429 response.

Rate limit headers

Every governed response includes rate limit headers:

HeaderDescription
X-RateLimit-RemainingRemaining requests in the tightest active window
X-RateLimit-ResetUnix timestamp (seconds) when the window resets

429 response format

When rate limited, the gateway returns a 429 with details about which limit was exceeded:

json
{
  "error": "governance_rate_limit_exceeded",
  "message": "MLS policy per_minute rate limit exceeded.",
  "limit_name": "per_minute",
  "retry_after": 42
}

The retry_after value is in seconds. Wait at least that long before retrying.

Best practices

-Check headers proactively. Monitor X-RateLimit-Remaining and throttle before hitting the limit.
-Respect retry_after. Hammering after a 429 will not help and may result in access suspension.
-Batch where possible. Fewer queries with broader scope are better than many narrow queries.
-Different MLSs, different limits. Each MLS may use a different policy. Don't assume uniform rate limits.