Get Area Market

Returns one area's market over the site's own MLS feeds: live counters, the medians of the last three months of closings, months of supply, the changes and 15 months of closed-sale history.

GET/v1/market/:slug

Authentication

Public key?key=pk_…

Public key in the key query parameter. No OAuth, no secret.

Edge cache: 1 h + stale-while-revalidate 24 h

Path Parameters

slugstring
required

The area slug: a city or neighborhood name in lowercase with hyphens, as areas[].name of List Areas or area.slug of Get Condo Area, such as aventura.

Query Parameters

keystring
required

The site's public key (pk_…). It selects the account. Safe to ship to the browser.

typeenum
optional

Every residential sale, or condos (Condominium, Stock Cooperative) or houses (Single Family Residence, Townhouse, Villa) only.

Default:all
allcondohouse

Responses

200Success
application/json
areaobject

name, slug and query (uppercase search name) of the area.

asOfstring

When the counters were read (ISO 8601). The medians are recomputed once a day.

snapshotobject

Today's headline numbers.

changesobject

Percent changes with one decimal, null without a base: activeWeekPct (active listings vs last week; type=all only), sold30Pct (closings of the last 30 days vs the 30 before) and pricePerSqftYearPct (median $/sq ft of the last three months vs the same months a year earlier).

historyarray

Closed sales per month, oldest first, 15 months; the last month is the current one so far. A month without closings has sales: 0 and null medians.

inventoryarray

Active listings per day, last 30 days, { date, active }, oldest first (the area's daily report).

cmaobject

area: the value of ?area= that opens the site's CMA page on this area (fetchHomeValuation({ searchParams })).

Errors

400type is not all, condo or house.
404The area does not exist, the slug is malformed or the site has no MLS feed.
401Missing or invalid public key.
403The account has no active subscription. The body also carries code: "TENANT_INACTIVE".
500Unexpected server error.

Notes

  • Only the site's own MLS feeds count, so two sites on different MLSs can see different numbers for the same area.
  • The medians come from the last three calendar months (the current one so far), so they move once a day; the counters move with the hourly MLS sync.
  • activeWeekPct and inventory come from the area's daily report, which counts every MLS Panda syncs.
Request
curl --request GET \
--url "https://api.pandaidx.com/v1/market/aventura?key={{public_key}}&type=all"
Response200 OK
{
"area": {
"name": "Aventura",
"slug": "aventura",
"query": "AVENTURA"
},
"asOf": "2026-10-21T22:00:00.000Z",
"type": "all",
"snapshot": {
"active": 1127,
"pending": 58,
"sold7": 17,
"sold30": 71,
"sold90": 214,
"medianSalePrice": 455000,
"medianPricePerSqft": 382,
"medianDaysOnMarket": 74,
"saleToListPct": 94.6,
"monthsOfSupply": 15.8,
"marketType": "buyers"
},
"changes": {
"activeWeekPct": -0.4,
"sold30Pct": 9.2,
"pricePerSqftYearPct": -3.1
},
"history": [
{
"month": "2026-09",
"sales": 69,
"medianSalePrice": 449000,
"medianPricePerSqft": 379,
"medianDaysOnMarket": 77,
"saleToListPct": 94.4
},
{
"month": "2026-10",
"sales": 48,
"medianSalePrice": 462000,
"medianPricePerSqft": 386,
"medianDaysOnMarket": 71,
"saleToListPct": 94.9
}
],
"inventory": [
{
"date": "2026-10-20",
"active": 1130
},
{
"date": "2026-10-21",
"active": 1127
}
],
"cma": {
"area": "aventura"
}
}