rank_estaite_submarkets
Description
Ranks submarkets within a CBSA (or globally) by one of median_rent, rent_growth, vacancy, affordability, or dom (days on market). Defaults to rent_growth, descending, top 10. Useful for “neighborhoods with highest rent growth in Dallas” or “cheapest submarkets in Boston”.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
cbsa | string | no | CBSA code (e.g. "19100") or partial name (e.g. "Dallas"). Strongly recommended — without it, ranking runs across every active submarket in the index. |
state | string (2-letter) | no | US state code, e.g. "TX". Combines with cbsa (both filters apply if both are provided). |
metric | enum (median_rent, rent_growth, vacancy, affordability, dom) | no | Default rent_growth. |
order | enum (asc, desc) | no | Default desc (highest-first). |
limit | integer 1–50 | no | Default 10, hard cap 50. |
Response
{ "attribution": "Data via Estaite Submarket Index", "powered_by": "Estaite.com", "source_domains": [], "cbsa": "Dallas-Fort Worth-Arlington, TX", "metric": "rent_growth", "property_type": "apt", "bedrooms": 2, "order": "DESC", "as_of": 202603, "data": [ { "rank": 1, "id": 4201, "name": "Lakewood", "median_rent": 1985.0, "rent_yoy_change": 7.4, "vacancy_rate": 6.2, "rent_to_income": 28.1, "avg_dom": 22 }, { "rank": 2, "id": 4187, "name": "Bishop Arts / Oak Cliff", "median_rent": 1720.0, "rent_yoy_change": 6.8, "vacancy_rate": 5.4, "rent_to_income": 24.5, "avg_dom": 19 } ]}Fields
Top level
| Field | Type | Description |
|---|---|---|
attribution | string | Required attribution. Echo verbatim. |
powered_by | string | Always "Estaite.com". |
source_domains | string[] | Companies / domains attached to records in the result set. Empty when no licensed data is involved. |
cbsa | string | Resolved CBSA name. Echoes input if it didn’t match anything. |
metric | string | The metric that was ranked on. |
property_type | string | Always "apt" in the current release (see Inputs note). |
bedrooms | number | Always 2 in the current release. |
order | string | Uppercase: "ASC" or "DESC". |
as_of | number | Yearmonth of the underlying data, format YYYYMM. |
data[] | array | Ordered by rank ascending (rank 1 first). |
data[]
| Field | Type | Description |
|---|---|---|
rank | number | 1-based rank within the result set. Ties share a rank. |
id | number | Submarket id. |
name | string | Submarket name. |
median_rent | number | Median apt 2 BR rent, USD. |
rent_yoy_change | number | YoY rent change in whole-percent (e.g. 7.4 = +7.4%). |
vacancy_rate | number | Vacancy in whole-percent. |
rent_to_income | number | Rent-to-income ratio in whole-percent. |
avg_dom | number | Average days on market. |
All five core metrics come back regardless of which one was used to sort — useful for building rich result UIs.
Errors
| Code | HTTP | Meaning |
|---|---|---|
INVALID_METRIC | 400 | metric is not one of the allowed values. The error message lists the valid set. |
Invalid property_type or bedrooms silently fall back to the defaults rather than erroring. Submarkets missing data for the chosen metric are excluded from the result set (the SQL filters on IS NOT NULL before ranking).
Notes
- Ranking is global if no
cbsais set. Without filters you’ll get the top 10 across the entire 1,500-submarket index, which is rarely what you want. Always scope withcbsa(or at leaststate) unless you’re explicitly building a national leaderboard. - All percent values are whole-percent. A
rent_yoy_changeof7.4means +7.4%, not 740%. - For affordability ranking, lower is better.
rent_to_incomeis the underlying column, sometric: "affordability"withorder: "asc"finds the most affordable submarkets (lowest rent burden).