Limits and quotas
Every request costs units (shown in X-Request-Units, and as x-units on each endpoint in this reference):
- List endpoints (listing search, project lists): 1 unit per 25 results asked for with
limit, counted up to your plan's page size. A page of 100 costs 4. - Listing batch: 1 unit per 25 ids.
- Single resources, reference data and market data: 1 unit.
- Analytics: 2 (market position), 3 (comparables, rental yield, neighborhood compare), 5 (trends), or 2 per 25 results (deals).
Your plan sets:
- Rate limit: units per minute. Headers:
RateLimit-Limit,RateLimit-Remaining,RateLimit-Reset(seconds). - Monthly quota: units per calendar month (UTC). Headers:
X-Quota-Limit,X-Quota-Remaining,X-Quota-Reset. - Page size: the largest
limityou can request. - Paging depth: how many results of a single query you can page through. Past it you get
result_window_exceeded; narrow the query, or sync withupdated_since.
| Plan | Units / minute | Units / month | Page size | Paging depth | Active keys |
|---|---|---|---|---|---|
| Free | 30 | 2,500 | 25 | 500 | 5 |
| Starter | 60 | 50,000 | 50 | 5,000 | 25 |
| Growth | 150 | 200,000 | 100 | 5,000 | 25 |
| Pro | 300 | 750,000 | 100 | 20,000 | 25 |
Enterprise plans set these individually. Your own are on the Plan page in the dashboard, and GET /limits returns them to the key making the call — it costs no units, so read it at start-up rather than hard-coding a page size, and the same code works on every plan.
Extra usage. On any paid subscription (Starter, Growth or Pro), requests past the monthly quota keep working and are billed per 1,000 units at the end of the billing period, up to the monthly spend cap an owner sets on the Billing page. At the cap you get 429 spend_cap_reached until the quota resets. With a cap of 0, the quota is a hard limit (429 monthly_quota_exceeded).
Over a limit you get 429 with a Retry-After header. Wait that many seconds, then retry. Requests that fail (4xx, 5xx, and 429s) don't count toward your monthly quota.