List Condos
Returns the condo directory: an area picker, building cards, and the landing rows with the first buildings per area. Filter by area, price, size, features or map viewport.
/v1/condosAuthentication
?key=pk_…Public key in the `key` query parameter. No OAuth, no secret.
Edge cache: 5 s
Query Parameters
keystringThe site's public key (pk_…). It selects the account. Safe to ship to the browser.
areastringOne area, as a slug (`miami-beach`) or a name. Ignored when `city` is sent.
citystringComma-separated city names, matched as OR. Up to 20 values.
qstringBuilding name. Results are ranked by relevance. Trimmed to 120 characters.
statusenumOnly buildings with live listings of this kind. It also switches the price filter and the price sorts to the rent ranges when set to `forRent`.
forSaleforRentminPricenumberUSD. The building's lowest asking price must be at least this value.
maxPricenumberUSD. The building's highest asking price must be at most this value.
minBedsnumberThe building's smallest unit must have at least this many bedrooms.
maxBedsnumberThe building's largest unit must have at most this many bedrooms.
minBathsnumberThe building's smallest unit must have at least this many bathrooms.
maxBathsnumberThe building's largest unit must have at most this many bathrooms.
minSqftnumberMinimum living area in square feet.
maxSqftnumberMaximum living area in square feet.
typesstringComma-separated property subtypes, such as `Condominium,Townhouse`. Matched as OR.
featuresstringComma-separated building features. A building must have all of them. Allowed values: `petFriendly`, `waterfront`, `gated`, `seniorCommunity`, `community`.
minYearnumberEarliest year built.
maxYearnumberLatest year built.
minStoriesnumberMinimum number of stories.
maxStoriesnumberMaximum number of stories.
minUnitsnumberMinimum number of units.
maxUnitsnumberMaximum number of units.
bboxstringMap viewport as `south,west,north,east` in decimal degrees. South must be below north and west below east.
sortenumSort order. Numeric sorts drop buildings without that value. A `q` search always ranks by relevance.
buildingNamebuildingName-buildingNamenewestminPrice-minPricemaxPrice-maxPriceminBedsminBathsyearBuilt-yearBuiltpinsstringSend `1` to also return `pins`: every matching building that has coordinates, up to 500, with no pagination. Any other value returns `pins: null`.
pagenumberPage number, starting at 1. Values above 500 are clamped to 500.
1pageSizenumberItems per page. Values above 60 are clamped to 60.
24Responses
application/jsonareasarrayEvery area with at least one building. Use it as an area picker.
filtersobjectEvery filter as applied: `area`, `cities`, `q`, `status`, `minPrice`, `maxPrice`, `minBeds`, `maxBeds`, `minBaths`, `maxBaths`, `minSqft`, `maxSqft`, `types`, `features`, `minYear`, `maxYear`, `minStories`, `maxStories`, `minUnits`, `maxUnits`, `bbox` and `sort`. Unset values are `null` or `[]`. The example shows a subset.
groupsarrayLanding rows with the first buildings of each area. Only filled on page 1 with no filter and the default sort, otherwise `[]`. Each row is `{ area, slug, totalCount, buildings }`.
buildingsarrayBuilding cards for the requested page.
pinsarray | nullMap pins when `pins=1`: `{ id, slug, kind, name, path, location, image, price }`. Otherwise `null`.
totalnumberBuildings matching the filters.
pagenumberpageSizenumbertotalPagesnumberErrors
400`status` is not `forSale` or `forRent`, `sort` is unknown, `features` has an unknown value, `bbox` is malformed, or a numeric filter is not a non-negative integer.401Missing or invalid public key.403The account has no active subscription. The body also carries `code: "TENANT_INACTIVE"`.500Unexpected server error.Notes
- Building data is shared Panda data, not per account. Only listings inside a building come from your MLS feeds.
- Open a card with its `slug` in Get Building, or in Get New Development when `kind` is `newdevelopment`.
- Amenity and view filters of the website are not available on this endpoint. Use the directory buildings endpoint for them.
curl --request GET \--url "https://api.pandaidx.com/v1/condos?key={{public_key}}&city=Miami"
{"areas": [{"id": "62d07150ca8676650f0eaf90","query": "MIAMI BEACH","name": "Miami Beach","slug": "miami-beach","path": "/area/miami-beach","image": null,"state": "FL","buildingCount": 214}],"filters": {"area": null,"cities": ["Miami"],"q": null,"status": null,"minPrice": null,"sort": "buildingName"},"groups": [],"buildings": [{"id": "6a0b2f4e8c1d3a0012ab34c1","slug": "ocean-drive-tower--miami-beach","kind": "building","name": "Ocean Drive Tower","path": "/condos/ocean-drive-tower--miami-beach","city": "Miami Beach","image": "https://media.pandaidx.com/buildings/ocean-drive-tower/cover.jpg","price": {"from": 485000,"to": 2250000},"beds": {"from": 0,"to": 3},"activeListings": {"forSale": 12,"forRent": 9,"pending": 2,"sold": 5}}],"pins": null,"total": 96,"page": 1,"pageSize": 24,"totalPages": 4}