listing#update
Message
a PropertyListing is created or updated
Payload Example(s) (generated)
{
"topic": "realestate/listing#update",
"data": {
"type": "UpdateAction",
"object": {
"type": "PropertyListing",
"addressCountry": "CA",
"addressLocality": "Gotham City",
"addressRegion": "NJ",
"brokerAttribution": "homes@opendoor.com",
"buyerAgent": {
"email": "butch.byers@example.com",
"identifier": {
"agentKey": "xxxx"
},
"name": "Butch Byers",
"type": "RealEstateAgent"
},
"buyerOffice": {
"email": "gcr@example.com",
"identifier": {
"officeKey": "grc1"
},
"name": "Gotham City Real Estate",
"type": "RealEstateOffice"
},
"closeDate": "2019-08-24T14:15:22Z",
"image": [
{
"type": "ImageObject",
"@id": "http://example.com",
"id": "http://user.example.com/public/logo/image.jpg",
"name": "image.jpg",
"encodingFormat": "image/jpeg",
"about": "http://user.example.com/profile/card#me",
"url": "http://user.example.com/public/profile/image.jpg"
}
],
"internetAddressDisplayYN": "Y",
"latitude": 40.75,
"listingAgent": {
"type": "RealEstateAgent",
"name": "Carol Sawdey",
"email": "carolsawdey@gmail.com",
"identifier": {
"mlsAgentId": "CCB-253454"
},
"additionalProperty": {
"agentId": "123456"
}
},
"listingOffice": {
"type": "RealEstateOffice",
"name": "BHHS Drysdale Properties",
"email": "accounting@bhhsdrysdale.com",
"identifier": {
"mlsOfficeId": "CCB-54t254"
},
"additionalProperty": {}
},
"listingContractDate": "2019-08-24T14:15:22Z",
"listingId": "GOTHAM-MLS+12345",
"coListingAgent": {
"type": "RealEstateAgent",
"name": "",
"identifier": {},
"additionalProperty": {}
},
"coListingOffice": {
"type": "RealEstateOffice",
"name": "",
"identifier": {},
"additionalProperty": {}
},
"listingOriginatingSystem": {
"identifier": {
"bhhsmlsid": "xxxx",
"resoouid": "not-yet-available"
},
"name": "MLSListings",
"type": "MultipleListingService"
},
"listingPrice": {
"type": "PriceSpecification",
"price": 75000,
"priceCurrency": "USD"
},
"soldPrice": {
"type": "PriceSpecification",
"price": 75000,
"priceCurrency": "USD"
},
"listingStatus": "Active",
"livingArea": {
"type": "QuantitativeValue",
"unitCode": "SqFt",
"unitText": "Square Feet",
"value": 1500
},
"longitude": 73.98,
"lotSize": {
"type": "QuantitativeValue",
"unitCode": "AC",
"unitText": "Acres",
"value": 0.5
},
"modificationTimestamp": "2022-11-17T00:00:00",
"numberOfBathrooms": "8",
"numberOfFullBathrooms":"2",
"numberOf1/2Bathrooms":"2",
"numberOf1/4Bathrooms":"2",
"numberOf3/4Bathrooms":"2",
"numberOfBedrooms": "3",
"numberOfRooms": "7",
"originatingSystemKey": 12345,
"originatingSystemName": "GOTHAM-MLS",
"postalCode": "10010",
"propertySubType": "ApartmentPropertyType",
"propertyType": "RESI",
"purchaseContractDate": "2019-08-24T14:15:22Z",
"stories": 2,
"streetAddress": "1007 Mountain Gate Rd",
"universalPropertyId": "US-04015-N-R-11022331-N",
"url": "https://www.example.com/homedetails/1007-Mountain-Gate-Rd-Gotham-City-Gotham/10007",
"yearBuilt": 1988,
"events": [
{
"type": "OpenHouseEvent",
"name": "Property Showing 1007 Mountain Gate Rd",
"description": "an example meeting request for 4:00PM to 4:30PM.",
"about": {
"type": "PropertyListing",
"url": "https://{company-website-url}/{path-to-listing}"
},
"startDate": "2019-08-01T16:00Z",
"endDate": "2019-08-01T16:30Z",
"organizer": {
"type": "RealEstateAgent",
"name": "Bruce Wayne",
"id": "https://batman.example.com/profile/card#me"
}
}
]
}
}
}
Payload
Name | Type | Description |
---|---|---|
(root) | object | - |
topic | string | const ("realestate/listing#update" ) |
data | object | - |
data.type | string | const ("UpdateAction" ) |
data.object | object | a real estate property listed for sale |
data.object.type | string | allowed ("PropertyListing" ) |
data.object.addressCountry | string | allowed ("CA" , "DE" , "GR" , "IN" , "IT" , "MX" , "PE" , "PT" , "ES" , "AE" , "GB" , "US" ) two-letter ISO 3166-1 alpha-2 country code |
data.object.addressLocality | string | City, Township. <= 50 characters |
data.object.addressRegion | string | abbreviated state or province |
data.object.brokerAttribution | string | Broker Attribution can be an email or phone or any text. |
data.object.buyerAgent | object | the buyer's RealEstateAgent |
data.object.buyerOffice | object | the buyer's RealEstateOffice |
data.object.closeDate | string | With for-sale listings, the date the purchase agreement was fulfilled. With lease listings, the date the requirements were fulfilled, such as contract and/or deposit. format (date-time ) |
data.object.image | tuple<object allOf, ...optional<any>> | an ImageObject or URI reference to an image on the web. |
data.object.image.0 (index) | object allOf | - |
data.object.image.0.0 (allOf item) | allOf | an image, video or document availble for download |
data.object.image.0.0.0 (allOf item) | object | - |
data.object.image.0.0.0.type | string | The item type (Linked-Data @type) pattern (^[A-Z][a-zA-Z0-9]+$ ) |
data.object.image.0.0.0.@id | string | the liked data uri for the Thing format (uri ) |
data.object.image.0.0.0 (property names) | - | pattern (^[a-z@$][a-zA-Z0-9-_]+$ ) |
data.object.image.0.0.1 (allOf item) | - | - |
data.object.image.0.0.1.type | string | allowed ("MediaObject" , "ImageObject" , "DigitalDocument" ) |
data.object.image.0.0.1.id | string | the URL to access the item. format (uri ) |
data.object.image.0.0.1.name | string | the file name of the object. |
data.object.image.0.0.1.encodingFormat | string | MIME type |
data.object.image.0.0.1.about | string | URI to the subject of the image or logo format (uri ) |
data.object.image.0.0.1.url | string | URL of the image content format (uri ) |
data.object.image.0.1 (allOf item) | - | - |
data.object.image.0.1.type | string | allowed ("ImageObject" ) |
data.object.image.0.1.id | any | - |
data.object.image.0.1.name | any | - |
data.object.image.0.1.encodingFormat | any | - |
data.object.internetAddressDisplayYN | string | allowed ("Y" , "N" ) |
data.object.latitude | number | The latitude of a location. |
data.object.listingAgent | object | the agent/broker representing the seller in a real estate transaction |
data.object.listingContractDate | string | The effective date of the agreement between the seller and the seller's broker. format (date-time ) |
data.object.listingId | string | the local identifier for the listing |
data.object.listingOffice | object | the listing office |
data.object.colistingAgent | object | the colistingAgent |
data.object.colistingOffice | object | the colistingOffice |
data.object.listingOriginatingSystem | object | The place where the item is originally input by the user. |
data.object.listingPrice | object | - |
data.object.soldPrice | object | - |
data.object.listingStatus | string | allowed ("Active" , "Pending" , "Sold" , "Canceled" , "Prelisted" , "OffMarket" , "Private" ) |
data.object.livingArea | object | property indoor space |
data.object.longitude | number | The longitude of a location. |
data.object.lotSize | object | outdoor space minValue, maxValue |
data.object.modificationTimestamp | string | The date when the listing was last modified. format (date-time ) |
data.object.numberOfBathrooms | string | total number of bathrooms |
data.object.numberOfFullBathrooms | string | the number of fullBathrooms |
data.object.numberOf1/2Bathrooms | string | the number of 1/2 bathrooms |
data.object.numberOf1/4Bathrooms | string | the number of 1/4 bathrooms |
data.object.numberOf3/4Bathrooms | string | the number of 3/4 bathrooms |
data.object.numberOfBedrooms | string | the number of bedrooms |
data.object.numberOfRooms | string | the total number of rooms in the building |
data.object.originatingSystemKey | string | the listing identifier from the original MLS, aka MLSID. |
data.object.originatingSystemName | string | the name of the MLS where the listing was originally input |
data.object.postalCode | string | Zip/Post Code <= 12 characters |
data.object.propertySubType | string | allowed ("ApartmentPropertyType" , "BoatSlipPropertyType" , "CabinPropertyType" , "CondominiumPropertyType" , "DeededParkingPropertyType" , "DuplexPropertyType" , "FarmPropertyType" , "ManufacturedHomePropertyType" , "ManufacturedOnLandPropertyType" , "MobileHomePropertyType" , "OwnYourOwnPropertyType" , "QuadruplexPropertyType" , "RanchPropertyType" , "SingleFamilyPropertyType" , "StockCooperativePropertyType" , "TimesharePropertyType" , "TownhousePropertyType" , "TriplexPropertyType" , "AgriculturePropertyType" , "BusinessPropertyType" , "HotelMotelPropertyType" , "IndustrialPropertyType" , "MixedUsePropertyType" , "MultiFamilyPropertyType" , "OfficePropertyType" , "RetailPropertyType" , "UnimprovedLandPropertyType" , "WarehousePropertyType" ) RESO property sub-type (see range for allowed values) |
data.object.propertyType | string | allowed ("RESI" , "RLSE" , "RINC" , "LAND" , "MOBI" , "FARM" , "COMS" , "COML" , "BUSO" ) RESO property type (see range for allowed values) 4 characters |
data.object.purchaseContractDate | string | With for-sale listings, the date an offer was accepted and the listing was no longer on market. With lease listings this may represent a meeting of the minds to lease, but some contractual requirements are yet to be fulfilled, such as contract signing or receipt of the deposit. format (date-time ) |
data.object.stories | number | he number of floors in the property |
data.object.streetAddress | string | the street address <= 75 characters |
data.object.universalPropertyId | string | The Universal Property Identifier is a unique identifier for all real property in the US and Canada. It is based on country and local identification methods and is limited to real property. For cases such as shares of real property, units, and other more granular cases, please utilize the UniversalPropertySubId. |
data.object.url | string | URL of the item. format (uri ) |
data.object.yearBuilt | number | the year the structure was created |
Headers
Name | Type | Description |
---|---|---|
(root) | object | - |
time | string | date & time the event was produced format (date-time ) |
agent | string | if you are a multi-tenant app, then the agent is the user associated with the event data. any future events related to this message will be sent to the same agent/recipient format (uri ) |
instrument | string | the app or service that produced the event on behalf of the agent/user format (uri ) |
source | string | a copy of the event was sent to the source(s). format (uri ) |
originalRecipient | string | the originalRecipient helps you determine the subscription that delivered the event to you. if the originalRecipient is the same as the agent, then the you are subscribed to the agent. if the originalRecipient is different from the agent, then you are subscribed to the event source format (uri ) |
id | string | the Event ID (aka "Publish ID") is the immutable canonical identifier for the event. it is a URI that is unique to the event and will not change. all subscribers will receive the same id for the same event. format (uri ) |
@id | string | format (uri ) |