Skip to main content
Glama

chathome.lu — Luxembourg Real Estate

Search Properties For Sale

search_for_sale
Read-onlyIdempotent

Search properties for sale in Luxembourg by default; includeCrossBorder opts into commuter-belt inventory by location, price, rooms, area, property type, and positive-evidence amenities, with explicit sort and completeness metadata. Every sourced result identifies and links the original agency listing and states its latest catalogue re-sighting time; thumbnails of the top results are attached as image content blocks.

Input Schema

NameRequiredDescriptionDefault
sortNo
limitNo
gardenNo
localeNoResponse locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')
balconyNo
communeNoSupported municipality, city quarter or village name; use resolve_location if ambiguous
minBedsNo
elevatorNo
maxPriceNo
minPriceNo
furnishedNo
maxAreaSqmNo
minAreaSqmNo
parkingTypeNo
petsAllowedNo
minBathroomsNo
propertyTypeNo
includePhotosNo
maxTotalMonthlyNoRental-only confirmed all-in monthly ceiling; missing cost evidence is excluded
shownListingIdsNoAlready shown listing IDs, accumulated across pages. Excludes those IDs from this live result window; not a stable market snapshot.
includeCrossBorderNoInclude supported Grande Région inventory; default false keeps Luxembourg-only compatibility

Output Schema

NameRequiredDescriptionDefault
noteNo
totalYesExact number of listing objects returned in this response; not the number of matches in the market.
trustNo
sourceNo
hasMoreNo
rankingNo
sessionNo
followUpNo
listingsYes
countKindNo
truncatedNo
nextCursorNo
matchingCountNo
returnedCountNo
understandingNoWhat the engine understood from the request. notChecked lists wishes no returned home is confirmed to have.
searchExhaustiveNo
matchingCountKindNo
excludedUnprovenCountNoUpstream rows omitted because public facts could not prove every requested hard filter.
marketMatchingUpperBoundNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed81 schema fields changed
    • removedOutput schema / properties / listings / items / properties / agencyName / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / agencyName / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / areaSqm / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / areaSqm / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / availability / properties / availableFrom / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / availability / properties / availableFrom / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / availability / properties / moveInState / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / availability / properties / moveInState / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / baths / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / baths / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / beds / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / beds / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / charges / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / charges / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / city / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / city / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / description / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / description / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / district / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / district / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / energyClass / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / energyClass / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / listings / items / properties / fieldProvenance / additionalProperties / properties / observedAt / anyOf
      Previous value: -[
      -  {
      -    "format": "date-time",
      -    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "format": "date-time",
      +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / listings / items / properties / fieldProvenance / additionalProperties / properties / publisher / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / fieldProvenance / additionalProperties / properties / publisher / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / listings / items / properties / history / properties / firstObservedAt / anyOf
      Previous value: -[
      -  {
      -    "format": "date-time",
      -    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "format": "date-time",
      +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / listings / items / properties / history / properties / lastChangedAt / anyOf
      Previous value: -[
      -  {
      -    "format": "date-time",
      -    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "format": "date-time",
      +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / listings / items / properties / history / properties / priceDropTotalEur / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / history / properties / priceDropTotalEur / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / latitude / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / latitude / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / location / properties / address / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / location / properties / address / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / location / properties / city / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / location / properties / city / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / location / properties / district / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / location / properties / district / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / location / properties / postalCode / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / location / properties / postalCode / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / longitude / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / longitude / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / match / properties / allRequiredConstraintsSatisfied / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / match / properties / allRequiredConstraintsSatisfied / type
      Added value: +[
      +  "boolean",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / match / properties / requiredConstraints / items / properties / actual / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / match / properties / requiredConstraints / items / properties / actual / type
      Added value: +[
      +  "string",
      +  "number",
      +  "boolean",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / price / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / price / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / pricePerSqm / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / pricePerSqm / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / property / properties / completionYear / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / property / properties / completionYear / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / property / properties / condition / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / property / properties / condition / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / property / properties / constructionYear / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / property / properties / constructionYear / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / property / properties / floor / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / property / properties / floor / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / property / properties / heatingEnergy / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / property / properties / heatingEnergy / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / property / properties / heatingType / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / property / properties / heatingType / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / property / properties / landAreaSqm / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / property / properties / landAreaSqm / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / property / properties / privateRoomAreaSqm / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / property / properties / privateRoomAreaSqm / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / property / properties / rooms / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / property / properties / rooms / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / property / properties / totalFloors / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / property / properties / totalFloors / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / listings / items / properties / propertyType / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / listings / items / properties / propertyType / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / listings / items / properties / rent / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "agencyFee": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "agencyFeeBasis": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "tenant_share",
      -              "total_commission",
      -              "unknown"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "baseMonthly": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "chargesIncluded": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "chargesMonthly": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "deposit": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "depositExceedsMaximum": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "depositMaximum": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "estimatedMonthlyTotal": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "estimatedMonthlyTotalIsLowerBound": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "estimatedUtilitiesMonthly": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "exactUpfrontCost": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "firstChargeAdvance": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "heatingMayBeDoubleCounted": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "indicativeInsuranceMonthly": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "knownMonthlyLowerBound": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "knownUpfrontCost": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "mandatoryMoveInFeeTotal": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "mandatoryMoveInFees": {
      -        "items": {
      -          "additionalProperties": {},
      -          "properties": {},
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "mandatoryRecurringFeeTotal": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "mandatoryRecurringFees": {
      -        "items": {
      -          "additionalProperties": {},
      -          "properties": {},
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "monthlyTotal": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "monthlyTotalStatus": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "known",
      -              "unknown_charges",
      -              "conflicting_charges",
      -              "invalid_price",
      -              "unknown_mandatory_recurring_fees"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "reportedDeposit": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "unknownComponents": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "upfrontCostIsExact": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "upfrontCostIsLowerBound": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "baseMonthly",
      -      "chargesMonthly",
      -      "chargesIncluded",
      -      "monthlyTotal",
      -      "monthlyTotalStatus",
      -      "knownMonthlyLowerBound",
      -      "estimatedMonthlyTotal",
      -      "estimatedMonthlyTotalIsLowerBound",
      -      "estimatedUtilitiesMonthly",
      -      "indicativeInsuranceMonthly",
      -      "heatingMayBeDoubleCounted",
      -      "firstChargeAdvance",
      -      "reportedDeposit",
      -      "deposit",
      -      "depositMaximum",
      -      "depositExceedsMaximum",
      -      "agencyFee",
      -      "agencyFeeBasis",
      -      "mandatoryRecurringFees",
      -      "mandatoryRecurringFeeTotal",
      -      "mandatoryMoveInFees",
      -      "mandatoryMoveInFeeTotal",
      -      "knownUpfrontCost",
      -      "exactUpfrontCost",
      -      "upfrontCostIsLowerBound",
      -      "upfrontCostIsExact",
      -      "unknownComponents"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "agencyFee": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "agencyFeeBasis": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "tenant_share",
      +              "total_commission",
      +              "unknown"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "baseMonthly": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "chargesIncluded": {
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "chargesMonthly": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "deposit": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "depositExceedsMaximum": {
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "depositMaximum": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "estimatedMonthlyTotal": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "estimatedMonthlyTotalIsLowerBound": {
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "estimatedUtilitiesMonthly": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "exactUpfrontCost": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "firstChargeAdvance": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "heatingMayBeDoubleCounted": {
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "indicativeInsuranceMonthly": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "knownMonthlyLowerBound": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "knownUpfrontCost": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "mandatoryMoveInFeeTotal": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "mandatoryMoveInFees": {
      +        "items": {
      +          "additionalProperties": {},
      +          "properties": {},
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "mandatoryRecurringFeeTotal": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "mandatoryRecurringFees": {
      +        "items": {
      +          "additionalProperties": {},
      +          "properties": {},
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "monthlyTotal": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "monthlyTotalStatus": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "known",
      +              "unknown_charges",
      +              "conflicting_charges",
      +              "invalid_price",
      +              "unknown_mandatory_recurring_fees"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "reportedDeposit": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "unknownComponents": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "upfrontCostIsExact": {
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "upfrontCostIsLowerBound": {
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "baseMonthly",
      +      "chargesMonthly",
      +      "chargesIncluded",
      +      "monthlyTotal",
      +      "monthlyTotalStatus",
      +      "knownMonthlyLowerBound",
      +      "estimatedMonthlyTotal",
      +      "estimatedMonthlyTotalIsLowerBound",
      +      "estimatedUtilitiesMonthly",
      +      "indicativeInsuranceMonthly",
      +      "heatingMayBeDoubleCounted",
      +      "firstChargeAdvance",
      +      "reportedDeposit",
      +      "deposit",
      +      "depositMaximum",
      +      "depositExceedsMaximum",
      +      "agencyFee",
      +      "agencyFeeBasis",
      +      "mandatoryRecurringFees",
      +      "mandatoryRecurringFeeTotal",
      +      "mandatoryMoveInFees",
      +      "mandatoryMoveInFeeTotal",
      +      "knownUpfrontCost",
      +      "exactUpfrontCost",
      +      "upfrontCostIsLowerBound",
      +      "upfrontCostIsExact",
      +      "unknownComponents"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / listings / items / properties / source / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "agencyConfirmedAt": {
      -        "anyOf": [
      -          {
      -            "format": "date-time",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "agencyListingId": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "agencyName": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "lastSeenAt": {
      -        "anyOf": [
      -          {
      -            "format": "date-time",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "listingUrl": {
      -        "format": "uri",
      -        "type": "string"
      -      },
      -      "status": {
      -        "enum": [
      -          "active",
      -          "under_offer",
      -          "unknown"
      -        ],
      -        "type": "string"
      -      },
      -      "statusBasis": {
      -        "enum": [
      -          "source_catalog_seen",
      -          "listing_record_active"
      -        ],
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "original_agency_listing",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "agencyName",
      -      "listingUrl",
      -      "agencyListingId",
      -      "lastSeenAt",
      -      "status",
      -      "statusBasis",
      -      "agencyConfirmedAt"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "agencyConfirmedAt": {
      +        "anyOf": [
      +          {
      +            "format": "date-time",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "agencyListingId": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "agencyName": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "lastSeenAt": {
      +        "anyOf": [
      +          {
      +            "format": "date-time",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "listingUrl": {
      +        "format": "uri",
      +        "type": "string"
      +      },
      +      "status": {
      +        "enum": [
      +          "active",
      +          "under_offer",
      +          "unknown"
      +        ],
      +        "type": "string"
      +      },
      +      "statusBasis": {
      +        "enum": [
      +          "source_catalog_seen",
      +          "listing_record_active"
      +        ],
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "original_agency_listing",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "agencyName",
      +      "listingUrl",
      +      "agencyListingId",
      +      "lastSeenAt",
      +      "status",
      +      "statusBasis",
      +      "agencyConfirmedAt"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / understanding / properties / checked / items / properties / unit / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / understanding / properties / checked / items / properties / unit / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / understanding / properties / checked / items / properties / value / anyOf
      Removed value: -[
      -  {
      -    "anyOf": [
      -      {
      -        "type": "number"
      -      },
      -      {
      -        "type": "string"
      -      }
      -    ]
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / understanding / properties / checked / items / properties / value / type
      Added value: +[
      +  "number",
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / understanding / properties / commutes / items / properties / maxMinutes / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / understanding / properties / commutes / items / properties / maxMinutes / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / understanding / properties / places / items / properties / radiusKm / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / understanding / properties / places / items / properties / radiusKm / type
      Added value: +[
      +  "number",
      +  "null"
      +]
  2. Changed45 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / balcony / description
      Removed value: -"Require a source-confirmed balcony"
    • changedInput schema / properties / commune / description
      Previous value: -"Luxembourg commune name or slug"New value: +"Supported municipality, city quarter or village name; use resolve_location if ambiguous"
    • addedInput schema / properties / commune / maxLength
      Added value: +150
    • addedInput schema / properties / commune / minLength
      Added value: +1
    • removedInput schema / properties / elevator / description
      Removed value: -"Require lift/elevator evidence"
    • removedInput schema / properties / furnished / description
      Removed value: -"Require furnished evidence"
    • removedInput schema / properties / garden / description
      Removed value: -"Require a source-confirmed garden"
    • addedInput schema / properties / includeCrossBorder
      Added value: +{
      +  "description": "Include supported Grande Région inventory; default false keeps Luxembourg-only compatibility",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / includePhotos / description
      Removed value: -"Attach thumbnail photos of the top results as image content blocks (default: true). Set false for a lean text-only response."
    • removedInput schema / properties / limit / description
      Removed value: -"Number of results to return (max 50, default 20)"
    • changedInput schema / properties / limit / type
      Previous value: -"number"New value: +"integer"
    • removedInput schema / properties / maxAreaSqm / description
      Removed value: -"Maximum area in m²"
    • addedInput schema / properties / maxAreaSqm / maximum
      Added value: +100000
    • addedInput schema / properties / maxAreaSqm / minimum
      Added value: +0
    • removedInput schema / properties / maxPrice / description
      Removed value: -"Maximum sale price in EUR"
    • addedInput schema / properties / maxPrice / maximum
      Added value: +100000000
    • addedInput schema / properties / maxPrice / minimum
      Added value: +0
    • addedInput schema / properties / maxTotalMonthly
      Added value: +{
      +  "description": "Rental-only confirmed all-in monthly ceiling; missing cost evidence is excluded",
      +  "maximum": 100000,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • removedInput schema / properties / minAreaSqm / description
      Removed value: -"Minimum area in m²"
    • addedInput schema / properties / minAreaSqm / maximum
      Added value: +100000
    • addedInput schema / properties / minAreaSqm / minimum
      Added value: +0
    • removedInput schema / properties / minBathrooms / description
      Removed value: -"Minimum number of bathrooms"
    • addedInput schema / properties / minBathrooms / maximum
      Added value: +100
    • addedInput schema / properties / minBathrooms / minimum
      Added value: +0
    • changedInput schema / properties / minBathrooms / type
      Previous value: -"number"New value: +"integer"
    • removedInput schema / properties / minBeds / description
      Removed value: -"Minimum number of bedrooms"
    • addedInput schema / properties / minBeds / maximum
      Added value: +100
    • addedInput schema / properties / minBeds / minimum
      Added value: +0
    • changedInput schema / properties / minBeds / type
      Previous value: -"number"New value: +"integer"
    • removedInput schema / properties / minPrice / description
      Removed value: -"Minimum sale price in EUR"
    • addedInput schema / properties / minPrice / maximum
      Added value: +100000000
    • addedInput schema / properties / minPrice / minimum
      Added value: +0
    • removedInput schema / properties / parkingType / description
      Removed value: -"Require source-backed parking evidence"
    • removedInput schema / properties / petsAllowed / description
      Removed value: -"Require pets-allowed evidence"
    • removedInput schema / properties / propertyType / description
      Removed value: -"Property type: apartment, house, villa, etc."
    • addedInput schema / properties / propertyType / enum
      Added value: +[
      +  "apartment",
      +  "house",
      +  "studio",
      +  "room",
      +  "commercial",
      +  "office",
      +  "land",
      +  "multi_unit_building",
      +  "garage_parking"
      +]
    • addedInput schema / properties / shownListingIds
      Added value: +{
      +  "description": "Already shown listing IDs, accumulated across pages. Excludes those IDs from this live result window; not a stable market snapshot.",
      +  "items": {
      +    "pattern": "^[A-Za-z0-9_-]{1,128}$",
      +    "type": "string"
      +  },
      +  "maxItems": 200,
      +  "type": "array"
      +}
    • removedInput schema / properties / sort / description
      Removed value: -"Sort by relevance, listing date, or asking price"
    • addedOutput schema / properties / listings / items / properties / match / properties / closeReasons
      Added value: +{
      +  "items": {
      +    "oneOf": [
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "concept": {
      +            "type": "string"
      +          },
      +          "criterionId": {
      +            "type": "string"
      +          },
      +          "kind": {
      +            "const": "not_confirmed",
      +            "type": "string"
      +          },
      +          "label": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "kind",
      +          "criterionId",
      +          "concept",
      +          "label"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "actual": {
      +            "type": "number"
      +          },
      +          "concept": {
      +            "type": "string"
      +          },
      +          "criterionId": {
      +            "type": "string"
      +          },
      +          "delta": {
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "direction": {
      +            "enum": [
      +              "over",
      +              "under"
      +            ],
      +            "type": "string"
      +          },
      +          "expected": {
      +            "type": "number"
      +          },
      +          "field": {
      +            "type": "string"
      +          },
      +          "kind": {
      +            "const": "numeric",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "kind",
      +          "criterionId",
      +          "concept",
      +          "field",
      +          "expected",
      +          "actual",
      +          "delta",
      +          "direction"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "actualLocalityId": {
      +            "type": "string"
      +          },
      +          "actualName": {
      +            "type": "string"
      +          },
      +          "askedLocalityId": {
      +            "type": "string"
      +          },
      +          "askedName": {
      +            "type": "string"
      +          },
      +          "distanceKm": {
      +            "maximum": 12,
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "kind": {
      +            "const": "nearby_commune",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "kind",
      +          "askedLocalityId",
      +          "actualLocalityId",
      +          "askedName",
      +          "actualName",
      +          "distanceKm"
      +        ],
      +        "type": "object"
      +      }
      +    ]
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / listings / items / properties / match / properties / resultKind / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "strict_match",
      -      "partial_match",
      -      "relaxed_alternative"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "match",
      +      "close"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / understanding / properties / checked / items / properties / force / enum
      Previous value: -[
      -  "must",
      -  "should",
      -  "nice"
      -]New value: +[
      +  "dealbreaker",
      +  "must",
      +  "should",
      +  "nice"
      +]
    • changedOutput schema / properties / understanding / properties / commutes / items / properties / force / enum
      Previous value: -[
      -  "must",
      -  "should",
      -  "nice"
      -]New value: +[
      +  "dealbreaker",
      +  "must",
      +  "should",
      +  "nice"
      +]
    • changedOutput schema / properties / understanding / properties / notChecked / items / properties / force / enum
      Previous value: -[
      -  "must",
      -  "should",
      -  "nice"
      -]New value: +[
      +  "dealbreaker",
      +  "must",
      +  "should",
      +  "nice"
      +]
    • changedOutput schema / properties / understanding / properties / places / items / properties / force / enum
      Previous value: -[
      -  "must",
      -  "should",
      -  "nice"
      -]New value: +[
      +  "dealbreaker",
      +  "must",
      +  "should",
      +  "nice"
      +]
  3. Changed6 schema fields changed
    • removedOutput schema / properties / listings / items / properties / match / properties / closeReasons
      Removed value: -{
      -  "items": {
      -    "oneOf": [
      -      {
      -        "additionalProperties": false,
      -        "properties": {
      -          "concept": {
      -            "type": "string"
      -          },
      -          "criterionId": {
      -            "type": "string"
      -          },
      -          "kind": {
      -            "const": "not_confirmed",
      -            "type": "string"
      -          },
      -          "label": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "kind",
      -          "criterionId",
      -          "concept",
      -          "label"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "additionalProperties": false,
      -        "properties": {
      -          "actual": {
      -            "type": "number"
      -          },
      -          "concept": {
      -            "type": "string"
      -          },
      -          "criterionId": {
      -            "type": "string"
      -          },
      -          "delta": {
      -            "minimum": 0,
      -            "type": "number"
      -          },
      -          "direction": {
      -            "enum": [
      -              "over",
      -              "under"
      -            ],
      -            "type": "string"
      -          },
      -          "expected": {
      -            "type": "number"
      -          },
      -          "field": {
      -            "type": "string"
      -          },
      -          "kind": {
      -            "const": "numeric",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "kind",
      -          "criterionId",
      -          "concept",
      -          "field",
      -          "expected",
      -          "actual",
      -          "delta",
      -          "direction"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "additionalProperties": false,
      -        "properties": {
      -          "actualLocalityId": {
      -            "type": "string"
      -          },
      -          "actualName": {
      -            "type": "string"
      -          },
      -          "askedLocalityId": {
      -            "type": "string"
      -          },
      -          "askedName": {
      -            "type": "string"
      -          },
      -          "distanceKm": {
      -            "maximum": 12,
      -            "minimum": 0,
      -            "type": "number"
      -          },
      -          "kind": {
      -            "const": "nearby_commune",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "kind",
      -          "askedLocalityId",
      -          "actualLocalityId",
      -          "askedName",
      -          "actualName",
      -          "distanceKm"
      -        ],
      -        "type": "object"
      -      }
      -    ]
      -  },
      -  "type": "array"
      -}
    • changedOutput schema / properties / listings / items / properties / match / properties / resultKind / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "match",
      -      "close"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "strict_match",
      +      "partial_match",
      +      "relaxed_alternative"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / understanding / properties / checked / items / properties / force / enum
      Previous value: -[
      -  "dealbreaker",
      -  "must",
      -  "should",
      -  "nice"
      -]New value: +[
      +  "must",
      +  "should",
      +  "nice"
      +]
    • changedOutput schema / properties / understanding / properties / commutes / items / properties / force / enum
      Previous value: -[
      -  "dealbreaker",
      -  "must",
      -  "should",
      -  "nice"
      -]New value: +[
      +  "must",
      +  "should",
      +  "nice"
      +]
    • changedOutput schema / properties / understanding / properties / notChecked / items / properties / force / enum
      Previous value: -[
      -  "dealbreaker",
      -  "must",
      -  "should",
      -  "nice"
      -]New value: +[
      +  "must",
      +  "should",
      +  "nice"
      +]
    • changedOutput schema / properties / understanding / properties / places / items / properties / force / enum
      Previous value: -[
      -  "dealbreaker",
      -  "must",
      -  "should",
      -  "nice"
      -]New value: +[
      +  "must",
      +  "should",
      +  "nice"
      +]
  4. Changed6 schema fields changed
    • addedOutput schema / properties / listings / items / properties / match / properties / closeReasons
      Added value: +{
      +  "items": {
      +    "oneOf": [
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "concept": {
      +            "type": "string"
      +          },
      +          "criterionId": {
      +            "type": "string"
      +          },
      +          "kind": {
      +            "const": "not_confirmed",
      +            "type": "string"
      +          },
      +          "label": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "kind",
      +          "criterionId",
      +          "concept",
      +          "label"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "actual": {
      +            "type": "number"
      +          },
      +          "concept": {
      +            "type": "string"
      +          },
      +          "criterionId": {
      +            "type": "string"
      +          },
      +          "delta": {
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "direction": {
      +            "enum": [
      +              "over",
      +              "under"
      +            ],
      +            "type": "string"
      +          },
      +          "expected": {
      +            "type": "number"
      +          },
      +          "field": {
      +            "type": "string"
      +          },
      +          "kind": {
      +            "const": "numeric",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "kind",
      +          "criterionId",
      +          "concept",
      +          "field",
      +          "expected",
      +          "actual",
      +          "delta",
      +          "direction"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "actualLocalityId": {
      +            "type": "string"
      +          },
      +          "actualName": {
      +            "type": "string"
      +          },
      +          "askedLocalityId": {
      +            "type": "string"
      +          },
      +          "askedName": {
      +            "type": "string"
      +          },
      +          "distanceKm": {
      +            "maximum": 12,
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "kind": {
      +            "const": "nearby_commune",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "kind",
      +          "askedLocalityId",
      +          "actualLocalityId",
      +          "askedName",
      +          "actualName",
      +          "distanceKm"
      +        ],
      +        "type": "object"
      +      }
      +    ]
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / listings / items / properties / match / properties / resultKind / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "strict_match",
      -      "partial_match",
      -      "relaxed_alternative"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "match",
      +      "close"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / understanding / properties / checked / items / properties / force / enum
      Previous value: -[
      -  "must",
      -  "should",
      -  "nice"
      -]New value: +[
      +  "dealbreaker",
      +  "must",
      +  "should",
      +  "nice"
      +]
    • changedOutput schema / properties / understanding / properties / commutes / items / properties / force / enum
      Previous value: -[
      -  "must",
      -  "should",
      -  "nice"
      -]New value: +[
      +  "dealbreaker",
      +  "must",
      +  "should",
      +  "nice"
      +]
    • changedOutput schema / properties / understanding / properties / notChecked / items / properties / force / enum
      Previous value: -[
      -  "must",
      -  "should",
      -  "nice"
      -]New value: +[
      +  "dealbreaker",
      +  "must",
      +  "should",
      +  "nice"
      +]
    • changedOutput schema / properties / understanding / properties / places / items / properties / force / enum
      Previous value: -[
      -  "must",
      -  "should",
      -  "nice"
      -]New value: +[
      +  "dealbreaker",
      +  "must",
      +  "should",
      +  "nice"
      +]
  5. Changed1 schema field changed
    • addedOutput schema / properties / listings / items / properties / unknown
      Added value: +{
      +  "description": "Why each missingFields entry is unknown. not_in_search_result means get_listing may know it.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "field": {
      +        "type": "string"
      +      },
      +      "reason": {
      +        "enum": [
      +          "not_stated",
      +          "not_proven",
      +          "conflicted",
      +          "not_in_search_result"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "field",
      +      "reason"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  6. Changed4 schema fields changed
    • removedOutput schema / properties / coverageNotice
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "reason": {
      -      "const": "outside_luxembourg",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "reason"
      -  ],
      -  "type": "object"
      -}
    • addedOutput schema / properties / followUp
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "outcome": {
      +      "enum": [
      +        "applied",
      +        "answered"
      +      ],
      +      "type": "string"
      +    },
      +    "reply": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "outcome"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / session
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "brief": {
      +      "additionalProperties": {},
      +      "properties": {},
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "brief"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / understanding
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "What the engine understood from the request. notChecked lists wishes no returned home is confirmed to have.",
      +  "properties": {
      +    "checked": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "force": {
      +            "enum": [
      +              "must",
      +              "should",
      +              "nice"
      +            ],
      +            "type": "string"
      +          },
      +          "meaning": {
      +            "type": "string"
      +          },
      +          "needId": {
      +            "type": "string"
      +          },
      +          "operator": {
      +            "type": "string"
      +          },
      +          "unit": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "value": {
      +            "anyOf": [
      +              {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "string"
      +                  }
      +                ]
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "meaning",
      +          "needId",
      +          "operator",
      +          "value",
      +          "unit",
      +          "force"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "commutes": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "destination": {
      +            "type": "string"
      +          },
      +          "force": {
      +            "enum": [
      +              "must",
      +              "should",
      +              "nice"
      +            ],
      +            "type": "string"
      +          },
      +          "maxMinutes": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "mode": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "transit",
      +                  "drive",
      +                  "walk",
      +                  "bike"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "destination",
      +          "mode",
      +          "maxMinutes",
      +          "force"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "excludedPropertyTypes": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "notChecked": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "force": {
      +            "enum": [
      +              "must",
      +              "should",
      +              "nice"
      +            ],
      +            "type": "string"
      +          },
      +          "meaning": {
      +            "type": "string"
      +          },
      +          "reason": {
      +            "enum": [
      +              "no_listing_fact",
      +              "fact_not_collected_yet"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "meaning",
      +          "force",
      +          "reason"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "offer": {
      +      "enum": [
      +        "whole",
      +        "room",
      +        "either"
      +      ],
      +      "type": "string"
      +    },
      +    "places": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "country": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "LU",
      +                  "FR",
      +                  "BE",
      +                  "DE"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "force": {
      +            "enum": [
      +              "must",
      +              "should",
      +              "nice"
      +            ],
      +            "type": "string"
      +          },
      +          "kind": {
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "radiusKm": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "role": {
      +            "enum": [
      +              "live",
      +              "work",
      +              "near",
      +              "avoid"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "role",
      +          "kind",
      +          "country",
      +          "radiusKm",
      +          "force"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "propertyTypes": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "transaction": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "buy",
      +            "rent"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "understood": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "understood",
      +    "transaction",
      +    "propertyTypes",
      +    "excludedPropertyTypes",
      +    "offer",
      +    "places",
      +    "commutes",
      +    "checked",
      +    "notChecked"
      +  ],
      +  "type": "object"
      +}
  7. Changed34 schema fields changed
    • addedInput schema / properties / balcony
      Added value: +{
      +  "const": true,
      +  "description": "Require a source-confirmed balcony",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / elevator
      Added value: +{
      +  "const": true,
      +  "description": "Require lift/elevator evidence",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / furnished
      Added value: +{
      +  "const": true,
      +  "description": "Require furnished evidence",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / garden
      Added value: +{
      +  "const": true,
      +  "description": "Require a source-confirmed garden",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / maxAreaSqm
      Added value: +{
      +  "description": "Maximum area in m²",
      +  "type": "number"
      +}
    • addedInput schema / properties / minBathrooms
      Added value: +{
      +  "description": "Minimum number of bathrooms",
      +  "type": "number"
      +}
    • addedInput schema / properties / parkingType
      Added value: +{
      +  "description": "Require source-backed parking evidence",
      +  "enum": [
      +    "off_street",
      +    "garage",
      +    "covered"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / petsAllowed
      Added value: +{
      +  "const": true,
      +  "description": "Require pets-allowed evidence",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / sort
      Added value: +{
      +  "description": "Sort by relevance, listing date, or asking price",
      +  "enum": [
      +    "relevance",
      +    "newest",
      +    "price-asc",
      +    "price-desc"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / excludedUnprovenCount
      Added value: +{
      +  "description": "Upstream rows omitted because public facts could not prove every requested hard filter.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / hasMore
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / listings / items / properties / amenities
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "balcony": {
      +      "anyOf": [
      +        {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "elevator": {
      +      "anyOf": [
      +        {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "furnished": {
      +      "anyOf": [
      +        {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "garden": {
      +      "anyOf": [
      +        {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "parking": {
      +      "anyOf": [
      +        {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "petsAllowed": {
      +      "anyOf": [
      +        {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "stepFreeAccess": {
      +      "anyOf": [
      +        {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "wheelchairAccessible": {
      +      "anyOf": [
      +        {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "furnished",
      +    "elevator",
      +    "parking",
      +    "balcony",
      +    "garden",
      +    "petsAllowed",
      +    "stepFreeAccess",
      +    "wheelchairAccessible"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / listings / items / properties / availability
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "availableFrom": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "moveInState": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "offerStatus": {
      +      "enum": [
      +        "available",
      +        "under_offer",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "offerStatus",
      +    "availableFrom",
      +    "moveInState"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / listings / items / properties / duplicates
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "confirmedOtherSources": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "confirmedSourceCount": {
      +      "exclusiveMinimum": 0,
      +      "maximum": 9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "confirmedOtherSources",
      +    "confirmedSourceCount"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / listings / items / properties / fieldProvenance
      Added value: +{
      +  "additionalProperties": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "method": {
      +        "enum": [
      +          "source_structured",
      +          "source_text",
      +          "official_dataset",
      +          "calculation",
      +          "manual_review",
      +          "model_extraction",
      +          "model_only",
      +          "unknown"
      +        ],
      +        "type": "string"
      +      },
      +      "observedAt": {
      +        "anyOf": [
      +          {
      +            "format": "date-time",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "publisher": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "sourceUrl": {
      +        "anyOf": [
      +          {
      +            "format": "uri",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "status": {
      +        "enum": [
      +          "confirmed",
      +          "estimated",
      +          "thin_sample",
      +          "stale",
      +          "context_only",
      +          "conflicted",
      +          "not_collected",
      +          "source_unavailable",
      +          "suppressed"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "publisher",
      +      "method",
      +      "sourceUrl",
      +      "observedAt"
      +    ],
      +    "type": "object"
      +  },
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / listings / items / properties / history
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "daysListed": {
      +      "anyOf": [
      +        {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "firstObservedAt": {
      +      "anyOf": [
      +        {
      +          "format": "date-time",
      +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "firstObservedBasis": {
      +      "const": "source_listing_date_or_chathome_ingest",
      +      "type": "string"
      +    },
      +    "lastChangedAt": {
      +      "anyOf": [
      +        {
      +          "format": "date-time",
      +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "priceDropTotalEur": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "firstObservedAt",
      +    "firstObservedBasis",
      +    "daysListed",
      +    "priceDropTotalEur",
      +    "lastChangedAt"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / listings / items / properties / location
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "address": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "city": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "confidence": {
      +      "enum": [
      +        "verified",
      +        "unverified",
      +        "contradicted",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "district": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "postalCode": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "precision": {
      +      "enum": [
      +        "exact_address",
      +        "street",
      +        "district",
      +        "commune_only",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "city",
      +    "district",
      +    "address",
      +    "postalCode",
      +    "precision",
      +    "confidence"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / listings / items / properties / match
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "allRequiredConstraintsSatisfied": {
      +      "anyOf": [
      +        {
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "reasons": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "maxItems": 3,
      +      "type": "array"
      +    },
      +    "requiredConstraints": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "actual": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "boolean"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "status": {
      +            "enum": [
      +              "matched",
      +              "not_matched",
      +              "not_verified",
      +              "not_applied"
      +            ],
      +            "type": "string"
      +          },
      +          "target": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "boolean"
      +              },
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "status",
      +          "target",
      +          "actual"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "resultKind": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "strict_match",
      +            "partial_match",
      +            "relaxed_alternative"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "allRequiredConstraintsSatisfied",
      +    "resultKind",
      +    "requiredConstraints",
      +    "reasons"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / listings / items / properties / missingFields
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / listings / items / properties / officialScreening
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {},
      +      "properties": {},
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / property
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "airConditioning": {
      +      "anyOf": [
      +        {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "colocation": {
      +      "anyOf": [
      +        {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "completionYear": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "condition": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "constructionYear": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "floor": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "hasFloorplan": {
      +      "anyOf": [
      +        {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "heatingEnergy": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "heatingType": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "landAreaSqm": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "privateRoomAreaSqm": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "rentByOwner": {
      +      "anyOf": [
      +        {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "rooms": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "totalFloors": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "rooms",
      +    "floor",
      +    "totalFloors",
      +    "constructionYear",
      +    "completionYear",
      +    "landAreaSqm",
      +    "privateRoomAreaSqm",
      +    "condition",
      +    "heatingType",
      +    "heatingEnergy",
      +    "airConditioning",
      +    "hasFloorplan",
      +    "rentByOwner",
      +    "colocation"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / listings / items / properties / propertyChecks
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {},
      +      "properties": {},
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / rent
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "agencyFee": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "agencyFeeBasis": {
      +          "anyOf": [
      +            {
      +              "enum": [
      +                "tenant_share",
      +                "total_commission",
      +                "unknown"
      +              ],
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "baseMonthly": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "chargesIncluded": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "chargesMonthly": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "deposit": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "depositExceedsMaximum": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "depositMaximum": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "estimatedMonthlyTotal": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "estimatedMonthlyTotalIsLowerBound": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "estimatedUtilitiesMonthly": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "exactUpfrontCost": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "firstChargeAdvance": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "heatingMayBeDoubleCounted": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "indicativeInsuranceMonthly": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "knownMonthlyLowerBound": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "knownUpfrontCost": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "mandatoryMoveInFeeTotal": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "mandatoryMoveInFees": {
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {},
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "mandatoryRecurringFeeTotal": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "mandatoryRecurringFees": {
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {},
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "monthlyTotal": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "monthlyTotalStatus": {
      +          "anyOf": [
      +            {
      +              "enum": [
      +                "known",
      +                "unknown_charges",
      +                "conflicting_charges",
      +                "invalid_price",
      +                "unknown_mandatory_recurring_fees"
      +              ],
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "reportedDeposit": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "unknownComponents": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "upfrontCostIsExact": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "upfrontCostIsLowerBound": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [
      +        "baseMonthly",
      +        "chargesMonthly",
      +        "chargesIncluded",
      +        "monthlyTotal",
      +        "monthlyTotalStatus",
      +        "knownMonthlyLowerBound",
      +        "estimatedMonthlyTotal",
      +        "estimatedMonthlyTotalIsLowerBound",
      +        "estimatedUtilitiesMonthly",
      +        "indicativeInsuranceMonthly",
      +        "heatingMayBeDoubleCounted",
      +        "firstChargeAdvance",
      +        "reportedDeposit",
      +        "deposit",
      +        "depositMaximum",
      +        "depositExceedsMaximum",
      +        "agencyFee",
      +        "agencyFeeBasis",
      +        "mandatoryRecurringFees",
      +        "mandatoryRecurringFeeTotal",
      +        "mandatoryMoveInFees",
      +        "mandatoryMoveInFeeTotal",
      +        "knownUpfrontCost",
      +        "exactUpfrontCost",
      +        "upfrontCostIsLowerBound",
      +        "upfrontCostIsExact",
      +        "unknownComponents"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / schemaVersion
      Added value: +{
      +  "const": "agent-listing.v2",
      +  "type": "string"
      +}
    • addedOutput schema / properties / listings / items / properties / source
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "agencyConfirmedAt": {
      +          "anyOf": [
      +            {
      +              "format": "date-time",
      +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "agencyListingId": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "agencyName": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "lastSeenAt": {
      +          "anyOf": [
      +            {
      +              "format": "date-time",
      +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "listingUrl": {
      +          "format": "uri",
      +          "type": "string"
      +        },
      +        "status": {
      +          "enum": [
      +            "active",
      +            "under_offer",
      +            "unknown"
      +          ],
      +          "type": "string"
      +        },
      +        "statusBasis": {
      +          "enum": [
      +            "source_catalog_seen",
      +            "listing_record_active"
      +          ],
      +          "type": "string"
      +        },
      +        "type": {
      +          "const": "original_agency_listing",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "type",
      +        "agencyName",
      +        "listingUrl",
      +        "agencyListingId",
      +        "lastSeenAt",
      +        "status",
      +        "statusBasis",
      +        "agencyConfirmedAt"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / transport
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {},
      +      "properties": {},
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / valueContext
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "fairPrice": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {},
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "marketContext": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {},
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "priceIntegrity": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {},
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "priceIntegrity",
      +    "fairPrice",
      +    "marketContext"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / listings / items / required
      Previous value: -[
      -  "id",
      -  "url",
      -  "title",
      -  "status",
      -  "price",
      -  "currency",
      -  "listingType",
      -  "propertyType",
      -  "city",
      -  "district",
      -  "country",
      -  "beds",
      -  "baths",
      -  "areaSqm",
      -  "energyClass",
      -  "imageUrl",
      -  "agencyName",
      -  "latitude",
      -  "longitude"
      -]New value: +[
      +  "schemaVersion",
      +  "id",
      +  "url",
      +  "title",
      +  "status",
      +  "price",
      +  "currency",
      +  "listingType",
      +  "propertyType",
      +  "city",
      +  "district",
      +  "country",
      +  "beds",
      +  "baths",
      +  "areaSqm",
      +  "energyClass",
      +  "imageUrl",
      +  "agencyName",
      +  "source",
      +  "rent",
      +  "availability",
      +  "property",
      +  "location",
      +  "history",
      +  "duplicates",
      +  "amenities",
      +  "fieldProvenance",
      +  "officialScreening",
      +  "propertyChecks",
      +  "transport",
      +  "valueContext",
      +  "missingFields",
      +  "match",
      +  "latitude",
      +  "longitude"
      +]
    • addedOutput schema / properties / marketMatchingUpperBound
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / matchingCount
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / matchingCountKind
      Added value: +{
      +  "enum": [
      +    "exact",
      +    "lower_bound",
      +    "unavailable"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / nextCursor
      Added value: +{
      +  "type": "null"
      +}
    • addedOutput schema / properties / returnedCount
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / searchExhaustive
      Added value: +{
      +  "type": "boolean"
      +}
  8. Changed34 schema fields changed
    • addedOutput schema / properties / countKind
      Added value: +{
      +  "const": "returned",
      +  "type": "string"
      +}
    • addedOutput schema / properties / listings / items / properties / agencyName
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / areaSqm
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / baths
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / beds
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / charges
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / city
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / country
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "LU",
      +        "FR",
      +        "BE",
      +        "DE"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / currency
      Added value: +{
      +  "const": "EUR",
      +  "type": "string"
      +}
    • addedOutput schema / properties / listings / items / properties / description
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / district
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / energyClass
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / features
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / listings / items / properties / hasSourceCheckedFacts
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / listings / items / properties / id
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / listings / items / properties / imageUrl
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "uri",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / latitude
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / listingType
      Added value: +{
      +  "enum": [
      +    "rent",
      +    "sale"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / listings / items / properties / longitude
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / matchReasons
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "maxItems": 3,
      +  "type": "array"
      +}
    • addedOutput schema / properties / listings / items / properties / photoUrls
      Added value: +{
      +  "items": {
      +    "format": "uri",
      +    "type": "string"
      +  },
      +  "maxItems": 5,
      +  "type": "array"
      +}
    • addedOutput schema / properties / listings / items / properties / price
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / pricePerSqm
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / propertyType
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / listings / items / properties / score
      Added value: +{
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedOutput schema / properties / listings / items / properties / status
      Added value: +{
      +  "const": "active",
      +  "type": "string"
      +}
    • addedOutput schema / properties / listings / items / properties / title
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / listings / items / properties / url
      Added value: +{
      +  "format": "uri",
      +  "type": "string"
      +}
    • addedOutput schema / properties / listings / items / required
      Added value: +[
      +  "id",
      +  "url",
      +  "title",
      +  "status",
      +  "price",
      +  "currency",
      +  "listingType",
      +  "propertyType",
      +  "city",
      +  "district",
      +  "country",
      +  "beds",
      +  "baths",
      +  "areaSqm",
      +  "energyClass",
      +  "imageUrl",
      +  "agencyName",
      +  "latitude",
      +  "longitude"
      +]
    • addedOutput schema / properties / ranking
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "planFingerprint": {
      +      "type": "string"
      +    },
      +    "probability": {
      +      "const": false,
      +      "type": "boolean"
      +    },
      +    "scoreKind": {
      +      "const": "request_fit",
      +      "type": "string"
      +    },
      +    "status": {
      +      "enum": [
      +        "available",
      +        "degraded"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "scoreKind",
      +    "probability"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / total / description
      Added value: +"Exact number of listing objects returned in this response; not the number of matches in the market."
    • addedOutput schema / properties / total / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / total / minimum
      Added value: +0
    • changedOutput schema / properties / total / type
      Previous value: -"number"New value: +"integer"
  9. Changed1 schema field changed
    • addedOutput schema / properties / coverageNotice
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "reason": {
      +      "const": "outside_luxembourg",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "reason"
      +  ],
      +  "type": "object"
      +}
  10. First observed

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description then adds genuinely new behavior an agent cannot get elsewhere: each result links to the original agency listing, carries a latest catalogue re-sighting timestamp, and top results are attached as image content blocks — important for planning output handling. It does not mention result caps or latency/rate behavior, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the geography default and the cross-border opt-in, and every clause carries information. The second sentence is clause-dense but not padded; nothing is repeated from the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be spelled out, and the description covers the sale scope, the Luxembourg default, cross-border opt-in, and result provenance. For a 21-parameter open-world search tool it is still thin on how to page (shownListingIds), what limit does, and how the amenity const-true filters behave when omitted — gaps an agent will hit on a second call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 21 parameters and only 24% schema description coverage, the description carries a real burden. It compensates partially by grouping the filter dimensions (location, price, rooms, area, property type, amenities), naming the sort metadata, and characterizing amenity filters as 'positive-evidence' (i.e. only confirmed features match). It still leaves sort enum options, limit, includePhotos, locale, and the shownListingIds paging mechanism unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource+scope ('Search properties for sale in Luxembourg by default') and enumerates the filterable dimensions. That combined with the sale-vs-rental framing lets an agent distinguish it from search_rentals and compare_listings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a clear default operating mode (Luxembourg-only) and an opt-in extension (includeCrossBorder for commuter-belt inventory), which is genuinely useful routing context. But it never says when to prefer a different sibling (e.g. get_listing for a single ID, compare_listings for side-by-side) and gives no guidance on paging across results, so the usage rules remain implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources