此 MCP 可以做什么
Searches and compares Luxembourg properties, estimates prices and affordability, analyzes leases, and provides market, commute, and agency information.
工具
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'text': {'type': 'string', 'maxLength': 80000, 'description': 'Raw lease text when a PDF is not available. Do not pass URLs, payment-card data, government identifiers, health data, passwords, API keys, or authentication codes.'}, 'fileName': {'type': 'string', 'maxLength': 160}, 'language': {'enum': ['en', 'fr', 'de', 'lu', 'pt'], 'type': 'string', 'default': 'fr'}, 'pdfBase64': {'type': 'string', 'description': 'Base64-encoded PDF bytes. Do not pass URLs, payment-card data, government identifiers, health data, passwords, API keys, or authentication codes.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['isLease', 'overallRiskScore', 'severityCounts', 'clauses', 'persisted', 'trust'], 'properties': {'trust': {'type': 'object', 'required': ['sources', 'confidence', 'freshness'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'fallback': {'type': 'boolean'}, 'freshness': {'enum': ['fresh', 'recent', 'stale', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['low', 'medium', 'high', 'unknown'], 'type': 'string'}, 'generatedAt': {'type': 'string'}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'clauses': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'isLease': {'type': 'boolean'}, 'persisted': {'type': 'boolean', 'const': True}, 'severityCounts': {'type': 'object', 'properties': {}, 'additionalProperties': {}}, 'overallRiskScore': {'type': 'number'}}, 'additionalProperties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 8, 'minItems': 2, 'description': 'Two to eight listing IDs returned by a ChatHome search tool'}, 'locale': {'enum': ['en', 'fr', 'de', 'lu', 'pt', 'lb'], 'type': 'string', 'description': "Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')"}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['schemaVersion', 'listings', 'notFoundIds', 'comparisonFields', 'trust'], 'properties': {'trust': {'type': 'object', 'required': ['sources', 'confidence', 'freshness'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'fallback': {'type': 'boolean'}, 'freshness': {'enum': ['fresh', 'recent', 'stale', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['low', 'medium', 'high', 'unknown'], 'type': 'string'}, 'generatedAt': {'type': 'string'}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['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'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string', 'format': 'uri'}, 'beds': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'rent': {'anyOf': [{'type': 'object', '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'], 'properties': {'deposit': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'agencyFee': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'baseMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'monthlyTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'agencyFeeBasis': {'anyOf': [{'enum': ['tenant_share', 'total_commission', 'unknown'], 'type': 'string'}, {'type': 'null'}]}, 'chargesMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'depositMaximum': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'chargesIncluded': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'reportedDeposit': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'exactUpfrontCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'knownUpfrontCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'unknownComponents': {'type': 'array', 'items': {'type': 'string'}}, 'firstChargeAdvance': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'monthlyTotalStatus': {'anyOf': [{'enum': ['known', 'unknown_charges', 'conflicting_charges', 'invalid_price', 'unknown_mandatory_recurring_fees'], 'type': 'string'}, {'type': 'null'}]}, 'upfrontCostIsExact': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'mandatoryMoveInFees': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'depositExceedsMaximum': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'estimatedMonthlyTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'knownMonthlyLowerBound': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'mandatoryRecurringFees': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'mandatoryMoveInFeeTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'upfrontCostIsLowerBound': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'estimatedUtilitiesMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'heatingMayBeDoubleCounted': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'indicativeInsuranceMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'mandatoryRecurringFeeTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'estimatedMonthlyTotalIsLowerBound': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'baths': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'match': {'type': 'object', 'required': ['allRequiredConstraintsSatisfied', 'resultKind', 'requiredConstraints', 'reasons'], 'properties': {'reasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'resultKind': {'anyOf': [{'enum': ['strict_match', 'partial_match', 'relaxed_alternative'], 'type': 'string'}, {'type': 'null'}]}, 'requiredConstraints': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status', 'target', 'actual'], 'properties': {'id': {'type': 'string'}, 'actual': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}]}, 'status': {'enum': ['matched', 'not_matched', 'not_verified', 'not_applied'], 'type': 'string'}, 'target': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'allRequiredConstraintsSatisfied': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'score': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'title': {'type': 'string'}, 'source': {'anyOf': [{'type': 'object', 'required': ['type', 'agencyName', 'listingUrl', 'agencyListingId', 'lastSeenAt', 'status', 'statusBasis', 'agencyConfirmedAt'], 'properties': {'type': {'type': 'string', 'const': 'original_agency_listing'}, 'status': {'enum': ['active', 'under_offer', 'unknown'], 'type': 'string'}, 'agencyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'lastSeenAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'listingUrl': {'type': 'string', 'format': 'uri'}, 'statusBasis': {'enum': ['source_catalog_seen', 'listing_record_active'], 'type': 'string'}, 'agencyListingId': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'agencyConfirmedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'status': {'type': 'string', 'const': 'active'}, 'areaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'charges': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'country': {'anyOf': [{'enum': ['LU', 'FR', 'BE', 'DE'], 'type': 'string'}, {'type': 'null'}]}, 'history': {'type': 'object', 'required': ['firstObservedAt', 'firstObservedBasis', 'daysListed', 'priceDropTotalEur', 'lastChangedAt'], 'properties': {'daysListed': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'lastChangedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'firstObservedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'priceDropTotalEur': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'firstObservedBasis': {'type': 'string', 'const': 'source_listing_date_or_chathome_ingest'}}, 'additionalProperties': False}, 'currency': {'type': 'string', 'const': 'EUR'}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'features': {'type': 'array', 'items': {'type': 'string'}}, 'imageUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'latitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'location': {'type': 'object', 'required': ['city', 'district', 'address', 'postalCode', 'precision', 'confidence'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'address': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'precision': {'enum': ['exact_address', 'street', 'district', 'commune_only', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['verified', 'unverified', 'contradicted', 'unknown'], 'type': 'string'}, 'postalCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'property': {'type': 'object', 'required': ['rooms', 'floor', 'totalFloors', 'constructionYear', 'completionYear', 'landAreaSqm', 'privateRoomAreaSqm', 'condition', 'heatingType', 'heatingEnergy', 'airConditioning', 'hasFloorplan', 'rentByOwner', 'colocation'], 'properties': {'floor': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'rooms': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'condition': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'colocation': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'heatingType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'landAreaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'rentByOwner': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'totalFloors': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'hasFloorplan': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'heatingEnergy': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'completionYear': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'airConditioning': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'constructionYear': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'privateRoomAreaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'amenities': {'type': 'object', 'required': ['furnished', 'elevator', 'parking', 'balcony', 'garden', 'petsAllowed', 'stepFreeAccess', 'wheelchairAccessible'], 'properties': {'garden': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'balcony': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'parking': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'elevator': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'furnished': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'petsAllowed': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'stepFreeAccess': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'wheelchairAccessible': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}}, 'additionalProperties': False}, 'longitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'photoUrls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 5}, 'transport': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'agencyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'duplicates': {'type': 'object', 'required': ['confirmedOtherSources', 'confirmedSourceCount'], 'properties': {'confirmedSourceCount': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'confirmedOtherSources': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'energyClass': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'listingType': {'enum': ['rent', 'sale'], 'type': 'string'}, 'pricePerSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'availability': {'type': 'object', 'required': ['offerStatus', 'availableFrom', 'moveInState'], 'properties': {'moveInState': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'offerStatus': {'enum': ['available', 'under_offer', 'unknown'], 'type': 'string'}, 'availableFrom': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'matchReasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'propertyType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'valueContext': {'type': 'object', 'required': ['priceIntegrity', 'fairPrice', 'marketContext'], 'properties': {'fairPrice': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'marketContext': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'priceIntegrity': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}, 'schemaVersion': {'type': 'string', 'const': 'agent-listing.v2'}, 'propertyChecks': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'fieldProvenance': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'object', 'required': ['status', 'publisher', 'method', 'sourceUrl', 'observedAt'], 'properties': {'method': {'enum': ['source_structured', 'source_text', 'official_dataset', 'calculation', 'manual_review', 'model_extraction', 'model_only', 'unknown'], 'type': 'string'}, 'status': {'enum': ['confirmed', 'estimated', 'thin_sample', 'stale', 'context_only', 'conflicted', 'not_collected', 'source_unavailable', 'suppressed'], 'type': 'string'}, 'publisher': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'sourceUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'observedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}}, 'additionalProperties': False}}, 'officialScreening': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'hasSourceCheckedFacts': {'type': 'boolean'}}, 'additionalProperties': {}}, 'maxItems': 8, 'minItems': 0}, 'notFoundIds': {'type': 'array', 'items': {'type': 'string'}}, 'schemaVersion': {'type': 'string', 'const': 'listing-comparison.v1'}, 'comparisonFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['annualNetIncome', 'maxDebtToIncomeRatio', 'savingsAvailable', 'householdType', 'employmentType', 'residencyType'], 'properties': {'marketRate': {'type': 'number', 'maximum': 15, 'exclusiveMinimum': 0}, 'monthlyDebts': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Existing monthly debt payments'}, 'residenceUse': {'enum': ['unknown', 'primary', 'other'], 'type': 'string', 'description': 'Residence use; omitted or unknown preserves an unconfirmed Bëllegen position'}, 'householdType': {'enum': ['single', 'couple'], 'type': 'string'}, 'loanTermYears': {'type': 'integer', 'maximum': 35, 'minimum': 5}, 'residencyType': {'enum': ['luxembourg', 'cross_border_fr', 'cross_border_be', 'cross_border_de'], 'type': 'string'}, 'employmentType': {'enum': ['salaried', 'self_employed', 'civil_servant'], 'type': 'string'}, 'annualNetIncome': {'type': 'number', 'description': 'User-confirmed annual household net income', 'exclusiveMinimum': 0}, 'isFirstTimeBuyer': {'type': 'boolean', 'default': False, 'description': 'Deprecated optional compatibility signal; never proves Bëllegen entitlement'}, 'savingsAvailable': {'type': 'number', 'minimum': 0, 'description': 'Available savings/down payment'}, 'isPersonalResidence': {'type': 'boolean', 'description': 'Deprecated residence-use compatibility flag; prefer residenceUse'}, 'maxDebtToIncomeRatio': {'type': 'number', 'maximum': 0.6, 'description': 'Explicit housing-payment share of net income, e.g. 0.35', 'exclusiveMinimum': 0}, 'energyClassDiscountPct': {'type': 'number', 'maximum': 2, 'minimum': 0}, 'bellegenAktEligibleBuyers': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Explicitly confirmed eligible acquirer count'}, 'bellegenAktCreditAvailable': {'type': 'number', 'minimum': 0, 'description': 'Aggregate unused Bëllegen Akt balance explicitly confirmed for the acquirers'}, 'floodZoneRateAdjustmentPct': {'type': 'number', 'maximum': 3, 'minimum': 0}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['maxPropertyPrice', 'maxPropertyPriceCostBasis', 'confidence', 'freshness', 'trust'], 'properties': {'trust': {'type': 'object', 'required': ['sources', 'confidence', 'freshness'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'fallback': {'type': 'boolean'}, 'freshness': {'enum': ['fresh', 'recent', 'stale', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['low', 'medium', 'high', 'unknown'], 'type': 'string'}, 'generatedAt': {'type': 'string'}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'freshness': {'type': 'string'}, 'confidence': {'type': 'string'}, 'maxPropertyPrice': {'type': 'number'}, 'maxPropertyPriceCostBasis': {'enum': ['complete', 'known_costs_only'], 'type': 'string'}}, 'additionalProperties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['commune', 'destination', 'mode'], 'properties': {'mode': {'enum': ['driving', 'transit', 'cycling', 'walking'], 'type': 'string', 'description': 'Transport mode'}, 'commune': {'type': 'string', 'minLength': 1, 'description': "Luxembourg commune name or slug to get commute times from, e.g. 'esch-sur-alzette', 'differdange'"}, 'destination': {'enum': ['lux-city', 'kirchberg', 'belval'], 'type': 'string', 'description': 'Commute destination: lux-city (Luxembourg City centre), kirchberg (EU Quarter), or belval (Esch/Belval)'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['commune', 'destination', 'mode', 'minutes', 'distanceKm', 'source', 'stale', 'trust'], 'properties': {'mode': {'type': 'string'}, 'stale': {'type': 'boolean'}, 'trust': {'type': 'object', 'required': ['sources', 'confidence', 'freshness'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'fallback': {'type': 'boolean'}, 'freshness': {'enum': ['fresh', 'recent', 'stale', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['low', 'medium', 'high', 'unknown'], 'type': 'string'}, 'generatedAt': {'type': 'string'}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'commune': {'type': 'string'}, 'minutes': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'distanceKm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'destination': {'type': 'string'}}, 'additionalProperties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['conversationId'], 'properties': {'conversationId': {'type': 'string', 'minLength': 1, 'description': 'The conversation ID returned by submit_inquiry when kind is conversation_created'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['conversationId', 'status', 'messages', 'trust'], 'properties': {'trust': {'type': 'object', 'required': ['sources', 'confidence', 'freshness'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'fallback': {'type': 'boolean'}, 'freshness': {'enum': ['fresh', 'recent', 'stale', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['low', 'medium', 'high', 'unknown'], 'type': 'string'}, 'generatedAt': {'type': 'string'}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'status': {'enum': ['replied', 'awaiting_reply'], 'type': 'string'}, 'messages': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'conversationId': {'type': 'string'}}, 'additionalProperties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Listing ID'}, 'locale': {'enum': ['en', 'fr', 'de', 'lu', 'pt', 'lb'], 'type': 'string', 'description': "Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')"}, 'includePhotos': {'type': 'boolean', 'description': 'Attach thumbnail photos of the listing as image content blocks (default: true). Set false for a lean text-only response.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['listing', 'listingPage', 'listingPageContext', 'pageText', 'trust'], 'properties': {'trust': {'type': 'object', 'required': ['sources', 'confidence', 'freshness'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'fallback': {'type': 'boolean'}, 'freshness': {'enum': ['fresh', 'recent', 'stale', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['low', 'medium', 'high', 'unknown'], 'type': 'string'}, 'generatedAt': {'type': 'string'}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'listing': {'type': 'object', 'required': ['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'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string', 'format': 'uri'}, 'beds': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'rent': {'anyOf': [{'type': 'object', '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'], 'properties': {'deposit': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'agencyFee': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'baseMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'monthlyTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'agencyFeeBasis': {'anyOf': [{'enum': ['tenant_share', 'total_commission', 'unknown'], 'type': 'string'}, {'type': 'null'}]}, 'chargesMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'depositMaximum': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'chargesIncluded': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'reportedDeposit': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'exactUpfrontCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'knownUpfrontCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'unknownComponents': {'type': 'array', 'items': {'type': 'string'}}, 'firstChargeAdvance': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'monthlyTotalStatus': {'anyOf': [{'enum': ['known', 'unknown_charges', 'conflicting_charges', 'invalid_price', 'unknown_mandatory_recurring_fees'], 'type': 'string'}, {'type': 'null'}]}, 'upfrontCostIsExact': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'mandatoryMoveInFees': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'depositExceedsMaximum': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'estimatedMonthlyTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'knownMonthlyLowerBound': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'mandatoryRecurringFees': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'mandatoryMoveInFeeTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'upfrontCostIsLowerBound': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'estimatedUtilitiesMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'heatingMayBeDoubleCounted': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'indicativeInsuranceMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'mandatoryRecurringFeeTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'estimatedMonthlyTotalIsLowerBound': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'baths': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'match': {'type': 'object', 'required': ['allRequiredConstraintsSatisfied', 'resultKind', 'requiredConstraints', 'reasons'], 'properties': {'reasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'resultKind': {'anyOf': [{'enum': ['strict_match', 'partial_match', 'relaxed_alternative'], 'type': 'string'}, {'type': 'null'}]}, 'requiredConstraints': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status', 'target', 'actual'], 'properties': {'id': {'type': 'string'}, 'actual': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}]}, 'status': {'enum': ['matched', 'not_matched', 'not_verified', 'not_applied'], 'type': 'string'}, 'target': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'allRequiredConstraintsSatisfied': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'score': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'title': {'type': 'string'}, 'source': {'anyOf': [{'type': 'object', 'required': ['type', 'agencyName', 'listingUrl', 'agencyListingId', 'lastSeenAt', 'status', 'statusBasis', 'agencyConfirmedAt'], 'properties': {'type': {'type': 'string', 'const': 'original_agency_listing'}, 'status': {'enum': ['active', 'under_offer', 'unknown'], 'type': 'string'}, 'agencyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'lastSeenAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'listingUrl': {'type': 'string', 'format': 'uri'}, 'statusBasis': {'enum': ['source_catalog_seen', 'listing_record_active'], 'type': 'string'}, 'agencyListingId': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'agencyConfirmedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'status': {'type': 'string', 'const': 'active'}, 'areaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'charges': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'country': {'anyOf': [{'enum': ['LU', 'FR', 'BE', 'DE'], 'type': 'string'}, {'type': 'null'}]}, 'history': {'type': 'object', 'required': ['firstObservedAt', 'firstObservedBasis', 'daysListed', 'priceDropTotalEur', 'lastChangedAt'], 'properties': {'daysListed': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'lastChangedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'firstObservedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'priceDropTotalEur': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'firstObservedBasis': {'type': 'string', 'const': 'source_listing_date_or_chathome_ingest'}}, 'additionalProperties': False}, 'currency': {'type': 'string', 'const': 'EUR'}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'features': {'type': 'array', 'items': {'type': 'string'}}, 'imageUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'latitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'location': {'type': 'object', 'required': ['city', 'district', 'address', 'postalCode', 'precision', 'confidence'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'address': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'precision': {'enum': ['exact_address', 'street', 'district', 'commune_only', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['verified', 'unverified', 'contradicted', 'unknown'], 'type': 'string'}, 'postalCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'property': {'type': 'object', 'required': ['rooms', 'floor', 'totalFloors', 'constructionYear', 'completionYear', 'landAreaSqm', 'privateRoomAreaSqm', 'condition', 'heatingType', 'heatingEnergy', 'airConditioning', 'hasFloorplan', 'rentByOwner', 'colocation'], 'properties': {'floor': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'rooms': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'condition': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'colocation': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'heatingType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'landAreaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'rentByOwner': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'totalFloors': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'hasFloorplan': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'heatingEnergy': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'completionYear': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'airConditioning': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'constructionYear': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'privateRoomAreaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'amenities': {'type': 'object', 'required': ['furnished', 'elevator', 'parking', 'balcony', 'garden', 'petsAllowed', 'stepFreeAccess', 'wheelchairAccessible'], 'properties': {'garden': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'balcony': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'parking': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'elevator': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'furnished': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'petsAllowed': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'stepFreeAccess': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'wheelchairAccessible': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}}, 'additionalProperties': False}, 'longitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'photoUrls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 5}, 'transport': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'agencyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'duplicates': {'type': 'object', 'required': ['confirmedOtherSources', 'confirmedSourceCount'], 'properties': {'confirmedSourceCount': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'confirmedOtherSources': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'energyClass': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'listingType': {'enum': ['rent', 'sale'], 'type': 'string'}, 'pricePerSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'availability': {'type': 'object', 'required': ['offerStatus', 'availableFrom', 'moveInState'], 'properties': {'moveInState': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'offerStatus': {'enum': ['available', 'under_offer', 'unknown'], 'type': 'string'}, 'availableFrom': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'matchReasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'propertyType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'valueContext': {'type': 'object', 'required': ['priceIntegrity', 'fairPrice', 'marketContext'], 'properties': {'fairPrice': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'marketContext': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'priceIntegrity': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}, 'schemaVersion': {'type': 'string', 'const': 'agent-listing.v2'}, 'propertyChecks': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'fieldProvenance': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'object', 'required': ['status', 'publisher', 'method', 'sourceUrl', 'observedAt'], 'properties': {'method': {'enum': ['source_structured', 'source_text', 'official_dataset', 'calculation', 'manual_review', 'model_extraction', 'model_only', 'unknown'], 'type': 'string'}, 'status': {'enum': ['confirmed', 'estimated', 'thin_sample', 'stale', 'context_only', 'conflicted', 'not_collected', 'source_unavailable', 'suppressed'], 'type': 'string'}, 'publisher': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'sourceUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'observedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}}, 'additionalProperties': False}}, 'officialScreening': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'hasSourceCheckedFacts': {'type': 'boolean'}}, 'additionalProperties': {}}, 'pageText': {'type': 'object', 'required': ['schemaVersion', 'locale', 'summary', 'provenFeatures', 'areaFacts'], 'properties': {'locale': {'enum': ['en', 'fr', 'de', 'lu', 'pt'], 'type': 'string'}, 'summary': {'anyOf': [{'type': 'object', 'required': ['text', 'basis', 'agencyWords'], 'properties': {'text': {'type': 'string'}, 'basis': {'type': 'string', 'const': 'listing_facts_and_public_data'}, 'agencyWords': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}, {'type': 'null'}]}, 'areaFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'text', 'walkingMinutes', 'distanceMeters', 'name', 'inFloodZone', 'floodLevel', 'noiseLdenDb', 'source', 'sourceLabel', 'measuredFrom', 'measuredFromLabel', 'measuredAt'], 'properties': {'id': {'enum': ['nearest_transit_stop', 'nearest_rail_station', 'nearest_school', 'flood_zone', 'road_noise', 'rail_noise', 'aircraft_noise'], 'type': 'string'}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'text': {'type': 'string'}, 'label': {'type': 'string'}, 'source': {'enum': ['public_transport_timetables', 'school_registers', 'official_flood_maps', 'official_noise_maps'], 'type': 'string'}, 'floodLevel': {'anyOf': [{'enum': ['low', 'moderate', 'high', 'very_high'], 'type': 'string'}, {'type': 'null'}]}, 'measuredAt': {'type': 'string'}, 'inFloodZone': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'noiseLdenDb': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'sourceLabel': {'type': 'string'}, 'measuredFrom': {'enum': ['address', 'block', 'street', 'district'], 'type': 'string'}, 'distanceMeters': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'walkingMinutes': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'measuredFromLabel': {'type': 'string'}}, 'additionalProperties': False}}, 'schemaVersion': {'type': 'string', 'const': 'listing-page-text.v1'}, 'provenFeatures': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label', 'source'], 'properties': {'key': {'type': 'string'}, 'label': {'type': 'string'}, 'source': {'type': 'string', 'const': 'agency_listing_page'}}, 'additionalProperties': False}}}, 'additionalProperties': False}, 'listingPage': {'type': 'object', 'properties': {}, 'additionalProperties': {}}, 'listingPageContext': {'type': 'object', 'required': ['priceHistory', 'priceEvolution', 'familyAmenities', 'neighborhoodFacts', 'countryEvidence', 'transitSummary', 'commuteSummary', 'passport', 'propertyChecks', 'parcelDossier'], 'properties': {'passport': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'priceHistory': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'parcelDossier': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'commuteSummary': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'priceEvolution': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'propertyChecks': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'transitSummary': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'countryEvidence': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'familyAmenities': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'neighborhoodFacts': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'additionalProperties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Listing ID'}, 'locale': {'enum': ['en', 'fr', 'de', 'lu', 'pt', 'lb'], 'type': 'string', 'description': "Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')"}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['listing', 'listingPage', 'listingPageContext', 'corrections', 'trust'], 'properties': {'trust': {'type': 'object', 'required': ['sources', 'confidence', 'freshness'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'fallback': {'type': 'boolean'}, 'freshness': {'enum': ['fresh', 'recent', 'stale', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['low', 'medium', 'high', 'unknown'], 'type': 'string'}, 'generatedAt': {'type': 'string'}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'listing': {'type': 'object', 'required': ['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'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string', 'format': 'uri'}, 'beds': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'rent': {'anyOf': [{'type': 'object', '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'], 'properties': {'deposit': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'agencyFee': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'baseMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'monthlyTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'agencyFeeBasis': {'anyOf': [{'enum': ['tenant_share', 'total_commission', 'unknown'], 'type': 'string'}, {'type': 'null'}]}, 'chargesMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'depositMaximum': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'chargesIncluded': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'reportedDeposit': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'exactUpfrontCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'knownUpfrontCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'unknownComponents': {'type': 'array', 'items': {'type': 'string'}}, 'firstChargeAdvance': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'monthlyTotalStatus': {'anyOf': [{'enum': ['known', 'unknown_charges', 'conflicting_charges', 'invalid_price', 'unknown_mandatory_recurring_fees'], 'type': 'string'}, {'type': 'null'}]}, 'upfrontCostIsExact': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'mandatoryMoveInFees': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'depositExceedsMaximum': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'estimatedMonthlyTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'knownMonthlyLowerBound': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'mandatoryRecurringFees': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'mandatoryMoveInFeeTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'upfrontCostIsLowerBound': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'estimatedUtilitiesMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'heatingMayBeDoubleCounted': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'indicativeInsuranceMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'mandatoryRecurringFeeTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'estimatedMonthlyTotalIsLowerBound': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'baths': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'match': {'type': 'object', 'required': ['allRequiredConstraintsSatisfied', 'resultKind', 'requiredConstraints', 'reasons'], 'properties': {'reasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'resultKind': {'anyOf': [{'enum': ['strict_match', 'partial_match', 'relaxed_alternative'], 'type': 'string'}, {'type': 'null'}]}, 'requiredConstraints': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status', 'target', 'actual'], 'properties': {'id': {'type': 'string'}, 'actual': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}]}, 'status': {'enum': ['matched', 'not_matched', 'not_verified', 'not_applied'], 'type': 'string'}, 'target': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'allRequiredConstraintsSatisfied': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'score': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'title': {'type': 'string'}, 'source': {'anyOf': [{'type': 'object', 'required': ['type', 'agencyName', 'listingUrl', 'agencyListingId', 'lastSeenAt', 'status', 'statusBasis', 'agencyConfirmedAt'], 'properties': {'type': {'type': 'string', 'const': 'original_agency_listing'}, 'status': {'enum': ['active', 'under_offer', 'unknown'], 'type': 'string'}, 'agencyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'lastSeenAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'listingUrl': {'type': 'string', 'format': 'uri'}, 'statusBasis': {'enum': ['source_catalog_seen', 'listing_record_active'], 'type': 'string'}, 'agencyListingId': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'agencyConfirmedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'status': {'type': 'string', 'const': 'active'}, 'areaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'charges': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'country': {'anyOf': [{'enum': ['LU', 'FR', 'BE', 'DE'], 'type': 'string'}, {'type': 'null'}]}, 'history': {'type': 'object', 'required': ['firstObservedAt', 'firstObservedBasis', 'daysListed', 'priceDropTotalEur', 'lastChangedAt'], 'properties': {'daysListed': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'lastChangedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'firstObservedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'priceDropTotalEur': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'firstObservedBasis': {'type': 'string', 'const': 'source_listing_date_or_chathome_ingest'}}, 'additionalProperties': False}, 'currency': {'type': 'string', 'const': 'EUR'}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'features': {'type': 'array', 'items': {'type': 'string'}}, 'imageUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'latitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'location': {'type': 'object', 'required': ['city', 'district', 'address', 'postalCode', 'precision', 'confidence'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'address': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'precision': {'enum': ['exact_address', 'street', 'district', 'commune_only', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['verified', 'unverified', 'contradicted', 'unknown'], 'type': 'string'}, 'postalCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'property': {'type': 'object', 'required': ['rooms', 'floor', 'totalFloors', 'constructionYear', 'completionYear', 'landAreaSqm', 'privateRoomAreaSqm', 'condition', 'heatingType', 'heatingEnergy', 'airConditioning', 'hasFloorplan', 'rentByOwner', 'colocation'], 'properties': {'floor': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'rooms': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'condition': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'colocation': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'heatingType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'landAreaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'rentByOwner': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'totalFloors': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'hasFloorplan': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'heatingEnergy': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'completionYear': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'airConditioning': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'constructionYear': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'privateRoomAreaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'amenities': {'type': 'object', 'required': ['furnished', 'elevator', 'parking', 'balcony', 'garden', 'petsAllowed', 'stepFreeAccess', 'wheelchairAccessible'], 'properties': {'garden': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'balcony': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'parking': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'elevator': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'furnished': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'petsAllowed': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'stepFreeAccess': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'wheelchairAccessible': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}}, 'additionalProperties': False}, 'longitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'photoUrls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 5}, 'transport': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'agencyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'duplicates': {'type': 'object', 'required': ['confirmedOtherSources', 'confirmedSourceCount'], 'properties': {'confirmedSourceCount': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'confirmedOtherSources': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'energyClass': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'listingType': {'enum': ['rent', 'sale'], 'type': 'string'}, 'pricePerSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'availability': {'type': 'object', 'required': ['offerStatus', 'availableFrom', 'moveInState'], 'properties': {'moveInState': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'offerStatus': {'enum': ['available', 'under_offer', 'unknown'], 'type': 'string'}, 'availableFrom': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'matchReasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'propertyType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'valueContext': {'type': 'object', 'required': ['priceIntegrity', 'fairPrice', 'marketContext'], 'properties': {'fairPrice': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'marketContext': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'priceIntegrity': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}, 'schemaVersion': {'type': 'string', 'const': 'agent-listing.v2'}, 'propertyChecks': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'fieldProvenance': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'object', 'required': ['status', 'publisher', 'method', 'sourceUrl', 'observedAt'], 'properties': {'method': {'enum': ['source_structured', 'source_text', 'official_dataset', 'calculation', 'manual_review', 'model_extraction', 'model_only', 'unknown'], 'type': 'string'}, 'status': {'enum': ['confirmed', 'estimated', 'thin_sample', 'stale', 'context_only', 'conflicted', 'not_collected', 'source_unavailable', 'suppressed'], 'type': 'string'}, 'publisher': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'sourceUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'observedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}}, 'additionalProperties': False}}, 'officialScreening': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'hasSourceCheckedFacts': {'type': 'boolean'}}, 'additionalProperties': {}}, 'corrections': {'type': 'object', 'properties': {}, 'additionalProperties': {}}, 'listingPage': {'type': 'object', 'properties': {}, 'additionalProperties': {}}, 'listingPageContext': {'type': 'object', 'required': ['priceHistory', 'priceEvolution', 'familyAmenities', 'neighborhoodFacts', 'countryEvidence', 'transitSummary', 'commuteSummary', 'passport', 'propertyChecks', 'parcelDossier'], 'properties': {'passport': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'priceHistory': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'parcelDossier': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'commuteSummary': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'priceEvolution': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'propertyChecks': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'transitSummary': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'countryEvidence': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'familyAmenities': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'neighborhoodFacts': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'additionalProperties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['commune'], 'properties': {'locale': {'enum': ['en', 'fr', 'de', 'lu', 'pt', 'lb'], 'type': 'string', 'description': "Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')"}, 'commune': {'type': 'string', 'minLength': 1, 'description': "Luxembourg commune slug or name (e.g. 'luxembourg', 'esch-sur-alzette', 'kirchberg')"}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['commune', 'trust'], 'properties': {'trust': {'type': 'object', 'required': ['sources', 'confidence', 'freshness'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'fallback': {'type': 'boolean'}, 'freshness': {'enum': ['fresh', 'recent', 'stale', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['low', 'medium', 'high', 'unknown'], 'type': 'string'}, 'generatedAt': {'type': 'string'}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'commune': {'type': 'string'}}, 'additionalProperties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['propertyType', 'listingType', 'commune', 'areaSqm'], 'properties': {'areaSqm': {'type': 'number', 'description': 'Living area in square metres', 'exclusiveMinimum': 0}, 'commune': {'type': 'string', 'minLength': 1, 'description': "Luxembourg commune name or slug, e.g. 'luxembourg', 'esch-sur-alzette'"}, 'bedrooms': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of bedrooms'}, 'energyClass': {'type': 'string', 'description': "Energy performance certificate class, e.g. 'A', 'B', 'C'"}, 'listingType': {'enum': ['rent', 'sale'], 'type': 'string', 'description': 'Whether the property is for rent or sale'}, 'propertyType': {'type': 'string', 'minLength': 1, 'description': "Property type, e.g. 'apartment', 'house', 'studio', 'penthouse'"}, 'constructionYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Year the property was built, e.g. 1995'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['propertyType', 'listingType', 'commune', 'areaSqm', 'trust'], 'properties': {'trust': {'type': 'object', 'required': ['sources', 'confidence', 'freshness'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'fallback': {'type': 'boolean'}, 'freshness': {'enum': ['fresh', 'recent', 'stale', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['low', 'medium', 'high', 'unknown'], 'type': 'string'}, 'generatedAt': {'type': 'string'}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'areaSqm': {'type': 'number'}, 'commune': {'type': 'string'}, 'listingType': {'enum': ['rent', 'sale'], 'type': 'string'}, 'propertyType': {'type': 'string'}, 'estimatedPrice': {'type': 'number'}}, 'additionalProperties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['commune'], 'properties': {'locale': {'enum': ['en', 'fr', 'de', 'lu', 'pt', 'lb'], 'type': 'string', 'description': "Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')"}, 'commune': {'type': 'string', 'minLength': 1, 'description': "One of the supported Luxembourg town names or slugs, e.g. 'Mersch' or 'esch-sur-alzette'"}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['commune', 'communeSlug', 'localityId', 'measuredAt', 'source', 'activeListings', 'buyListings', 'rentListings', 'unclassifiedListings', 'agencyCount', 'agencies', 'pageUrl', 'trust'], 'properties': {'trust': {'type': 'object', 'required': ['sources', 'confidence', 'freshness'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'fallback': {'type': 'boolean'}, 'freshness': {'enum': ['fresh', 'recent', 'stale', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['low', 'medium', 'high', 'unknown'], 'type': 'string'}, 'generatedAt': {'type': 'string'}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'source': {'type': 'string'}, 'commune': {'type': 'string'}, 'pageUrl': {'type': 'string'}, 'agencies': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'localityId': {'type': 'string'}, 'measuredAt': {'type': 'string'}, 'agencyCount': {'type': 'number'}, 'buyListings': {'type': 'number'}, 'communeSlug': {'type': 'string'}, 'rentListings': {'type': 'number'}, 'activeListings': {'type': 'number'}, 'unclassifiedListings': {'type': 'number'}}, 'additionalProperties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['listings'], 'properties': {'locale': {'enum': ['en', 'fr', 'de', 'lu', 'pt', 'lb'], 'type': 'string', 'description': "Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')"}, 'heading': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Short user-facing heading grounded in the search request'}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Exact listing ID copied from a prior search result'}, 'score': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Exact match score returned by search_vibe'}, 'matchReasons': {'type': 'array', 'items': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'maxItems': 3, 'description': 'Exact match reasons returned by search_vibe'}}}, 'maxItems': 8, 'minItems': 1, 'description': 'One to eight exact listing IDs from search_vibe, search_rentals, or search_for_sale, in display order'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['listings', 'total'], 'properties': {'note': {'type': 'string'}, 'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Exact number of listing objects returned in this response; not the number of matches in the market.'}, 'trust': {'type': 'object', 'required': ['sources', 'confidence', 'freshness'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'fallback': {'type': 'boolean'}, 'freshness': {'enum': ['fresh', 'recent', 'stale', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['low', 'medium', 'high', 'unknown'], 'type': 'string'}, 'generatedAt': {'type': 'string'}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'source': {'type': 'string'}, 'hasMore': {'type': 'boolean'}, 'ranking': {'type': 'object', 'required': ['status', 'scoreKind', 'probability'], 'properties': {'status': {'enum': ['available', 'degraded'], 'type': 'string'}, 'scoreKind': {'type': 'string', 'const': 'request_fit'}, 'probability': {'type': 'boolean', 'const': False}, 'planFingerprint': {'type': 'string'}}, 'additionalProperties': False}, 'session': {'type': 'object', 'required': ['brief'], 'properties': {'brief': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'additionalProperties': False}, 'followUp': {'type': 'object', 'required': ['outcome'], 'properties': {'reply': {'type': 'string'}, 'outcome': {'enum': ['applied', 'answered'], 'type': 'string'}}, 'additionalProperties': False}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['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'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string', 'format': 'uri'}, 'beds': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'rent': {'anyOf': [{'type': 'object', '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'], 'properties': {'deposit': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'agencyFee': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'baseMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'monthlyTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'agencyFeeBasis': {'anyOf': [{'enum': ['tenant_share', 'total_commission', 'unknown'], 'type': 'string'}, {'type': 'null'}]}, 'chargesMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'depositMaximum': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'chargesIncluded': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'reportedDeposit': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'exactUpfrontCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'knownUpfrontCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'unknownComponents': {'type': 'array', 'items': {'type': 'string'}}, 'firstChargeAdvance': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'monthlyTotalStatus': {'anyOf': [{'enum': ['known', 'unknown_charges', 'conflicting_charges', 'invalid_price', 'unknown_mandatory_recurring_fees'], 'type': 'string'}, {'type': 'null'}]}, 'upfrontCostIsExact': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'mandatoryMoveInFees': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'depositExceedsMaximum': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'estimatedMonthlyTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'knownMonthlyLowerBound': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'mandatoryRecurringFees': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'mandatoryMoveInFeeTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'upfrontCostIsLowerBound': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'estimatedUtilitiesMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'heatingMayBeDoubleCounted': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'indicativeInsuranceMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'mandatoryRecurringFeeTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'estimatedMonthlyTotalIsLowerBound': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'baths': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'match': {'type': 'object', 'required': ['allRequiredConstraintsSatisfied', 'resultKind', 'requiredConstraints', 'reasons'], 'properties': {'reasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'resultKind': {'anyOf': [{'enum': ['strict_match', 'partial_match', 'relaxed_alternative'], 'type': 'string'}, {'type': 'null'}]}, 'requiredConstraints': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status', 'target', 'actual'], 'properties': {'id': {'type': 'string'}, 'actual': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}]}, 'status': {'enum': ['matched', 'not_matched', 'not_verified', 'not_applied'], 'type': 'string'}, 'target': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'allRequiredConstraintsSatisfied': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'score': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'title': {'type': 'string'}, 'source': {'anyOf': [{'type': 'object', 'required': ['type', 'agencyName', 'listingUrl', 'agencyListingId', 'lastSeenAt', 'status', 'statusBasis', 'agencyConfirmedAt'], 'properties': {'type': {'type': 'string', 'const': 'original_agency_listing'}, 'status': {'enum': ['active', 'under_offer', 'unknown'], 'type': 'string'}, 'agencyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'lastSeenAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'listingUrl': {'type': 'string', 'format': 'uri'}, 'statusBasis': {'enum': ['source_catalog_seen', 'listing_record_active'], 'type': 'string'}, 'agencyListingId': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'agencyConfirmedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'status': {'type': 'string', 'const': 'active'}, 'areaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'charges': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'country': {'anyOf': [{'enum': ['LU', 'FR', 'BE', 'DE'], 'type': 'string'}, {'type': 'null'}]}, 'history': {'type': 'object', 'required': ['firstObservedAt', 'firstObservedBasis', 'daysListed', 'priceDropTotalEur', 'lastChangedAt'], 'properties': {'daysListed': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'lastChangedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'firstObservedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'priceDropTotalEur': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'firstObservedBasis': {'type': 'string', 'const': 'source_listing_date_or_chathome_ingest'}}, 'additionalProperties': False}, 'currency': {'type': 'string', 'const': 'EUR'}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'features': {'type': 'array', 'items': {'type': 'string'}}, 'imageUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'latitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'location': {'type': 'object', 'required': ['city', 'district', 'address', 'postalCode', 'precision', 'confidence'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'address': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'precision': {'enum': ['exact_address', 'street', 'district', 'commune_only', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['verified', 'unverified', 'contradicted', 'unknown'], 'type': 'string'}, 'postalCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'property': {'type': 'object', 'required': ['rooms', 'floor', 'totalFloors', 'constructionYear', 'completionYear', 'landAreaSqm', 'privateRoomAreaSqm', 'condition', 'heatingType', 'heatingEnergy', 'airConditioning', 'hasFloorplan', 'rentByOwner', 'colocation'], 'properties': {'floor': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'rooms': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'condition': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'colocation': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'heatingType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'landAreaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'rentByOwner': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'totalFloors': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'hasFloorplan': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'heatingEnergy': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'completionYear': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'airConditioning': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'constructionYear': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'privateRoomAreaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'amenities': {'type': 'object', 'required': ['furnished', 'elevator', 'parking', 'balcony', 'garden', 'petsAllowed', 'stepFreeAccess', 'wheelchairAccessible'], 'properties': {'garden': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'balcony': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'parking': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'elevator': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'furnished': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'petsAllowed': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'stepFreeAccess': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'wheelchairAccessible': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}}, 'additionalProperties': False}, 'longitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'photoUrls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 5}, 'transport': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'agencyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'duplicates': {'type': 'object', 'required': ['confirmedOtherSources', 'confirmedSourceCount'], 'properties': {'confirmedSourceCount': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'confirmedOtherSources': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'energyClass': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'listingType': {'enum': ['rent', 'sale'], 'type': 'string'}, 'pricePerSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'availability': {'type': 'object', 'required': ['offerStatus', 'availableFrom', 'moveInState'], 'properties': {'moveInState': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'offerStatus': {'enum': ['available', 'under_offer', 'unknown'], 'type': 'string'}, 'availableFrom': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'matchReasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'propertyType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'valueContext': {'type': 'object', 'required': ['priceIntegrity', 'fairPrice', 'marketContext'], 'properties': {'fairPrice': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'marketContext': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'priceIntegrity': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}, 'schemaVersion': {'type': 'string', 'const': 'agent-listing.v2'}, 'propertyChecks': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'fieldProvenance': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'object', 'required': ['status', 'publisher', 'method', 'sourceUrl', 'observedAt'], 'properties': {'method': {'enum': ['source_structured', 'source_text', 'official_dataset', 'calculation', 'manual_review', 'model_extraction', 'model_only', 'unknown'], 'type': 'string'}, 'status': {'enum': ['confirmed', 'estimated', 'thin_sample', 'stale', 'context_only', 'conflicted', 'not_collected', 'source_unavailable', 'suppressed'], 'type': 'string'}, 'publisher': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'sourceUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'observedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}}, 'additionalProperties': False}}, 'officialScreening': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'hasSourceCheckedFacts': {'type': 'boolean'}}, 'additionalProperties': {}}}, 'countKind': {'type': 'string', 'const': 'returned'}, 'truncated': {'type': 'boolean'}, 'nextCursor': {'type': 'null'}, 'matchingCount': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'returnedCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'understanding': {'type': 'object', 'required': ['understood', 'transaction', 'propertyTypes', 'excludedPropertyTypes', 'offer', 'places', 'commutes', 'checked', 'notChecked'], 'properties': {'offer': {'enum': ['whole', 'room', 'either'], 'type': 'string'}, 'places': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'role', 'kind', 'country', 'radiusKm', 'force'], 'properties': {'kind': {'type': 'string'}, 'name': {'type': 'string'}, 'role': {'enum': ['live', 'work', 'near', 'avoid'], 'type': 'string'}, 'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'country': {'anyOf': [{'enum': ['LU', 'FR', 'BE', 'DE'], 'type': 'string'}, {'type': 'null'}]}, 'radiusKm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'checked': {'type': 'array', 'items': {'type': 'object', 'required': ['meaning', 'needId', 'operator', 'value', 'unit', 'force'], 'properties': {'unit': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'value': {'anyOf': [{'anyOf': [{'type': 'number'}, {'type': 'string'}]}, {'type': 'null'}]}, 'needId': {'type': 'string'}, 'meaning': {'type': 'string'}, 'operator': {'type': 'string'}}, 'additionalProperties': False}}, 'commutes': {'type': 'array', 'items': {'type': 'object', 'required': ['destination', 'mode', 'maxMinutes', 'force'], 'properties': {'mode': {'anyOf': [{'enum': ['transit', 'drive', 'walk', 'bike'], 'type': 'string'}, {'type': 'null'}]}, 'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'maxMinutes': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'destination': {'type': 'string'}}, 'additionalProperties': False}}, 'notChecked': {'type': 'array', 'items': {'type': 'object', 'required': ['meaning', 'force', 'reason'], 'properties': {'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'reason': {'enum': ['no_listing_fact', 'fact_not_collected_yet'], 'type': 'string'}, 'meaning': {'type': 'string'}}, 'additionalProperties': False}}, 'understood': {'type': 'string'}, 'transaction': {'anyOf': [{'enum': ['buy', 'rent'], 'type': 'string'}, {'type': 'null'}]}, 'propertyTypes': {'type': 'array', 'items': {'type': 'string'}}, 'excludedPropertyTypes': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'What the engine understood from the request. notChecked lists wishes no returned home is confirmed to have.', 'additionalProperties': False}, 'searchExhaustive': {'type': 'boolean'}, 'matchingCountKind': {'enum': ['exact', 'lower_bound', 'unavailable'], 'type': 'string'}, 'excludedUnprovenCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Upstream rows omitted because public facts could not prove every requested hard filter.'}, 'marketMatchingUpperBound': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}}, 'additionalProperties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'sort': {'enum': ['relevance', 'newest', 'price-asc', 'price-desc'], 'type': 'string', 'description': 'Sort by relevance, listing date, or asking price'}, 'limit': {'type': 'number', 'maximum': 50, 'minimum': 1, 'description': 'Number of results to return (max 50, default 20)'}, 'garden': {'type': 'boolean', 'const': True, 'description': 'Require a source-confirmed garden'}, 'locale': {'enum': ['en', 'fr', 'de', 'lu', 'pt', 'lb'], 'type': 'string', 'description': "Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')"}, 'balcony': {'type': 'boolean', 'const': True, 'description': 'Require a source-confirmed balcony'}, 'commune': {'type': 'string', 'description': 'Luxembourg commune name or slug'}, 'minBeds': {'type': 'number', 'description': 'Minimum number of bedrooms'}, 'elevator': {'type': 'boolean', 'const': True, 'description': 'Require lift/elevator evidence'}, 'maxPrice': {'type': 'number', 'description': 'Maximum sale price in EUR'}, 'minPrice': {'type': 'number', 'description': 'Minimum sale price in EUR'}, 'furnished': {'type': 'boolean', 'const': True, 'description': 'Require furnished evidence'}, 'maxAreaSqm': {'type': 'number', 'description': 'Maximum area in m²'}, 'minAreaSqm': {'type': 'number', 'description': 'Minimum area in m²'}, 'parkingType': {'enum': ['off_street', 'garage', 'covered'], 'type': 'string', 'description': 'Require source-backed parking evidence'}, 'petsAllowed': {'type': 'boolean', 'const': True, 'description': 'Require pets-allowed evidence'}, 'minBathrooms': {'type': 'number', 'description': 'Minimum number of bathrooms'}, 'propertyType': {'type': 'string', 'description': 'Property type: apartment, house, villa, etc.'}, 'includePhotos': {'type': 'boolean', 'description': 'Attach thumbnail photos of the top results as image content blocks (default: true). Set false for a lean text-only response.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['listings', 'total'], 'properties': {'note': {'type': 'string'}, 'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Exact number of listing objects returned in this response; not the number of matches in the market.'}, 'trust': {'type': 'object', 'required': ['sources', 'confidence', 'freshness'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'fallback': {'type': 'boolean'}, 'freshness': {'enum': ['fresh', 'recent', 'stale', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['low', 'medium', 'high', 'unknown'], 'type': 'string'}, 'generatedAt': {'type': 'string'}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'source': {'type': 'string'}, 'hasMore': {'type': 'boolean'}, 'ranking': {'type': 'object', 'required': ['status', 'scoreKind', 'probability'], 'properties': {'status': {'enum': ['available', 'degraded'], 'type': 'string'}, 'scoreKind': {'type': 'string', 'const': 'request_fit'}, 'probability': {'type': 'boolean', 'const': False}, 'planFingerprint': {'type': 'string'}}, 'additionalProperties': False}, 'session': {'type': 'object', 'required': ['brief'], 'properties': {'brief': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'additionalProperties': False}, 'followUp': {'type': 'object', 'required': ['outcome'], 'properties': {'reply': {'type': 'string'}, 'outcome': {'enum': ['applied', 'answered'], 'type': 'string'}}, 'additionalProperties': False}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['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'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string', 'format': 'uri'}, 'beds': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'rent': {'anyOf': [{'type': 'object', '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'], 'properties': {'deposit': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'agencyFee': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'baseMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'monthlyTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'agencyFeeBasis': {'anyOf': [{'enum': ['tenant_share', 'total_commission', 'unknown'], 'type': 'string'}, {'type': 'null'}]}, 'chargesMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'depositMaximum': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'chargesIncluded': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'reportedDeposit': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'exactUpfrontCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'knownUpfrontCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'unknownComponents': {'type': 'array', 'items': {'type': 'string'}}, 'firstChargeAdvance': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'monthlyTotalStatus': {'anyOf': [{'enum': ['known', 'unknown_charges', 'conflicting_charges', 'invalid_price', 'unknown_mandatory_recurring_fees'], 'type': 'string'}, {'type': 'null'}]}, 'upfrontCostIsExact': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'mandatoryMoveInFees': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'depositExceedsMaximum': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'estimatedMonthlyTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'knownMonthlyLowerBound': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'mandatoryRecurringFees': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'mandatoryMoveInFeeTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'upfrontCostIsLowerBound': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'estimatedUtilitiesMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'heatingMayBeDoubleCounted': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'indicativeInsuranceMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'mandatoryRecurringFeeTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'estimatedMonthlyTotalIsLowerBound': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'baths': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'match': {'type': 'object', 'required': ['allRequiredConstraintsSatisfied', 'resultKind', 'requiredConstraints', 'reasons'], 'properties': {'reasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'resultKind': {'anyOf': [{'enum': ['strict_match', 'partial_match', 'relaxed_alternative'], 'type': 'string'}, {'type': 'null'}]}, 'requiredConstraints': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status', 'target', 'actual'], 'properties': {'id': {'type': 'string'}, 'actual': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}]}, 'status': {'enum': ['matched', 'not_matched', 'not_verified', 'not_applied'], 'type': 'string'}, 'target': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'allRequiredConstraintsSatisfied': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'score': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'title': {'type': 'string'}, 'source': {'anyOf': [{'type': 'object', 'required': ['type', 'agencyName', 'listingUrl', 'agencyListingId', 'lastSeenAt', 'status', 'statusBasis', 'agencyConfirmedAt'], 'properties': {'type': {'type': 'string', 'const': 'original_agency_listing'}, 'status': {'enum': ['active', 'under_offer', 'unknown'], 'type': 'string'}, 'agencyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'lastSeenAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'listingUrl': {'type': 'string', 'format': 'uri'}, 'statusBasis': {'enum': ['source_catalog_seen', 'listing_record_active'], 'type': 'string'}, 'agencyListingId': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'agencyConfirmedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'status': {'type': 'string', 'const': 'active'}, 'areaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'charges': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'country': {'anyOf': [{'enum': ['LU', 'FR', 'BE', 'DE'], 'type': 'string'}, {'type': 'null'}]}, 'history': {'type': 'object', 'required': ['firstObservedAt', 'firstObservedBasis', 'daysListed', 'priceDropTotalEur', 'lastChangedAt'], 'properties': {'daysListed': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'lastChangedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'firstObservedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'priceDropTotalEur': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'firstObservedBasis': {'type': 'string', 'const': 'source_listing_date_or_chathome_ingest'}}, 'additionalProperties': False}, 'currency': {'type': 'string', 'const': 'EUR'}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'features': {'type': 'array', 'items': {'type': 'string'}}, 'imageUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'latitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'location': {'type': 'object', 'required': ['city', 'district', 'address', 'postalCode', 'precision', 'confidence'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'address': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'precision': {'enum': ['exact_address', 'street', 'district', 'commune_only', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['verified', 'unverified', 'contradicted', 'unknown'], 'type': 'string'}, 'postalCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'property': {'type': 'object', 'required': ['rooms', 'floor', 'totalFloors', 'constructionYear', 'completionYear', 'landAreaSqm', 'privateRoomAreaSqm', 'condition', 'heatingType', 'heatingEnergy', 'airConditioning', 'hasFloorplan', 'rentByOwner', 'colocation'], 'properties': {'floor': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'rooms': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'condition': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'colocation': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'heatingType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'landAreaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'rentByOwner': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'totalFloors': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'hasFloorplan': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'heatingEnergy': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'completionYear': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'airConditioning': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'constructionYear': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'privateRoomAreaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'amenities': {'type': 'object', 'required': ['furnished', 'elevator', 'parking', 'balcony', 'garden', 'petsAllowed', 'stepFreeAccess', 'wheelchairAccessible'], 'properties': {'garden': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'balcony': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'parking': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'elevator': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'furnished': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'petsAllowed': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'stepFreeAccess': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'wheelchairAccessible': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}}, 'additionalProperties': False}, 'longitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'photoUrls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 5}, 'transport': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'agencyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'duplicates': {'type': 'object', 'required': ['confirmedOtherSources', 'confirmedSourceCount'], 'properties': {'confirmedSourceCount': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'confirmedOtherSources': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'energyClass': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'listingType': {'enum': ['rent', 'sale'], 'type': 'string'}, 'pricePerSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'availability': {'type': 'object', 'required': ['offerStatus', 'availableFrom', 'moveInState'], 'properties': {'moveInState': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'offerStatus': {'enum': ['available', 'under_offer', 'unknown'], 'type': 'string'}, 'availableFrom': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'matchReasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'propertyType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'valueContext': {'type': 'object', 'required': ['priceIntegrity', 'fairPrice', 'marketContext'], 'properties': {'fairPrice': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'marketContext': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'priceIntegrity': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}, 'schemaVersion': {'type': 'string', 'const': 'agent-listing.v2'}, 'propertyChecks': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'fieldProvenance': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'object', 'required': ['status', 'publisher', 'method', 'sourceUrl', 'observedAt'], 'properties': {'method': {'enum': ['source_structured', 'source_text', 'official_dataset', 'calculation', 'manual_review', 'model_extraction', 'model_only', 'unknown'], 'type': 'string'}, 'status': {'enum': ['confirmed', 'estimated', 'thin_sample', 'stale', 'context_only', 'conflicted', 'not_collected', 'source_unavailable', 'suppressed'], 'type': 'string'}, 'publisher': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'sourceUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'observedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}}, 'additionalProperties': False}}, 'officialScreening': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'hasSourceCheckedFacts': {'type': 'boolean'}}, 'additionalProperties': {}}}, 'countKind': {'type': 'string', 'const': 'returned'}, 'truncated': {'type': 'boolean'}, 'nextCursor': {'type': 'null'}, 'matchingCount': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'returnedCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'understanding': {'type': 'object', 'required': ['understood', 'transaction', 'propertyTypes', 'excludedPropertyTypes', 'offer', 'places', 'commutes', 'checked', 'notChecked'], 'properties': {'offer': {'enum': ['whole', 'room', 'either'], 'type': 'string'}, 'places': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'role', 'kind', 'country', 'radiusKm', 'force'], 'properties': {'kind': {'type': 'string'}, 'name': {'type': 'string'}, 'role': {'enum': ['live', 'work', 'near', 'avoid'], 'type': 'string'}, 'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'country': {'anyOf': [{'enum': ['LU', 'FR', 'BE', 'DE'], 'type': 'string'}, {'type': 'null'}]}, 'radiusKm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'checked': {'type': 'array', 'items': {'type': 'object', 'required': ['meaning', 'needId', 'operator', 'value', 'unit', 'force'], 'properties': {'unit': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'value': {'anyOf': [{'anyOf': [{'type': 'number'}, {'type': 'string'}]}, {'type': 'null'}]}, 'needId': {'type': 'string'}, 'meaning': {'type': 'string'}, 'operator': {'type': 'string'}}, 'additionalProperties': False}}, 'commutes': {'type': 'array', 'items': {'type': 'object', 'required': ['destination', 'mode', 'maxMinutes', 'force'], 'properties': {'mode': {'anyOf': [{'enum': ['transit', 'drive', 'walk', 'bike'], 'type': 'string'}, {'type': 'null'}]}, 'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'maxMinutes': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'destination': {'type': 'string'}}, 'additionalProperties': False}}, 'notChecked': {'type': 'array', 'items': {'type': 'object', 'required': ['meaning', 'force', 'reason'], 'properties': {'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'reason': {'enum': ['no_listing_fact', 'fact_not_collected_yet'], 'type': 'string'}, 'meaning': {'type': 'string'}}, 'additionalProperties': False}}, 'understood': {'type': 'string'}, 'transaction': {'anyOf': [{'enum': ['buy', 'rent'], 'type': 'string'}, {'type': 'null'}]}, 'propertyTypes': {'type': 'array', 'items': {'type': 'string'}}, 'excludedPropertyTypes': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'What the engine understood from the request. notChecked lists wishes no returned home is confirmed to have.', 'additionalProperties': False}, 'searchExhaustive': {'type': 'boolean'}, 'matchingCountKind': {'enum': ['exact', 'lower_bound', 'unavailable'], 'type': 'string'}, 'excludedUnprovenCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Upstream rows omitted because public facts could not prove every requested hard filter.'}, 'marketMatchingUpperBound': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}}, 'additionalProperties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'sort': {'enum': ['relevance', 'newest', 'price-asc', 'price-desc'], 'type': 'string', 'description': 'Sort the proven result set. price-asc means base rent, not all-in monthly cost.'}, 'limit': {'type': 'number', 'maximum': 50, 'minimum': 1, 'description': 'Number of results to return (max 50, default 20)'}, 'garden': {'type': 'boolean', 'const': True, 'description': 'Require a source-confirmed garden'}, 'locale': {'enum': ['en', 'fr', 'de', 'lu', 'pt', 'lb'], 'type': 'string', 'description': "Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')"}, 'balcony': {'type': 'boolean', 'const': True, 'description': 'Require a source-confirmed balcony'}, 'commune': {'type': 'string', 'description': 'Luxembourg commune name or slug'}, 'minBeds': {'type': 'number', 'description': 'Minimum number of bedrooms'}, 'elevator': {'type': 'boolean', 'const': True, 'description': 'Require positive source evidence of a lift/elevator'}, 'maxPrice': {'type': 'number', 'description': 'Maximum advertised base monthly rent in EUR, excluding separate charges'}, 'minPrice': {'type': 'number', 'description': 'Minimum monthly rent in EUR'}, 'furnished': {'type': 'boolean', 'const': True, 'description': 'Require positive source evidence that the rental is furnished'}, 'maxAreaSqm': {'type': 'number', 'description': 'Maximum area in m²'}, 'minAreaSqm': {'type': 'number', 'description': 'Minimum area in m²'}, 'parkingType': {'enum': ['off_street', 'garage', 'covered'], 'type': 'string', 'description': 'Require source-backed parking evidence'}, 'petsAllowed': {'type': 'boolean', 'const': True, 'description': 'Require positive source evidence that pets are allowed'}, 'minBathrooms': {'type': 'number', 'description': 'Minimum number of bathrooms'}, 'propertyType': {'type': 'string', 'description': 'Property type: apartment, house, studio, room, etc.'}, 'includePhotos': {'type': 'boolean', 'description': 'Attach thumbnail photos of the top results as image content blocks (default: true). Set false for a lean text-only response.'}, 'maxTotalMonthly': {'type': 'number', 'description': 'Strict maximum confirmed monthly obligation in EUR: advertised rent plus source-confirmed required recurring charges and fees. Listings with missing, estimated, conflicting, or stale cost evidence are excluded.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['listings', 'total'], 'properties': {'note': {'type': 'string'}, 'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Exact number of listing objects returned in this response; not the number of matches in the market.'}, 'trust': {'type': 'object', 'required': ['sources', 'confidence', 'freshness'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'fallback': {'type': 'boolean'}, 'freshness': {'enum': ['fresh', 'recent', 'stale', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['low', 'medium', 'high', 'unknown'], 'type': 'string'}, 'generatedAt': {'type': 'string'}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'source': {'type': 'string'}, 'hasMore': {'type': 'boolean'}, 'ranking': {'type': 'object', 'required': ['status', 'scoreKind', 'probability'], 'properties': {'status': {'enum': ['available', 'degraded'], 'type': 'string'}, 'scoreKind': {'type': 'string', 'const': 'request_fit'}, 'probability': {'type': 'boolean', 'const': False}, 'planFingerprint': {'type': 'string'}}, 'additionalProperties': False}, 'session': {'type': 'object', 'required': ['brief'], 'properties': {'brief': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'additionalProperties': False}, 'followUp': {'type': 'object', 'required': ['outcome'], 'properties': {'reply': {'type': 'string'}, 'outcome': {'enum': ['applied', 'answered'], 'type': 'string'}}, 'additionalProperties': False}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['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'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string', 'format': 'uri'}, 'beds': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'rent': {'anyOf': [{'type': 'object', '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'], 'properties': {'deposit': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'agencyFee': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'baseMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'monthlyTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'agencyFeeBasis': {'anyOf': [{'enum': ['tenant_share', 'total_commission', 'unknown'], 'type': 'string'}, {'type': 'null'}]}, 'chargesMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'depositMaximum': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'chargesIncluded': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'reportedDeposit': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'exactUpfrontCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'knownUpfrontCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'unknownComponents': {'type': 'array', 'items': {'type': 'string'}}, 'firstChargeAdvance': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'monthlyTotalStatus': {'anyOf': [{'enum': ['known', 'unknown_charges', 'conflicting_charges', 'invalid_price', 'unknown_mandatory_recurring_fees'], 'type': 'string'}, {'type': 'null'}]}, 'upfrontCostIsExact': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'mandatoryMoveInFees': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'depositExceedsMaximum': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'estimatedMonthlyTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'knownMonthlyLowerBound': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'mandatoryRecurringFees': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'mandatoryMoveInFeeTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'upfrontCostIsLowerBound': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'estimatedUtilitiesMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'heatingMayBeDoubleCounted': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'indicativeInsuranceMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'mandatoryRecurringFeeTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'estimatedMonthlyTotalIsLowerBound': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'baths': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'match': {'type': 'object', 'required': ['allRequiredConstraintsSatisfied', 'resultKind', 'requiredConstraints', 'reasons'], 'properties': {'reasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'resultKind': {'anyOf': [{'enum': ['strict_match', 'partial_match', 'relaxed_alternative'], 'type': 'string'}, {'type': 'null'}]}, 'requiredConstraints': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status', 'target', 'actual'], 'properties': {'id': {'type': 'string'}, 'actual': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}]}, 'status': {'enum': ['matched', 'not_matched', 'not_verified', 'not_applied'], 'type': 'string'}, 'target': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'allRequiredConstraintsSatisfied': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'score': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'title': {'type': 'string'}, 'source': {'anyOf': [{'type': 'object', 'required': ['type', 'agencyName', 'listingUrl', 'agencyListingId', 'lastSeenAt', 'status', 'statusBasis', 'agencyConfirmedAt'], 'properties': {'type': {'type': 'string', 'const': 'original_agency_listing'}, 'status': {'enum': ['active', 'under_offer', 'unknown'], 'type': 'string'}, 'agencyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'lastSeenAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'listingUrl': {'type': 'string', 'format': 'uri'}, 'statusBasis': {'enum': ['source_catalog_seen', 'listing_record_active'], 'type': 'string'}, 'agencyListingId': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'agencyConfirmedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'status': {'type': 'string', 'const': 'active'}, 'areaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'charges': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'country': {'anyOf': [{'enum': ['LU', 'FR', 'BE', 'DE'], 'type': 'string'}, {'type': 'null'}]}, 'history': {'type': 'object', 'required': ['firstObservedAt', 'firstObservedBasis', 'daysListed', 'priceDropTotalEur', 'lastChangedAt'], 'properties': {'daysListed': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'lastChangedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'firstObservedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'priceDropTotalEur': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'firstObservedBasis': {'type': 'string', 'const': 'source_listing_date_or_chathome_ingest'}}, 'additionalProperties': False}, 'currency': {'type': 'string', 'const': 'EUR'}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'features': {'type': 'array', 'items': {'type': 'string'}}, 'imageUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'latitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'location': {'type': 'object', 'required': ['city', 'district', 'address', 'postalCode', 'precision', 'confidence'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'address': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'precision': {'enum': ['exact_address', 'street', 'district', 'commune_only', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['verified', 'unverified', 'contradicted', 'unknown'], 'type': 'string'}, 'postalCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'property': {'type': 'object', 'required': ['rooms', 'floor', 'totalFloors', 'constructionYear', 'completionYear', 'landAreaSqm', 'privateRoomAreaSqm', 'condition', 'heatingType', 'heatingEnergy', 'airConditioning', 'hasFloorplan', 'rentByOwner', 'colocation'], 'properties': {'floor': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'rooms': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'condition': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'colocation': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'heatingType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'landAreaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'rentByOwner': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'totalFloors': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'hasFloorplan': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'heatingEnergy': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'completionYear': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'airConditioning': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'constructionYear': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'privateRoomAreaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'amenities': {'type': 'object', 'required': ['furnished', 'elevator', 'parking', 'balcony', 'garden', 'petsAllowed', 'stepFreeAccess', 'wheelchairAccessible'], 'properties': {'garden': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'balcony': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'parking': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'elevator': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'furnished': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'petsAllowed': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'stepFreeAccess': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'wheelchairAccessible': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}}, 'additionalProperties': False}, 'longitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'photoUrls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 5}, 'transport': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'agencyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'duplicates': {'type': 'object', 'required': ['confirmedOtherSources', 'confirmedSourceCount'], 'properties': {'confirmedSourceCount': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'confirmedOtherSources': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'energyClass': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'listingType': {'enum': ['rent', 'sale'], 'type': 'string'}, 'pricePerSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'availability': {'type': 'object', 'required': ['offerStatus', 'availableFrom', 'moveInState'], 'properties': {'moveInState': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'offerStatus': {'enum': ['available', 'under_offer', 'unknown'], 'type': 'string'}, 'availableFrom': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'matchReasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'propertyType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'valueContext': {'type': 'object', 'required': ['priceIntegrity', 'fairPrice', 'marketContext'], 'properties': {'fairPrice': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'marketContext': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'priceIntegrity': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}, 'schemaVersion': {'type': 'string', 'const': 'agent-listing.v2'}, 'propertyChecks': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'fieldProvenance': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'object', 'required': ['status', 'publisher', 'method', 'sourceUrl', 'observedAt'], 'properties': {'method': {'enum': ['source_structured', 'source_text', 'official_dataset', 'calculation', 'manual_review', 'model_extraction', 'model_only', 'unknown'], 'type': 'string'}, 'status': {'enum': ['confirmed', 'estimated', 'thin_sample', 'stale', 'context_only', 'conflicted', 'not_collected', 'source_unavailable', 'suppressed'], 'type': 'string'}, 'publisher': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'sourceUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'observedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}}, 'additionalProperties': False}}, 'officialScreening': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'hasSourceCheckedFacts': {'type': 'boolean'}}, 'additionalProperties': {}}}, 'countKind': {'type': 'string', 'const': 'returned'}, 'truncated': {'type': 'boolean'}, 'nextCursor': {'type': 'null'}, 'matchingCount': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'returnedCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'understanding': {'type': 'object', 'required': ['understood', 'transaction', 'propertyTypes', 'excludedPropertyTypes', 'offer', 'places', 'commutes', 'checked', 'notChecked'], 'properties': {'offer': {'enum': ['whole', 'room', 'either'], 'type': 'string'}, 'places': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'role', 'kind', 'country', 'radiusKm', 'force'], 'properties': {'kind': {'type': 'string'}, 'name': {'type': 'string'}, 'role': {'enum': ['live', 'work', 'near', 'avoid'], 'type': 'string'}, 'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'country': {'anyOf': [{'enum': ['LU', 'FR', 'BE', 'DE'], 'type': 'string'}, {'type': 'null'}]}, 'radiusKm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'checked': {'type': 'array', 'items': {'type': 'object', 'required': ['meaning', 'needId', 'operator', 'value', 'unit', 'force'], 'properties': {'unit': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'value': {'anyOf': [{'anyOf': [{'type': 'number'}, {'type': 'string'}]}, {'type': 'null'}]}, 'needId': {'type': 'string'}, 'meaning': {'type': 'string'}, 'operator': {'type': 'string'}}, 'additionalProperties': False}}, 'commutes': {'type': 'array', 'items': {'type': 'object', 'required': ['destination', 'mode', 'maxMinutes', 'force'], 'properties': {'mode': {'anyOf': [{'enum': ['transit', 'drive', 'walk', 'bike'], 'type': 'string'}, {'type': 'null'}]}, 'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'maxMinutes': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'destination': {'type': 'string'}}, 'additionalProperties': False}}, 'notChecked': {'type': 'array', 'items': {'type': 'object', 'required': ['meaning', 'force', 'reason'], 'properties': {'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'reason': {'enum': ['no_listing_fact', 'fact_not_collected_yet'], 'type': 'string'}, 'meaning': {'type': 'string'}}, 'additionalProperties': False}}, 'understood': {'type': 'string'}, 'transaction': {'anyOf': [{'enum': ['buy', 'rent'], 'type': 'string'}, {'type': 'null'}]}, 'propertyTypes': {'type': 'array', 'items': {'type': 'string'}}, 'excludedPropertyTypes': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'What the engine understood from the request. notChecked lists wishes no returned home is confirmed to have.', 'additionalProperties': False}, 'searchExhaustive': {'type': 'boolean'}, 'matchingCountKind': {'enum': ['exact', 'lower_bound', 'unavailable'], 'type': 'string'}, 'excludedUnprovenCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Upstream rows omitted because public facts could not prove every requested hard filter.'}, 'marketMatchingUpperBound': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}}, 'additionalProperties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'brief': {'type': 'object', 'description': 'The `session.brief` object from the previous search_vibe response, passed back unchanged to continue that search. Without `followUp` it replays the same search without re-reading the request.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'limit': {'type': 'number', 'maximum': 50, 'minimum': 1, 'description': 'Number of results to return (max 50, default 20)'}, 'query': {'type': 'string', 'minLength': 1, 'description': 'Natural-language description of what the user wants, in their own words â\x80\x94 e.g. "quiet 2-bed near Kirchberg with a balcony under â\x82¬2000" or "bright family house with a garden, short commute to Belval, energy class A". Lifestyle, vibe, proximity, and soft preferences all work here.'}, 'intent': {'enum': ['rent', 'buy'], 'type': 'string', 'description': 'Whether to search rentals or properties for sale (default: "rent")'}, 'locale': {'enum': ['en', 'fr', 'de', 'lu', 'pt', 'lb'], 'type': 'string', 'description': "Response locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')"}, 'followUp': {'type': 'string', 'maxLength': 800, 'minLength': 1, 'description': 'A change to the previous search or a question about its results, in the userâ\x80\x99s own words â\x80\x94 e.g. "cheaper", "like #2 but with a garden", "which one has parking?". Send it with the `brief` from the previous response (`session.brief`) and the same `query`. A question leaves the search unchanged and comes back as `followUp.reply`.'}, 'includePhotos': {'type': 'boolean', 'description': 'Attach thumbnail photos of the top results as image content blocks (default: true). Set false for a lean text-only response.'}, 'shownListingIds': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128, 'minLength': 1}, 'maxItems': 10, 'description': 'Ids of the listings you showed the user, in the order shown, so "#2" or "the second one" in `followUp` points at the right home.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['listings', 'total'], 'properties': {'note': {'type': 'string'}, 'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Exact number of listing objects returned in this response; not the number of matches in the market.'}, 'trust': {'type': 'object', 'required': ['sources', 'confidence', 'freshness'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'fallback': {'type': 'boolean'}, 'freshness': {'enum': ['fresh', 'recent', 'stale', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['low', 'medium', 'high', 'unknown'], 'type': 'string'}, 'generatedAt': {'type': 'string'}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'source': {'type': 'string'}, 'hasMore': {'type': 'boolean'}, 'ranking': {'type': 'object', 'required': ['status', 'scoreKind', 'probability'], 'properties': {'status': {'enum': ['available', 'degraded'], 'type': 'string'}, 'scoreKind': {'type': 'string', 'const': 'request_fit'}, 'probability': {'type': 'boolean', 'const': False}, 'planFingerprint': {'type': 'string'}}, 'additionalProperties': False}, 'session': {'type': 'object', 'required': ['brief'], 'properties': {'brief': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'additionalProperties': False}, 'followUp': {'type': 'object', 'required': ['outcome'], 'properties': {'reply': {'type': 'string'}, 'outcome': {'enum': ['applied', 'answered'], 'type': 'string'}}, 'additionalProperties': False}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['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'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string', 'format': 'uri'}, 'beds': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'rent': {'anyOf': [{'type': 'object', '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'], 'properties': {'deposit': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'agencyFee': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'baseMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'monthlyTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'agencyFeeBasis': {'anyOf': [{'enum': ['tenant_share', 'total_commission', 'unknown'], 'type': 'string'}, {'type': 'null'}]}, 'chargesMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'depositMaximum': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'chargesIncluded': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'reportedDeposit': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'exactUpfrontCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'knownUpfrontCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'unknownComponents': {'type': 'array', 'items': {'type': 'string'}}, 'firstChargeAdvance': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'monthlyTotalStatus': {'anyOf': [{'enum': ['known', 'unknown_charges', 'conflicting_charges', 'invalid_price', 'unknown_mandatory_recurring_fees'], 'type': 'string'}, {'type': 'null'}]}, 'upfrontCostIsExact': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'mandatoryMoveInFees': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'depositExceedsMaximum': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'estimatedMonthlyTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'knownMonthlyLowerBound': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'mandatoryRecurringFees': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': {}}}, 'mandatoryMoveInFeeTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'upfrontCostIsLowerBound': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'estimatedUtilitiesMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'heatingMayBeDoubleCounted': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'indicativeInsuranceMonthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'mandatoryRecurringFeeTotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'estimatedMonthlyTotalIsLowerBound': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'baths': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'match': {'type': 'object', 'required': ['allRequiredConstraintsSatisfied', 'resultKind', 'requiredConstraints', 'reasons'], 'properties': {'reasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'resultKind': {'anyOf': [{'enum': ['strict_match', 'partial_match', 'relaxed_alternative'], 'type': 'string'}, {'type': 'null'}]}, 'requiredConstraints': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status', 'target', 'actual'], 'properties': {'id': {'type': 'string'}, 'actual': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}]}, 'status': {'enum': ['matched', 'not_matched', 'not_verified', 'not_applied'], 'type': 'string'}, 'target': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'allRequiredConstraintsSatisfied': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'score': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'title': {'type': 'string'}, 'source': {'anyOf': [{'type': 'object', 'required': ['type', 'agencyName', 'listingUrl', 'agencyListingId', 'lastSeenAt', 'status', 'statusBasis', 'agencyConfirmedAt'], 'properties': {'type': {'type': 'string', 'const': 'original_agency_listing'}, 'status': {'enum': ['active', 'under_offer', 'unknown'], 'type': 'string'}, 'agencyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'lastSeenAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'listingUrl': {'type': 'string', 'format': 'uri'}, 'statusBasis': {'enum': ['source_catalog_seen', 'listing_record_active'], 'type': 'string'}, 'agencyListingId': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'agencyConfirmedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'status': {'type': 'string', 'const': 'active'}, 'areaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'charges': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'country': {'anyOf': [{'enum': ['LU', 'FR', 'BE', 'DE'], 'type': 'string'}, {'type': 'null'}]}, 'history': {'type': 'object', 'required': ['firstObservedAt', 'firstObservedBasis', 'daysListed', 'priceDropTotalEur', 'lastChangedAt'], 'properties': {'daysListed': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'lastChangedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'firstObservedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}, 'priceDropTotalEur': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'firstObservedBasis': {'type': 'string', 'const': 'source_listing_date_or_chathome_ingest'}}, 'additionalProperties': False}, 'currency': {'type': 'string', 'const': 'EUR'}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'features': {'type': 'array', 'items': {'type': 'string'}}, 'imageUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'latitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'location': {'type': 'object', 'required': ['city', 'district', 'address', 'postalCode', 'precision', 'confidence'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'address': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'district': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'precision': {'enum': ['exact_address', 'street', 'district', 'commune_only', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['verified', 'unverified', 'contradicted', 'unknown'], 'type': 'string'}, 'postalCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'property': {'type': 'object', 'required': ['rooms', 'floor', 'totalFloors', 'constructionYear', 'completionYear', 'landAreaSqm', 'privateRoomAreaSqm', 'condition', 'heatingType', 'heatingEnergy', 'airConditioning', 'hasFloorplan', 'rentByOwner', 'colocation'], 'properties': {'floor': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'rooms': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'condition': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'colocation': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'heatingType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'landAreaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'rentByOwner': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'totalFloors': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'hasFloorplan': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'heatingEnergy': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'completionYear': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'airConditioning': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'constructionYear': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'privateRoomAreaSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'amenities': {'type': 'object', 'required': ['furnished', 'elevator', 'parking', 'balcony', 'garden', 'petsAllowed', 'stepFreeAccess', 'wheelchairAccessible'], 'properties': {'garden': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'balcony': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'parking': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'elevator': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'furnished': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'petsAllowed': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'stepFreeAccess': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}, 'wheelchairAccessible': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'null'}]}}, 'additionalProperties': False}, 'longitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'photoUrls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 5}, 'transport': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'agencyName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'duplicates': {'type': 'object', 'required': ['confirmedOtherSources', 'confirmedSourceCount'], 'properties': {'confirmedSourceCount': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'confirmedOtherSources': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'energyClass': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'listingType': {'enum': ['rent', 'sale'], 'type': 'string'}, 'pricePerSqm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'availability': {'type': 'object', 'required': ['offerStatus', 'availableFrom', 'moveInState'], 'properties': {'moveInState': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'offerStatus': {'enum': ['available', 'under_offer', 'unknown'], 'type': 'string'}, 'availableFrom': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'matchReasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'propertyType': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'valueContext': {'type': 'object', 'required': ['priceIntegrity', 'fairPrice', 'marketContext'], 'properties': {'fairPrice': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'marketContext': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'priceIntegrity': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}, 'schemaVersion': {'type': 'string', 'const': 'agent-listing.v2'}, 'propertyChecks': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'fieldProvenance': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'object', 'required': ['status', 'publisher', 'method', 'sourceUrl', 'observedAt'], 'properties': {'method': {'enum': ['source_structured', 'source_text', 'official_dataset', 'calculation', 'manual_review', 'model_extraction', 'model_only', 'unknown'], 'type': 'string'}, 'status': {'enum': ['confirmed', 'estimated', 'thin_sample', 'stale', 'context_only', 'conflicted', 'not_collected', 'source_unavailable', 'suppressed'], 'type': 'string'}, 'publisher': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'sourceUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'observedAt': {'anyOf': [{'type': 'string', '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': 'null'}]}}, 'additionalProperties': False}}, 'officialScreening': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': {}}, {'type': 'null'}]}, 'hasSourceCheckedFacts': {'type': 'boolean'}}, 'additionalProperties': {}}}, 'countKind': {'type': 'string', 'const': 'returned'}, 'truncated': {'type': 'boolean'}, 'nextCursor': {'type': 'null'}, 'matchingCount': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'returnedCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'understanding': {'type': 'object', 'required': ['understood', 'transaction', 'propertyTypes', 'excludedPropertyTypes', 'offer', 'places', 'commutes', 'checked', 'notChecked'], 'properties': {'offer': {'enum': ['whole', 'room', 'either'], 'type': 'string'}, 'places': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'role', 'kind', 'country', 'radiusKm', 'force'], 'properties': {'kind': {'type': 'string'}, 'name': {'type': 'string'}, 'role': {'enum': ['live', 'work', 'near', 'avoid'], 'type': 'string'}, 'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'country': {'anyOf': [{'enum': ['LU', 'FR', 'BE', 'DE'], 'type': 'string'}, {'type': 'null'}]}, 'radiusKm': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'checked': {'type': 'array', 'items': {'type': 'object', 'required': ['meaning', 'needId', 'operator', 'value', 'unit', 'force'], 'properties': {'unit': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'value': {'anyOf': [{'anyOf': [{'type': 'number'}, {'type': 'string'}]}, {'type': 'null'}]}, 'needId': {'type': 'string'}, 'meaning': {'type': 'string'}, 'operator': {'type': 'string'}}, 'additionalProperties': False}}, 'commutes': {'type': 'array', 'items': {'type': 'object', 'required': ['destination', 'mode', 'maxMinutes', 'force'], 'properties': {'mode': {'anyOf': [{'enum': ['transit', 'drive', 'walk', 'bike'], 'type': 'string'}, {'type': 'null'}]}, 'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'maxMinutes': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'destination': {'type': 'string'}}, 'additionalProperties': False}}, 'notChecked': {'type': 'array', 'items': {'type': 'object', 'required': ['meaning', 'force', 'reason'], 'properties': {'force': {'enum': ['must', 'should', 'nice'], 'type': 'string'}, 'reason': {'enum': ['no_listing_fact', 'fact_not_collected_yet'], 'type': 'string'}, 'meaning': {'type': 'string'}}, 'additionalProperties': False}}, 'understood': {'type': 'string'}, 'transaction': {'anyOf': [{'enum': ['buy', 'rent'], 'type': 'string'}, {'type': 'null'}]}, 'propertyTypes': {'type': 'array', 'items': {'type': 'string'}}, 'excludedPropertyTypes': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'What the engine understood from the request. notChecked lists wishes no returned home is confirmed to have.', 'additionalProperties': False}, 'searchExhaustive': {'type': 'boolean'}, 'matchingCountKind': {'enum': ['exact', 'lower_bound', 'unavailable'], 'type': 'string'}, 'excludedUnprovenCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Upstream rows omitted because public facts could not prove every requested hard filter.'}, 'marketMatchingUpperBound': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}}, 'additionalProperties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['listingId', 'message'], 'properties': {'message': {'type': 'string', 'maxLength': 5000, 'minLength': 10, 'description': 'Inquiry message to send to the listing owner (10â\x80\x935000 characters)'}, 'agentName': {'type': 'string', 'maxLength': 100, 'description': 'Optional display name for the inquiring agent'}, 'listingId': {'type': 'string', 'minLength': 1, 'description': 'The ID of the listing to inquire about'}, 'contactEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Optional contact email for the inquiring agent'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['kind', 'trust'], 'properties': {'kind': {'enum': ['conversation_created', 'external_agency'], 'type': 'string'}, 'trust': {'type': 'object', 'required': ['sources', 'confidence', 'freshness'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string'}}, 'fallback': {'type': 'boolean'}, 'freshness': {'enum': ['fresh', 'recent', 'stale', 'unknown'], 'type': 'string'}, 'confidence': {'enum': ['low', 'medium', 'high', 'unknown'], 'type': 'string'}, 'generatedAt': {'type': 'string'}, 'missingFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': {}}, 'listingId': {'type': 'string'}, 'conversationId': {'type': 'string'}}, 'additionalProperties': {}}
近期工具变更
类似的 MCP 服务器
Microburbs Australian Property Data
Provides Australian property, suburb, valuation, sales, rental, zoning, school, risk, geospatial, and census statistics.
Uk Planning Data
Provides access to UK planning designations and related geospatial planning data from the national planning data platform.
Sibfly
Provides satellite-derived ground-motion measurements, including subsidence and uplift, for US addresses.
Fema Nfhl
Queries FEMA's National Flood Hazard Layer for flood zones, base flood elevations, floodways, map panels and related property or …
Regrid
Queries Regrid parcel data by address or coordinates, returning parcel ownership, zoning, land use, acreage, boundaries, and loca…
Smarty
Verifies US addresses and enriches them with US property information.
GUTHMANN® Berlin Real Estate
Searches Berlin property listings and provides granular Berlin real-estate, neighborhood, demographic, and market statistics.
Walkscore
Provides Walk Score data for locations, supporting walkability-related property and location analysis.