List Building Listings
Returns listing cards inside a condo building from the account's MLS feeds, by tab: sale, rent, pending, sold or rented. Page 1 also carries a 6-month sales history.
/v1/buildings/:slug/listingsAuthentication
?key=pk_…Public key in the `key` query parameter. No OAuth, no secret.
Edge cache: 300 s + stale-while-revalidate 900 s
Path Parameters
slugstringThe building slug, from `buildings[].slug` of List Condos.
Query Parameters
keystringThe site's public key (pk_…). It selects the account. Safe to ship to the browser.
statusenumWhich tab to list: active sales, active rentals, pending (under contract), or sales and leases closed in the last 6 months.
salesalerentpendingsoldrentedsortenumSort order. The `sold` and `rented` tabs always list the latest closings first and ignore this value.
-listdate-listdatelistprice-listpricebedsbathsbedsenumBedrooms filter. `0` is a studio and `4+` is four or more. Omit it (or send `all`) to list every size.
01234+pagenumberPage number, starting at 1. Values above 500 are clamped to 500.
1pageSizenumberListings per page. Values above 48 are clamped to 48.
12Responses
application/jsonstatusenumThe tab that was applied.
sortenumThe sort that was applied.
bedsstring | nullThe bedrooms filter that was applied, or `null` for all.
listingsarrayListing cards with RESO field names, the same card as property search plus `ListOfficeName`, `UnparsedAddress` and `ClosePrice` on closed tabs. When `InternetAddressDisplayYN` is false the street fields come back `null`.
pagenumberpageSizenumberhasMorebooleanTrue when another page exists.
salesHistoryarray | nullClosed sales of the last 6 months, newest month first, as `{ month, count, avgPrice, avgPriceSqFt }`. Months without sales have `count: 0`. Only on page 1, otherwise `null`.
Errors
400`status`, `sort` or `beds` has a value outside the allowed list.404The building does not exist or the slug is malformed. The body is `{ "message": "Building not found" }`.401Missing or invalid public key.403The account has no active subscription. The body also carries `code: "TENANT_INACTIVE"`.500Unexpected server error.Notes
- Listings come from the MLS feeds connected to the account. An account with no feed gets an empty `listings` array.
- `salesHistory` counts closed residential sales and does not depend on `status`.
- Open one listing with the listing detail endpoint using `ListingId` and `originatingSystemKey`.
curl --request GET \--url "https://api.pandaidx.com/v1/buildings/ocean-drive-tower--miami-beach/listings?key={{public_key}}"
{"status": "sale","sort": "-listdate","beds": null,"listings": [{"_id": "6a2c91d07e4b5f0012cd56a2","ListingId": "A11700001","OriginatingSystemKey": "MIAMI","ListPrice": 949000,"BedroomsTotal": 2,"BathroomsTotalInteger": 2,"LivingArea": 1180,"UnparsedAddress": "1200 Ocean Dr #1804, Miami Beach, FL 33139","UnitNumber": "1804","City": "Miami Beach","StateOrProvince": "FL","PostalCode": "33139","StandardStatus": "Active","PropertySubType": "Condominium","ListOfficeName": "Sample Realty Group","image": "https://media.pandaidx.com/listings/a11700001/1.jpg","InternetAddressDisplayYN": true}],"page": 1,"pageSize": 12,"hasMore": false,"salesHistory": [{"month": "2026-10","count": 1,"avgPrice": 1020000,"avgPriceSqFt": 985}]}