get_estaite_cbsa_overview
Description
Aggregates every submarket within a CBSA (metro) into one response: averaged vacancy/saturation/income at the metro level, an averaged per-segment rent grid, plus a per-submarket breakdown with each submarket’s median rent and YoY change. Accepts either a numeric CBSA code or a partial CBSA name. Use this for city-level / metro-level questions.
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
cbsa | string | number | yes | Numeric CBSA code (e.g. 19100) or partial CBSA name (e.g. "Dallas"). When a string contains only digits it’s treated as a code (exact match); otherwise it’s a partial-name match. |
Response
{ "attribution": "Data via Estaite Submarket Index", "powered_by": "Estaite.com", "source_domains": [], "cbsa_code": "19100", "cbsa_name": "Dallas-Fort Worth-Arlington, TX", "state": "TX", "as_of": 202603, "submarket_count": 47, "cbsa_summary": { "avg_vacancy_rate": 7.85, "avg_saturation": 1.92, "avg_household_income": 78420, "segments": { "apartments": { "br1": { "avg_rent": 1280, "avg_yoy": 3.4 }, "br2": { "avg_rent": 1580, "avg_yoy": 4.1 }, "br3": { "avg_rent": 2050, "avg_yoy": 3.6 }, "br4": { "avg_rent": 2580, "avg_yoy": 2.8 } }, "single_family": { "br1": { "avg_rent": null, "avg_yoy": null }, "br2": { "avg_rent": 1820, "avg_yoy": 4.5 }, "br3": { "avg_rent": 2380, "avg_yoy": 4.1 }, "br4": { "avg_rent": 2950, "avg_yoy": 3.4 } }, "condo_townhome": { "br1": { "avg_rent": 1450, "avg_yoy": 3.9 }, "br2": { "avg_rent": 1740, "avg_yoy": 3.5 }, "br3": { "avg_rent": null, "avg_yoy": null }, "br4": { "avg_rent": null, "avg_yoy": null } } } }, "submarkets": [ { "id": 4201, "name": "Lakewood", "vacancy_rate": 6.2, "segments": { "apartments": { "br1": { "median_rent": 1450, "yoy": 4.1 }, "br2": { "median_rent": 1985, "yoy": 7.4 }, "br3": { "median_rent": 2620, "yoy": 5.8 }, "br4": { "median_rent": 3210, "yoy": 4.2 } }, "single_family": { "br1": { }, "br2": { }, "br3": { }, "br4": { } }, "condo_townhome": { "br1": { }, "br2": { }, "br3": { }, "br4": { } } } } ]}Fields
Top level
| Field | Type | Description |
|---|---|---|
attribution | string | Required attribution. Echo verbatim. |
powered_by | string | Always "Estaite.com". |
source_domains | string[] | Contributing data-provider domains across all submarkets in the metro. |
cbsa_code | string | Numeric CBSA code. |
cbsa_name | string | Full CBSA name. |
state | string | Primary state code for the CBSA. |
as_of | number | Latest yearmonth in the data, format YYYYMM. |
submarket_count | number | Count of distinct submarkets in the CBSA. |
cbsa_summary
Averages across the latest month’s row in every submarket in the CBSA.
| Path | Type | Description |
|---|---|---|
avg_vacancy_rate | number | Mean vacancy in whole-percent. |
avg_saturation | number | Mean saturation in whole-percent. |
avg_household_income | number | Mean of submarket-level median household incomes, USD. |
segments[label][br_key].avg_rent | number | Mean median rent for the cell across submarkets, USD. null when no submarkets in the metro have data for that cell. |
segments[label][br_key].avg_yoy | number | Mean YoY rent change in whole-percent. |
submarkets[]
| Path | Type | Description |
|---|---|---|
id | number | Submarket id. |
name | string | Submarket name. |
vacancy_rate | number | Submarket vacancy in whole-percent. |
segments[label][br_key].median_rent | number | Cell median rent, USD. ⚠️ Field name here is median_rent, not avg_rent like in cbsa_summary. |
segments[label][br_key].yoy | number | YoY change in whole-percent. ⚠️ Field name here is yoy, not avg_yoy like in cbsa_summary. |
Errors
| Code | HTTP | Meaning |
|---|---|---|
MISSING_CBSA | 400 | cbsa was not provided. |
CBSA_NOT_FOUND | 404 | No CBSA matched the input. |
Notes
- Field names differ between
cbsa_summaryandsubmarkets[]. The metro-level block usesavg_rent/avg_yoy. The per-submarket entries usemedian_rent/yoy. Branch carefully. - Numeric vs name matching. A
cbsathat’s all digits is matched againstcbsa_codeexactly. Anything else is aLIKE '%input%'againstcbsa_name. To force name search of a numeric-looking metro, prefix something non-digit (rare). - All percent values are whole-percent. A
avg_yoyof3.4means +3.4%, not 340%. nullis real. Some cells have no data (e.g. SFR 1 BR in a metro with no SFR 1 BR listings). Handlenullin your formatter.