Search Bootstrap
Returns the public account details and the first page of search results in one call. Use it to render a search page on the server.
/v1/search/bootstrapAuthentication
?key=pk_…Public key in the `key` query parameter. No OAuth, no secret.
Edge cache: no-store
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 Google 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 ContractClosedgroupenum`sale` 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.
seniorCommunityenum`1` 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.
cardsLocalestringSend any non-empty value, for example `en`, to also get `cards`: one display-ready card per listing row. It never filters the search.
Responses
application/jsonapplicationobjectPublic subset of the account: id, site URL, MLS feeds, the legal `disclaimers` of each feed, logos, and the owner's public contact.
listingsobjectSame body as `GET /v1/search`: `{ data, query }`.
cardsarrayOnly with `cardsLocale`: `{ id, feed, path, title, address, price, listPrice, beds, baths, livingArea, status, forSale, photos, coordinates, courtesy, videoUrl }` per row, formatted in English.
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
- Accepts every filter of `GET /v1/search`.
- The answer is not edge-cached. Cache it on your side, for example with a short revalidate time.
- Render each `disclaimers[].text` and each card's `courtesy` line next to the listings. MLS rules require them.
curl --request GET \--url "https://api.pandaidx.com/v1/search/bootstrap?key={{public_key}}&q=Miami&qtype=city&minbeds=2&limit=3"
{"application": {"_id": "6710a1b2c3d4e5f600000001","url": "https://www.example-realty.com","dataFeeds": ["miamire"],"dataFeed": "miamire","disclaimers": [{"feed": "miamire","name": "MIAMI Association of REALTORS","logoUrl": "https://example.com/logos/miamire.jpeg","text": "IDX information is provided exclusively for personal, non-commercial use… Listing Information presented by"}],"settings": {"logo": "https://example.com/logo.png"},"user": {"_id": "6710a1b2c3d4e5f600000002","name": "Jordan Example","email": "jordan@example.com","phones": ["305-555-0142"]}},"listings": {"data": {"data": [{"_id": "6710a1b2c3d4e5f600000101","ListingId": "A11855701","OriginatingSystemKey": "miamire","ListPrice": 725000,"BedroomsTotal": 2,"City": "Miami","StandardStatus": "Active"}],"mapData": [],"total": 1842,"bounds": false,"pagination": {"next": null,"previous": null}},"query": {"status": "Active","group": "sale","offset": 0,"limit": 24,"sort": "-listprice","type": "Residential","label": "Residential"}}}