[
  {
    "parameter": "place_id",
    "type": "single value (string)",
    "example": "place_id=ChIJhdqtz4aI7UYRefD8s-aZ73I",
    "knownValues": "any Google Places ID",
    "notes": "The search region as a Google Places ID. CustomBNB always searches within Europe."
  },
  {
    "parameter": "checkin",
    "type": "single value (date, YYYY-MM-DD)",
    "example": "checkin=2026-09-01",
    "knownValues": "—",
    "notes": "Omitted entirely for a dateless (flexible) search, along with checkout."
  },
  {
    "parameter": "checkout",
    "type": "single value (date, YYYY-MM-DD)",
    "example": "checkout=2026-09-08",
    "knownValues": "—",
    "notes": "Paired with checkin; both or neither."
  },
  {
    "parameter": "room_types[]",
    "type": "repeatable array (string)",
    "example": "room_types[]=Entire home/apt",
    "knownValues": "Entire home/apt, Private room, Shared room",
    "notes": "Repeat the parameter once per value to select more than one."
  },
  {
    "parameter": "l2_property_type_ids[]",
    "type": "repeatable array (integer)",
    "example": "l2_property_type_ids[]=2",
    "knownValues": "1=House, 2=Apartment, 8=Guest House, 4=Hotel",
    "notes": "Airbnb's internal property-type IDs. CustomBNB's search tool only offers these 4 — Airbnb's own UI exposes roughly 50 property types in total, most of them undocumented."
  },
  {
    "parameter": "min_bedrooms",
    "type": "single value (integer)",
    "example": "min_bedrooms=2",
    "knownValues": "0 and up",
    "notes": ""
  },
  {
    "parameter": "min_beds",
    "type": "single value (integer)",
    "example": "min_beds=3",
    "knownValues": "0 and up",
    "notes": ""
  },
  {
    "parameter": "min_bathrooms",
    "type": "single value (integer)",
    "example": "min_bathrooms=1",
    "knownValues": "0 and up",
    "notes": ""
  },
  {
    "parameter": "amenities[]",
    "type": "repeatable array (integer)",
    "example": "amenities[]=25",
    "knownValues": "see the full 500+ code dataset",
    "notes": "One of Airbnb’s numeric amenity codes. Repeat the parameter once per code to stack filters."
  },
  {
    "parameter": "price_min",
    "type": "single value (integer)",
    "example": "price_min=50",
    "knownValues": "0 and up",
    "notes": "Per-night price floor, in the currency Airbnb has resolved for the visitor."
  },
  {
    "parameter": "price_max",
    "type": "single value (integer)",
    "example": "price_max=200",
    "knownValues": "0 and up",
    "notes": "Per-night price ceiling."
  },
  {
    "parameter": "superhost",
    "type": "boolean",
    "example": "superhost=true",
    "knownValues": "true",
    "notes": "Present and set to true to restrict to Superhost listings; omitted otherwise."
  }
]