Rental Property Research Tool

Is this ZIP worth
investing in? Find out
in seconds.

Type any US ZIP code and instantly see median price, estimated rent, gross yield, cash flow, and market temperature — all from government and MLS sources. No spreadsheet required.

✓ Free: 15 searches/day 28,000+ ZIP codes ✓ Cash flow + cap rate Redfin · HUD · Census Also available as API
// live data preview
Enter a five-digit US ZIP code, then press Analyse.
Try:
Get 15 free searches/day — no credit card.
Sign up free →
28k+
ZIP codes priced
30k+
ZIPs with rents
20k+
Cities with history
935+
Metro areas
3
Public sources
How it works

Two ways to use it.

Use the no-code dashboard to research deals, or integrate the API directly into your own tools.

For investors No-code dashboard — research any ZIP in seconds
01
Sign up free

Create an account in under a minute. No credit card. You get 15 free lookups per day to evaluate markets — each lookup returns market, rental and investment figures together.

zipmarketdata.com/dashboard
→ Sign up free
→ Instant access
02
Enter any ZIP code

Type in a ZIP or click a quick-pick market. See median price, rental yield, cash flow estimate, and market temperature immediately — each figure labelled with the source it came from.

GET /user/zip-lookup
?zip_code=78701
→ market + rental + investment
→ billed as 1 request
03
Analyse the deal

Pro adds unlimited lookups, batch screening across a whole metro ranked by return, threshold alerts and CSV export — everything to decide yes or no.

GET /user/screen
?zip_prefix=787
&sort_by=cap_rate_pct
→ ranked ZIP list
Start free — 15 lookups/day → Log in
For developers REST API — integrate into your own app
01
Get an API key

Two routes. A Pro or Business subscription here issues a direct ZipMarketData key with a monthly call allowance. Or subscribe on the RapidAPI marketplace — the free tier there is calls/month to build and test.

Direct: X-API-Key: zmd_…
RapidAPI: X-RapidAPI-Key: …
02
Add two headers

Your RapidAPI key and host in every request. No OAuth, no token refresh, no config files.

X-RapidAPI-Key: your-key
X-RapidAPI-Host:
real-estate-market-data
.p.rapidapi.com
03
Get clean JSON back

Pass a ZIP or city name, receive structured data. Every response includes a data_source field, and estimates carry an estimate_basis naming the sample they came from.

GET /market-stats
?zip_code=78701
→ {"median_sale_price":
585000, ...}
Get a marketplace key → See all endpoints ↓
API Reference

Seven data endpoints. Click to expand.

All return JSON. Every response carries a data_source field, and anything derived carries the assumptions it was computed under.

Parameters
NameTypeRequirementDescription
zip_codestringrequired5-digit US ZIP — e.g. 90210
Example Response
json
{ "zip_code": "78701", "data_date": "2025-03", "median_sale_price": 585000, "median_days_on_market": 67, "active_listings": 284, "yoy_price_change": -0.149, "market_temperature": "Buyer's Market", "inventory_months": 4.2, "data_age_days": 12, "data_source": "redfin_mls" }
median_sale_price
Median final sale price this month
yoy_price_change
YoY as decimal (−0.149 = −14.9%)
market_temperature
Hot / Warm / Balanced / Cool / Buyer's Market. null when days-on-market is unknown — never defaulted to "Hot".
inventory_months
Months of supply at current pace
data_age_days
Age of the row. is_stale is set past 75 days
data_source
redfin_mls · estimated · unavailable
Parameters
NameTypeRequirementDescription
citystringrequiredCity name — e.g. Austin
statestringrequired2-letter state — e.g. TX
property_typestringoptionalall · single_family · condo · townhouse
monthsintegeroptional1–36. Default: 12
Example Response
json
{ "city": "Austin", "state": "TX", "appreciation_12m_pct": -8.4, "peak_month": "2024-05", "data_source": "redfin_mls", "monthly_data": [ { "month": "2024-04", "median_sale_price": 549000, "sales_count": 312, "days_on_market": 58 } // … 11 more months ] }
Parameters
NameTypeRequirementDescription
zip_codestringrequired5-digit US ZIP — e.g. 78701
monthsintegeroptional1–36. Default: 12
Example Response
json
{ "zip_code": "78701", "months_available": 12, "appreciation_pct": -8.4, "peak_month": "2025-05", "data_source": "redfin_mls", "monthly_data": [ { "data_date": "2025-04", "median_sale_price": 601000 } // … 11 more months ] }
Parameters
NameTypeRequirementDescription
zip_codestringrequired5-digit US ZIP — e.g. 78701
bedroomsintegeroptional1–5 bedrooms. Default: 2
Example Response
json
{ "zip_code": "78701", "bedrooms": 2, "median_sale_price": 585000, "estimated_monthly_rent": 2458, "gross_yield_pct": 5.04, "yield_rating": "Average", "hud_fmr_year": 2025, "data_source": "hud_fmr" }
Parameters
NameTypeRequirementDescription
metrostringrequiredMetro name — e.g. Austin, Miami
incomeintegeroptionalHousehold income for personalised score
Example Response
json
{ "metro": "Austin", "affordability_index": 72.4, "interpretation": "Stretched", "median_household_income": 81400, "median_home_price": 585000, "price_to_income_ratio": 7.2, "years_to_save_down_payment": 9.6, "data_source": "census_acs" }
Parameters
NameTypeRequirementDescription
zip_codestringrequired5-digit US ZIP
Example Response
json
{ "zip_code": "78701", "estimated_value": 585000, "value_range_low": 514800, "value_range_high": 655200, "gross_yield_pct": 5.04, "data_source": "redfin_mls", "rent_data_source": "hud_fmr", "investment_metrics": { "monthly_cash_flow": -1638, "cap_rate_pct": 3.02, "cash_on_cash_return_pct": -16.80, "investment_rating": "Negative Cash Flow ⚠️", "down_payment_20pct": 117000, "monthly_mortgage": 3113 }, "assumptions": { "down_payment_pct": 20, "mortgage_rate_pct": 7.0, "loan_term_years": 30, "expense_ratio_pct": 40 }, "vintage_note": "Sale prices are current-month Redfin…" }
cap_rate_pct
NOI ÷ value. The no-debt return.
cash_on_cash_return_pct
Annual cash flow ÷ down payment
investment_rating
Excellent / Good / Average / Negative Cash Flow
assumptions
The exact down payment, rate, term and expense ratio used
rent_data_source
Rents can be real while the price is estimated, or the reverse
vintage_note
The three sources are not the same age; this says so
Parameters
NameTypeRequirementDescription
zip_prefixstringone of1–4 digits — e.g. 787 for greater Austin
zip_codesstringone ofComma-separated 5-digit ZIPs
sort_bystringoptionalcash_on_cash_return_pct · cap_rate_pct · gross_yield_pct · monthly_cash_flow · median_sale_price · yoy_price_change
orderstringoptionaldesc · asc. Default: desc
limitintegeroptional1–100. Default: 25
Example Response
json
{ "count": 25, "sorted_by": "cash_on_cash_return_pct", "results": [ { "zip_code": "78621", "median_sale_price": 312000, "estimated_monthly_rent": 1980, "cap_rate_pct": 4.57, "monthly_cash_flow": -472, "cash_on_cash_return_pct": -9.08 } // … ranked, ZIPs without both a price AND a rent are omitted ], "data_source": "redfin_mls+hud_fmr" }
Example Response
json
{ "status": "ok", // ok | stale | degraded "api_version": "1.2.0", "data_coverage": { "zip_codes_with_market_data": 27841, "cities_with_price_history": 20879, "zip_codes_with_rental_data": 30442, "metros_with_income_data": 938 }, "data_freshness": { "newest_market_month": "2026-07", "stale": false, "sources": { "redfin": { "last_success": "2026-08-02 03:14:00", "hours_since_last_success": 6.3 } } } }
Example Response
json
{ "free_daily_limit": 15, "currency": "usd", "billing_interval": "month", "plans": [ { "id": "free", "name": "Free", "level": 0, "price_monthly": 0, "daily_limit": 15, "features": { "watchlist_max": 5, "csv_export": false, } } // … paid, business ] }
Error codes
HTTP status codes returned by the API
CodeMeaning
400Bad request — invalid ZIP or missing param
401Missing or invalid account token / API key
403Invalid marketplace key, or a feature your plan does not include
429Rate limit reached — see the Retry-After header
503A dependency is temporarily down — retry; check /health
data_source values
Provenance labels carried on every response
ValueMeaning
redfin_mlsRedfin public market data — an observed row for this ZIP
hud_fmrHUD Fair Market Rents (gov)
census_acsCensus Bureau ACS income
estimatedA real average of neighbouring ZIPs, never a perturbed or invented number. Carries an estimate_basis with the sample size.
unavailableNothing is loaded for this ZIP or its region. Stated plainly rather than filled in.
Data Sources

Real data. Always labelled.

Every response includes a data_source field — you always know whether you're seeing MLS data, government data, or a model estimate.

redfin_mls

Redfin Public Data

ZIP and city-level stats from Redfin's public download datasets. 28k+ ZIPs, 3k+ cities. Updated daily.

hud_fmr

HUD Fair Market Rents

US government rental data for 30,000+ ZIPs. Studio through 4BR monthly rents. Public domain.

census_acs

Census Bureau ACS

Median household income for 900+ metros from the American Community Survey. Updated annually.

estimated

Regional Average

Where no row exists for a ZIP, the response carries the real average of the neighbouring ZIPs — with an estimate_basis naming the sample size and confidence. Never randomised, never presented as observed.

unavailable

Nothing Loaded

A real, expected response. When neither the ZIP nor its region has data, the API says so rather than inventing a plausible number.

The three sources are not the same age and every derived metric mixes them — a current-month sale price, a HUD rent set annually, a Census income that lags by about two years. Each response says so in its vintage_note, and /health reports the exact age of each feed.

What people use it for

Research markets.
Analyse deals. Build tools.

🏠
Vetting rental properties
Before making an offer, look up the ZIP. See the median price trend, estimated rent, gross yield, and whether the market is heating up or cooling down. Takes 30 seconds.
Dashboard · ZIP Lookup
📊
Comparing markets side by side
Torn between Austin and Nashville? Run both ZIPs and compare cap rate, cash flow, yield rating, and days on market — in a single view.
Dashboard · Compare ZIPs (Business)
💰
Running the numbers on a deal
Expense breakdown by line item, 4 financing scenarios (10–25% down), and a 5-year wealth projection. See whether a deal works before you talk to an agent.
Dashboard · Pro plan
📈
Spotting the right time to buy
12 months of price history with seasonality analysis. See which months historically have the lowest prices — and the fewest competing buyers.
Dashboard · Price History
🏘️
Building proptech products
Add live market data to relocation tools, mortgage calculators, and property search. Clean JSON from government sources — no scraping, no maintenance.
API · /market-stats · /price-history
🤖
AI real estate agents
Give your LLM structured market context for any ZIP in the US. Clean JSON with labelled data sources is ideal for tool-use and RAG pipelines.
API · All endpoints
Pricing

Start free. No credit card.

Two products, one data set. Use the dashboard if you're an investor. Use the API if you're a developer.

Dashboard — for investors (no code needed)
Free
$0
forever
15 lookups / day
Market, rental, affordability
Watchlist up to 5 ZIPs
12 months of history
Start free →
No card required
Most Popular
Pro
$19
per month
30 days free, then $19/month, billed monthly.
Card required up front · cancel anytime before day 30 and you are not charged.
Unlimited lookups
Batch screening, 25 ZIPs a run
10 price alerts
CSV export
API key — 5,000 calls / month
24 months of history
Start the 30-day trial →
Recurring at $19/mo after the trial
Business
$49
per month
Everything in Pro
Compare up to 5 ZIPs side by side
Batch screening, 100 ZIPs a run
PDF reports
API key — 25,000 calls / month
36 months of history
Start free →
Upgrade from inside the dashboard

Prices in USD, billed monthly, cancel any time from the billing portal. A "lookup" is one metered request and returns the market, rental and investment figures for a ZIP together — not three separate charges. See refund policy and terms.

API — for developers (via the RapidAPI marketplace)

Marketplace tiers are billed by RapidAPI, not by us — quotas and prices are whatever the live listing says. Prefer to be billed here? A Pro or Business subscription includes a direct ZipMarketData API key with its own monthly allowance and no marketplace in the middle.

Stop guessing.
Know the numbers.

15 free lookups per day. No credit card. See cash flow, cap rate, and rental yield for any US ZIP code in under 30 seconds.

Try it free →
Takes 60 seconds to sign up · No card on the free plan · Cancel any time
Developer? Get a marketplace key instead →