Search Airbnb Properties by City or Destination
View all Airbnb Search, Prices & Reviews endpoints →Find properties with a destination query such as Paris, France. Optional checkin and checkout dates use YYYY-MM-DD; adults, currency, locale, page, budget and returned filter IDs refine the request. The observed positive body had status:true, a Paris-specific message, currentPage, resultsPerPage, totalPages, totalResultCount and data with filters and a nonempty homes array. Live homes included title, nameLocalized, photos, demandStayListing identifiers and coordinates, and structuredDisplayPrice. This shape differs from stays-search: the current sample did not expose homes[].listing.id. An impossible destination returned HTTP 200 with status:false, message Query is not available, zero counts and data:null. Treat that as a failed query, not a measured empty market.
API Features
Live API Demo
🔒 Sign in to try it live
Log in to call this API with your own API key. New accounts get 100 free credits — no card required.
Log in / Sign upNo active API key found. Create one in your Dashboard, then reload this page. Dashboard →
/api/project/airbnb-search/properties-search API Response (JSON)
{} curl -X GET 'https://api.opendata-api.com/api/project/airbnb-search/properties-search?key=<API_KEY>&query=Paris%2C+France&adults=2¤cy=USD&locale=en-US&page=1'
Query Result
Use Cases
- Create a city-based rental shortlist filtered by trip dates, guest counts, budget and room privacy.
- Record timestamped advertised-rate observations for a local comparable-property sample without implying historical coverage.
- Let travelers refine a text destination with pet-friendly, self-check-in and instant-book flags without making a reservation.
- Flag unresolvable destination queries in a research pipeline instead of recording zero listings for that market.
Frequently asked questions
Does HTTP 200 mean the destination search succeeded?
Not necessarily. The observed nonexistent destination returned HTTP 200 with status:false, data:null, Query is not available and zero result counts. Check the business status before processing homes or interpreting counts.
Can I assume every home contains listing.id?
No. Older documented examples refer to homes[].listing.id, while the current live homes used demandStayListing.id and had no listing object. Inspect the actual response and do not pass an encoded demandStayListing identifier as a decimal property ID without resolving the correct ID.