{
  "description": "Search Airbnb stays by city, neighborhood, place ID or map area, or load specific listing URLs. Get nightly and stay-total prices, fees, host details, amenities, reviews and a 12-month availability calendar.",
  "properties": {
    "adults": {
      "default": 1,
      "description": "Number of adult guests (1-16).",
      "maximum": 16,
      "minimum": 1,
      "title": "Adults",
      "type": "integer"
    },
    "bbox": {
      "description": "Search inside a map rectangle instead of a named location. Use decimal degrees: swLat, swLng (south-west corner) and neLat, neLng (north-east corner), plus an optional zoom (1-22). Example: {\"swLat\": 40.7075, \"swLng\": -74.0135, \"neLat\": 40.7904, \"neLng\": -73.9591, \"zoom\": 13} (mode=search).",
      "editor": "json",
      "title": "Map bounding box",
      "type": "object"
    },
    "calendarMonths": {
      "default": 12,
      "description": "Number of months to return, starting with the current month (1-12).",
      "maximum": 12,
      "minimum": 1,
      "title": "Calendar months",
      "type": "integer"
    },
    "checkIn": {
      "description": "Stay start date in YYYY-MM-DD format. Leave both dates empty to use Airbnb's displayed quote (search) or to skip the price quote (details).",
      "editor": "textfield",
      "nullable": true,
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "sectionCaption": "Stay dates and guests",
      "title": "Check-in date",
      "type": "string"
    },
    "checkOut": {
      "description": "Stay end date in YYYY-MM-DD format. Must be after the check-in date.",
      "editor": "textfield",
      "nullable": true,
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "title": "Check-out date",
      "type": "string"
    },
    "children": {
      "default": 0,
      "description": "Number of children aged 2-12 (0-15).",
      "maximum": 15,
      "minimum": 0,
      "title": "Children",
      "type": "integer"
    },
    "currency": {
      "default": "USD",
      "description": "Currency for prices. Airbnb returns quotes in this currency.",
      "editor": "select",
      "enum": [
        "USD",
        "EUR",
        "GBP",
        "JPY",
        "CAD",
        "AUD",
        "NZD",
        "CHF",
        "SEK",
        "NOK",
        "DKK",
        "PLN",
        "CZK",
        "HUF",
        "RON",
        "BGN",
        "TRY",
        "RUB",
        "UAH",
        "ILS",
        "AED",
        "SAR",
        "QAR",
        "KWD",
        "BHD",
        "OMR",
        "EGP",
        "ZAR",
        "NGN",
        "KES",
        "GHS",
        "MAD",
        "INR",
        "PKR",
        "BDT",
        "LKR",
        "NPR",
        "CNY",
        "HKD",
        "TWD",
        "SGD",
        "MYR",
        "THB",
        "IDR",
        "PHP",
        "VND",
        "KRW",
        "MXN",
        "BRL",
        "ARS",
        "CLP",
        "COP",
        "PEN",
        "UYU",
        "CRC",
        "DOP"
      ],
      "enumTitles": [
        "US dollar",
        "Euro",
        "British pound",
        "Japanese yen",
        "Canadian dollar",
        "Australian dollar",
        "New Zealand dollar",
        "Swiss franc",
        "Swedish krona",
        "Norwegian krone",
        "Danish krone",
        "Polish zloty",
        "Czech koruna",
        "Hungarian forint",
        "Romanian leu",
        "Bulgarian lev",
        "Turkish lira",
        "Russian ruble",
        "Ukrainian hryvnia",
        "Israeli shekel",
        "UAE dirham",
        "Saudi riyal",
        "Qatari riyal",
        "Kuwaiti dinar",
        "Bahraini dinar",
        "Omani rial",
        "Egyptian pound",
        "South African rand",
        "Nigerian naira",
        "Kenyan shilling",
        "Ghanaian cedi",
        "Moroccan dirham",
        "Indian rupee",
        "Pakistani rupee",
        "Bangladeshi taka",
        "Sri Lankan rupee",
        "Nepalese rupee",
        "Chinese yuan",
        "Hong Kong dollar",
        "Taiwan dollar",
        "Singapore dollar",
        "Malaysian ringgit",
        "Thai baht",
        "Indonesian rupiah",
        "Philippine peso",
        "Vietnamese dong",
        "South Korean won",
        "Mexican peso",
        "Brazilian real",
        "Argentine peso",
        "Chilean peso",
        "Colombian peso",
        "Peruvian sol",
        "Uruguayan peso",
        "Costa Rican colon",
        "Dominican peso"
      ],
      "sectionCaption": "Language and network",
      "title": "Currency",
      "type": "string"
    },
    "includeCalendar": {
      "default": false,
      "description": "Fetch the day-by-day availability calendar for each listing.",
      "prefill": false,
      "title": "Include availability calendar",
      "type": "boolean"
    },
    "includeDetails": {
      "default": false,
      "description": "Adds the listing page and an exact stay quote: host, amenities, photos, description, fees and availability. Costs extra requests per listing.",
      "prefill": false,
      "sectionCaption": "Detail enrichment",
      "title": "Include full listing details",
      "type": "boolean"
    },
    "includeReviews": {
      "default": false,
      "description": "Fetch recent guest reviews for each listing (up to maxReviews).",
      "prefill": false,
      "title": "Include reviews",
      "type": "boolean"
    },
    "infants": {
      "default": 0,
      "description": "Number of infants under 2 (0-5).",
      "maximum": 5,
      "minimum": 0,
      "title": "Infants",
      "type": "integer"
    },
    "listingIds": {
      "description": "Numeric Airbnb listing IDs, e.g. 23222680. You can mix these with listing URLs (mode=details).",
      "editor": "stringList",
      "title": "Listing IDs",
      "type": "array"
    },
    "listingUrls": {
      "description": "Airbnb room URLs, e.g. https://www.airbnb.com/rooms/23222680 (mode=details).",
      "editor": "stringList",
      "sectionCaption": "Specific listings",
      "title": "Listing URLs",
      "type": "array"
    },
    "locale": {
      "default": "en",
      "description": "Language/region used for Airbnb labels, dates and localized text.",
      "editor": "select",
      "enum": [
        "en",
        "en-US",
        "en-GB",
        "en-CA",
        "en-AU",
        "de-DE",
        "fr-FR",
        "es-ES",
        "es-MX",
        "it-IT",
        "pt-BR",
        "pt-PT",
        "nl-NL",
        "sv-SE",
        "da-DK",
        "nb-NO",
        "fi-FI",
        "pl-PL",
        "cs-CZ",
        "hu-HU",
        "ro-RO",
        "el-GR",
        "tr-TR",
        "ru-RU",
        "uk-UA",
        "he-IL",
        "ar",
        "hi-IN",
        "id-ID",
        "th-TH",
        "vi-VN",
        "ja-JP",
        "ko-KR",
        "zh-CN",
        "zh-TW"
      ],
      "enumTitles": [
        "English",
        "English (United States)",
        "English (United Kingdom)",
        "English (Canada)",
        "English (Australia)",
        "German",
        "French",
        "Spanish (Spain)",
        "Spanish (Mexico)",
        "Italian",
        "Portuguese (Brazil)",
        "Portuguese (Portugal)",
        "Dutch",
        "Swedish",
        "Danish",
        "Norwegian",
        "Finnish",
        "Polish",
        "Czech",
        "Hungarian",
        "Romanian",
        "Greek",
        "Turkish",
        "Russian",
        "Ukrainian",
        "Hebrew",
        "Arabic",
        "Hindi",
        "Indonesian",
        "Thai",
        "Vietnamese",
        "Japanese",
        "Korean",
        "Chinese (Simplified)",
        "Chinese (Traditional)"
      ],
      "title": "Locale",
      "type": "string"
    },
    "location": {
      "description": "City, region, country or neighborhood, e.g. New York, Paris, SoHo. Airbnb's own location lookup validates the name before searching (mode=search).",
      "editor": "textfield",
      "prefill": "New York",
      "title": "Location",
      "type": "string"
    },
    "maxListings": {
      "default": 20,
      "description": "Hard cap on records (1-300). Airbnb pages hold 40 results each; duplicate cards are removed automatically.",
      "maximum": 300,
      "minimum": 1,
      "prefill": 3,
      "sectionCaption": "Output",
      "title": "Maximum listings",
      "type": "integer"
    },
    "maxPrice": {
      "default": 0,
      "description": "Highest nightly price to include, in the selected currency. 0 means no maximum.",
      "maximum": 100000,
      "minimum": 0,
      "title": "Maximum nightly price",
      "type": "integer"
    },
    "maxReviews": {
      "default": 12,
      "description": "Reviews returned per listing (1-24).",
      "maximum": 24,
      "minimum": 1,
      "title": "Maximum reviews per listing",
      "type": "integer"
    },
    "minBathrooms": {
      "default": 0,
      "description": "Minimum number of bathrooms. 0 means no minimum.",
      "maximum": 20,
      "minimum": 0,
      "title": "Minimum bathrooms",
      "type": "integer"
    },
    "minBedrooms": {
      "default": 0,
      "description": "Minimum number of bedrooms. 0 means no minimum.",
      "maximum": 20,
      "minimum": 0,
      "title": "Minimum bedrooms",
      "type": "integer"
    },
    "minBeds": {
      "default": 0,
      "description": "Minimum number of beds. 0 means no minimum.",
      "maximum": 30,
      "minimum": 0,
      "title": "Minimum beds",
      "type": "integer"
    },
    "minPrice": {
      "default": 0,
      "description": "Lowest nightly price to include, in the selected currency. 0 means no minimum.",
      "maximum": 100000,
      "minimum": 0,
      "sectionCaption": "Filters",
      "title": "Minimum nightly price",
      "type": "integer"
    },
    "mode": {
      "default": "search",
      "description": "Search discovers listings by location or map area. Details loads the listing URLs or IDs you provide.",
      "editor": "select",
      "enum": [
        "search",
        "details"
      ],
      "enumTitles": [
        "Search by location or map area",
        "Load specific listing URLs or IDs"
      ],
      "prefill": "search",
      "sectionCaption": "Search",
      "title": "Mode",
      "type": "string"
    },
    "neighborhood": {
      "description": "Optional neighborhood to combine with Location, e.g. SoHo + New York (mode=search).",
      "editor": "textfield",
      "title": "Neighborhood",
      "type": "string"
    },
    "pets": {
      "default": 0,
      "description": "Number of pets (0-5).",
      "maximum": 5,
      "minimum": 0,
      "title": "Pets",
      "type": "integer"
    },
    "placeId": {
      "description": "Optional Google/Airbnb place ID (e.g. ChIJOwg_06VPwokRYv534QaPC8g). Takes precedence over the resolved location and skips text matching (mode=search).",
      "editor": "textfield",
      "title": "Airbnb place ID",
      "type": "string"
    },
    "propertyType": {
      "default": "Any",
      "description": "Restrict results to one Airbnb property type.",
      "editor": "select",
      "enum": [
        "Any",
        "Apartment",
        "House",
        "Villa",
        "Condominium",
        "Loft",
        "Guest suite",
        "Guesthouse",
        "Hotel",
        "Resort",
        "Cottage",
        "Cabin",
        "Bungalow",
        "Townhouse",
        "Tiny home",
        "Boat",
        "Barn",
        "Camper/RV",
        "Farm stay",
        "Castle",
        "Cave",
        "Dome",
        "Container",
        "Treehouse",
        "Yurt",
        "Serviced apartment"
      ],
      "enumTitles": [
        "Any property type",
        "Apartment",
        "House",
        "Villa",
        "Condominium",
        "Loft",
        "Guest suite",
        "Guesthouse",
        "Hotel",
        "Resort",
        "Cottage",
        "Cabin",
        "Bungalow",
        "Townhouse",
        "Tiny home",
        "Boat",
        "Barn",
        "Camper/RV",
        "Farm stay",
        "Castle",
        "Cave",
        "Dome",
        "Container",
        "Treehouse",
        "Yurt",
        "Serviced apartment"
      ],
      "title": "Property type",
      "type": "string"
    },
    "proxyConfiguration": {
      "description": "Optional. Leave empty and the actor connects directly, then switches to an automatic Apify proxy only if Airbnb blocks a request.",
      "editor": "proxy",
      "title": "Proxy configuration",
      "type": "object"
    },
    "roomType": {
      "default": "Any",
      "description": "Restrict results to one Airbnb room type.",
      "editor": "select",
      "enum": [
        "Any",
        "Entire home/apt",
        "Private room",
        "Shared room",
        "Hotel room"
      ],
      "enumTitles": [
        "Any room type",
        "Entire home or apartment",
        "Private room",
        "Shared room",
        "Hotel room"
      ],
      "title": "Room type",
      "type": "string"
    }
  },
  "schemaVersion": 1,
  "title": "Airbnb Stay Finder: Nightly Rates, Fees & Availability",
  "type": "object"
}
