Get Listing Detail

Returns the public details of one listing by MLS number, with its photos in order. Agent-only fields are never included.

GET/v1/listings/:listingId

Authentication

Public key?key=pk_…

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

Edge cache: no-store

Path Parameters

listingIdstring
required

The MLS number (`ListingId`) of the listing.

Query Parameters

keystring
required

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

originatingSystemKeystring
optional

The MLS feed the listing belongs to (`OriginatingSystemKey` of a search row). Send it when you have it: the same number can exist in two feeds.

viewenum
optional

`sheet` adds the extra public fields of the printable MLS sheet.

Default:detail
detailsheet
detailLocaleenum
optional

Adds `detail`: the same listing formatted for display (labels, prices, fact groups, MLS compliance text) in this language. Unknown values fall back to English. Also fills `data.Localized` in that language.

enesbritrufrsrdecnplrotr
localestring
optional

Adds `data.Localized` with the remarks and feature lists in this language: `en`, `es`, `br`, `pt`, `it`, `ru`, `fr`, `sr`, `de`, `cn`, `zh`, `pl`, `ro`, `tr` or `ar`. Defaults to `detailLocale`.

Responses

200Success
application/json
messagestring

`Listing Found`.

dataobject

The listing with its RESO fields and `photos`, an ordered list of photo URLs. `Localized` is added when a language is requested.

detailobject

Only with `detailLocale`: `{ id, feed, title, address, price, estimatedPayment, beds, baths, livingArea, status, forSale, remarks, highlights, photos, coordinates, facts, compliance }`.

Errors

401Missing or invalid public key.
403The account is not active. The body also has `code: "TENANT_INACTIVE"`.
404Listing not found: it does not exist, belongs to a feed the account does not have, or the account has no MLS data feed.
500Internal Server Error.

Notes

  • MLS compliance: an account without a data feed never sees another MLS's listings, so the answer is 404. When the MLS hides the address, the street fields are removed.
  • The answer is not edge-cached. Cache it on your side.
  • Show `detail.compliance` (the courtesy line and the MLS disclaimer) on every listing page.
  • Agent-only fields come from `GET /v1/listings/:listingId/private`.
Request
curl --request GET \
--url "https://api.pandaidx.com/v1/listings/A11855701?key={{public_key}}&originatingSystemKey=miamire"
Response200 OK
{
"message": "Listing Found",
"data": {
"_id": "6710a1b2c3d4e5f600000101",
"ListingId": "A11855701",
"OriginatingSystemKey": "miamire",
"OriginatingSystemName": "MIAMI Association of REALTORS",
"StandardStatus": "Active",
"PropertyType": "Residential",
"PropertySubType": "Condominium",
"ListPrice": 725000,
"PreviousListPrice": 749000,
"BedroomsTotal": 2,
"BathroomsTotalInteger": 2,
"LivingArea": 1180,
"YearBuilt": 2016,
"StreetNumber": "1200",
"StreetName": "Brickell Bay Dr",
"UnitNumber": "2504",
"City": "Miami",
"StateOrProvince": "FL",
"PostalCode": "33131",
"UnparsedAddress": "1200 Brickell Bay Dr #2504, Miami, FL 33131",
"BuildingName": "Bay Harbor Towers",
"PublicRemarks": "Bright corner unit with bay views and floor-to-ceiling windows.",
"ListOfficeName": "Example Realty Group",
"DaysOnMarket": 18,
"AssociationFee": 1150,
"WaterfrontYN": true,
"InternetAddressDisplayYN": true,
"Location": {
"coordinates": [
-80.1892,
25.7651
]
},
"photos": [
"https://example.com/photos/A11855701/1.jpg",
"https://example.com/photos/A11855701/2.jpg"
]
}
}