Search Listings with an API Key
Searches the MLS listings your account is licensed for, with the same filters as your website search. Each listing comes with websiteUrl, its page on your website, ready to send to a lead.
/v1/listingsAuthentication
Authorization: BearerSecret API key as Authorization: Bearer sk_live_…. Create it in the dashboard under Workspace settings › API Keys, with full access or only the areas it needs (see API Keys & Scopes). Keys are for servers only. Needs the listings:read scope.
Query Parameters
propertyTypestringResidential (homes for sale, the default), Residential Lease (rentals), Residential Income, Commercial Sale, Land…
ResidentialstatusenumListing status.
ActiveActivePendingActive Under ContractClosedcitystringCity. Every word must match: Miami Beach returns Miami Beach and North Miami Beach.
postalCodestringZIP code.
buildingNamestringCondo building name.
subdivisionstringSubdivision or neighborhood name.
minPricenumberLowest price. For rentals, the monthly rent.
maxPricenumberHighest price. For rentals, the monthly rent.
minBedsnumberFewest bedrooms.
maxBedsnumberMost bedrooms.
minBathsnumberFewest bathrooms.
maxBathsnumberMost bathrooms.
minAreanumberSmallest living area, in square feet.
maxAreanumberLargest living area, in square feet.
poolbooleantrue keeps only listings with a private pool.
waterfrontbooleantrue keeps only waterfront listings.
furnishedbooleantrue keeps only furnished listings, false only unfurnished ones. Leave it out for both.
petsAllowedbooleantrue keeps only listings that allow pets.
sortenumOrder: highest price first (-price), lowest first, newest first (-listed), fewest beds or baths first.
-price-priceprice-listedbedsbathslimitnumberListings per page, 1 to 50.
20offsetnumberListings to skip, up to 1000.
0Responses
application/jsontotalnumberMatching listings. Past 10 it is a lower bound.
offsetnumberlimitnumberdataarrayListings with their RESO fields.
Errors
401Missing, invalid or revoked API key. The body is { error: { code, message } }.403The account has no active subscription (error.code subscription_inactive), or the key lacks the required scope (insufficient_scope, and error.details.required names it).429More than 120 requests per minute for this key. Wait for the Retry-After header.422A parameter is wrong or unknown (a typo such as maxPrize is rejected, never ignored). error.details names it.Notes
- This is the server-side search for your own systems and agents. Websites use the Site API's Search Listings with the public key.
- Only listings from the MLS feeds your account is licensed for are returned.
curl --request GET \--url "https://api.pandaidx.com/v1/listings?propertyType=Residential%20Lease&city=Miami%20Beach&maxPrice=7000&minBeds=3&minBaths=2&petsAllowed=true" \--header "Authorization: Bearer {{api_key}}"
{"total": 4,"offset": 0,"limit": 20,"data": [{"_id": "6a1f0c2b3d4e5f6071829304","ListingId": "B26059333","PropertyType": "Residential Lease","StandardStatus": "Active","ListPrice": 5500,"LeaseAmountFrequency": "Monthly","BedroomsTotal": 3,"BathroomsTotalInteger": 2,"LivingArea": 1480,"StreetNumber": "1500","StreetName": "Bay","UnitNumber": "804","City": "Miami Beach","StateOrProvince": "FL","PostalCode": "33139","image": "https://media.example.com/B26059333/1.jpg","photos": ["https://media.example.com/B26059333/1.jpg","https://media.example.com/B26059333/2.jpg"],"coordinates": {"lat": 25.7826,"lng": -80.1371},"websiteUrl": "https://anatorres.com/mls/B26059333"}]}