Search Listings
Searches the MLS listings the account may show and returns one page of rows, a sample of map pins and the total. Filters go in the query string.
/v1/searchAuthentication
?key=pk_…Public key in the key query parameter. No OAuth, no secret.
Edge cache: public, s-maxage=3600, stale-while-revalidate=86400
Query Parameters
keystringThe site's public key (pk_…). It selects the account. Safe to ship to the browser.
qstringPlace to search: a city, ZIP code, building or development name, address or MLS number. Always send qtype with it.
qtypeenumWhat q is. city and postalCode search the area boundary, building and newdevelopment search a building, mlsNumber finds one listing, unit searches a unit number. adddress (sic) is the address type that autocomplete returns.
citypostalCodebuildingnewdevelopmentaddressadddressmlsNumberunitsearchstreetNumberstringStreet number, exact match.
streetNamestringStreet name, for example Brickell Bay Dr.
postalCodestringZIP code.
unitNumberstringUnit number.
buildingNamestringPhrase match on the building name and the subdivision name.
pointsstring (pipe-separated)Map area as a polygon: lat,lng pairs separated by |, at least three different points. The polygon closes itself. Example: 25.9,-80.3|25.9,-80.1|25.7,-80.1|25.7,-80.3. Invalid points answer 400.
mapRepositionbooleanSend 1 without points to search the whole MLS feed instead of its default map area.
statusstringListing status. Active excludes Active Under Contract. Other MLS status strings are matched as written.
ActiveActivePendingActive Under ContractClosedgroupenumsale or rent. When type is not sent, rent searches Residential Lease.
salesalerenttypestringMLS property type. Defaults to Residential, or Residential Lease when group=rent.
ResidentialResidentialResidential LeaseResidential IncomeCommercial SaleCommercial LeaseLandLand/Boat DocksBusiness Opportunitysubtypesstring (CSV)Property subtypes, comma-separated. Examples: Single Family Residence, Condominium, Townhouse, Villa, Apartment.
minpricenumberMinimum list price in USD (monthly rent for rentals). Range filters take whole numbers, and min and max are swapped if min is larger.
maxpricenumberMaximum list price in USD.
minbedsnumberMinimum bedrooms. Use 0 for studios.
maxbedsnumberMaximum bedrooms.
minbathsnumberMinimum bathrooms (whole bathrooms).
maxbathsnumberMaximum bathrooms.
minareanumberMinimum living area in square feet. Use minarea, not minsqft: the minsqft and maxsqft params are accepted but do not filter.
maxareanumberMaximum living area in square feet.
minlotnumberMinimum lot size in square feet.
maxlotnumberMaximum lot size in square feet.
minyearnumberMinimum year built.
maxyearnumberMaximum year built.
minhoanumberMinimum association (HOA) fee in USD.
maxhoanumberMaximum association (HOA) fee in USD.
minGarageSpacesnumberMinimum garage spaces.
maxGarageSpacesnumberMaximum garage spaces.
maxDaysOnPandanumberOnly listings entered in the last N days.
poolbooleanSend 1 or true for a private pool.
waterbooleanSend 1 or true for waterfront properties.
waterfrontFeaturesstring (CSV)Waterfront features, comma-separated. A listing matches when it has any of them.
BayCanalCanal FrontBridgeNo Fixed BridgesIntracoastalIntracoastal FrontLakeOcean AccessOcean FrontPointRiverSeawallgatedbooleanSend 1 or true for gated communities.
tennisCourtbooleanSend 1 or true for a tennis court.
golfCourtbooleanSend 1 or true for properties on a golf course.
boatDockbooleanSend 1 or true for communities with boating.
penthousebooleanSend 1 or true for penthouses.
seniorCommunityenum1 shows only senior communities. exclude hides them.
1excludeseasonalRentalsbooleanSend 1 or true for short-term leases.
petsAllowedbooleanSend 1 or true for rentals that allow pets.
furnishedbooleanSend 1 or true for furnished rentals.
shortSalesbooleanSend 1 or true for short sales.
agentstringMLS agent ID of the listing agent. IDs with or without the MLS prefix match.
brokersstringMLS office ID of the listing office.
sortenumSort order. -listdate sorts by close date when status=Closed.
-listprice-listpricelistprice-listdatebedsbathsoffsetnumberNumber of rows to skip.
0limitnumberRows per page. Values above 100 are capped at 100.
24cursorstringThe cursor from data.pagination, sent together with that page's offset and the same filters. Faster than a deep offset. Expires after 5 minutes.
Responses
application/jsondataobjectThe page of results. Absent when the search cannot run.
queryobjectThe parsed search the server ran, with defaults filled in (status, group, limit, sort, type, label, and the default map points).
Errors
400Invalid map area (points), or an address in q that could not be resolved.401Missing or invalid public key.403The account is not active. The body also has code: "TENANT_INACTIVE".404The key's account does not exist or has no MLS data feed.500Internal Server Error.Notes
- Without
qorpoints, results stay inside the default map area of the account's MLS feed. SendmapReposition=1to search the whole feed. - Always send
qtypewithq. Ifqmatches no known area, building or MLS number and has noqtype, the place filter is skipped and the default search runs. - Page with
offsetandlimit(max 100), or send thecursorandoffsetfromdata.pagination. UsePOST /v1/searchfor long queries such as polygons. - Rows follow the MLS display rules: street fields are removed when
InternetAddressDisplayYNis false. Show the feed disclaimers from/v1/search/bootstrapnext to listings.
curl --request GET \--url "https://api.pandaidx.com/v1/search?key={{public_key}}&q=Miami&qtype=city&minbeds=2&limit=3"
{"data": {"data": [{"_id": "6710a1b2c3d4e5f600000101","ListingId": "A11855701","OriginatingSystemKey": "miamire","ListPrice": 725000,"LivingArea": 1180,"BedroomsTotal": 2,"BathroomsTotalInteger": 2,"StreetNumber": "1200","StreetName": "Brickell Bay Dr","UnitNumber": "2504","City": "Miami","StateOrProvince": "FL","PostalCode": "33131","StandardStatus": "Active","PropertyType": "Residential","PropertySubType": "Condominium","ListOfficeName": "Example Realty Group","image": "https://example.com/photos/A11855701/1.jpg","Location": {"coordinates": [-80.1892,25.7651]}}],"mapData": [{"_id": "6710a1b2c3d4e5f600000101","ListingId": "A11855701","OriginatingSystemKey": "miamire","ListPrice": 725000,"Location": {"coordinates": [-80.1892,25.7651]}}],"total": 1842,"bounds": false,"pagination": {"next": {"offset": 24,"cursor": "{\"token\":\"…\",\"direction\":\"after\",\"key\":\"…\",\"offset\":24,\"pageSize\":24,\"expiresAt\":1760400300000}"},"previous": null}},"query": {"status": "Active","group": "sale","offset": 0,"limit": 24,"mapLimit": 250,"sort": "-listprice","points": false,"mapReposition": true,"minbeds": 2,"type": "Residential","label": "Residential"}}