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.

GET/v1/buildings/:slug/listings

Authentication

Public key?key=pk_…

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

Edge cache: 300 s + stale-while-revalidate 900 s

Path Parameters

slugstring
required

The building slug, from `buildings[].slug` of List Condos.

Query Parameters

keystring
required

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

statusenum
optional

Which tab to list: active sales, active rentals, pending (under contract), or sales and leases closed in the last 6 months.

Default:sale
salerentpendingsoldrented
sortenum
optional

Sort order. The `sold` and `rented` tabs always list the latest closings first and ignore this value.

Default:-listdate
-listdatelistprice-listpricebedsbaths
bedsenum
optional

Bedrooms filter. `0` is a studio and `4+` is four or more. Omit it (or send `all`) to list every size.

01234+
pagenumber
optional

Page number, starting at 1. Values above 500 are clamped to 500.

Default:1
pageSizenumber
optional

Listings per page. Values above 48 are clamped to 48.

Default:12

Responses

200Success
application/json
statusenum

The tab that was applied.

sortenum

The sort that was applied.

bedsstring | null

The bedrooms filter that was applied, or `null` for all.

listingsarray

Listing 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`.

pagenumber
pageSizenumber
hasMoreboolean

True when another page exists.

salesHistoryarray | null

Closed 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`.
Request
curl --request GET \
--url "https://api.pandaidx.com/v1/buildings/ocean-drive-tower--miami-beach/listings?key={{public_key}}"
Response200 OK
{
"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
}
]
}