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": "Lori Listagent",
        "telephone": "1-252-574-0160",
        "email": "lorilistagent@example.com"
      },
      "listingContractDate": "2019-08-24T14:15:22Z",
      "listingId": "GOTHAM-MLS+12345",
      "listingOffice": {
        "name": "Gotham City Real Estate",
        "type": "RealEstateOffice"
      },
      "listingOriginatingSystem": {
        "identifier": {
          "bhhsmlsid": "xxxx",
          "resoouid": "not-yet-available"
        },
        "name": "MLSListings",
        "type": "MultipleListingService"
      },
      "listingPrice": {
        "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": "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
    }
  }
}

Payload

NameTypeDescription
(root)object-
topicstringconst ("realestate/listing#update")
dataobject-
data.typestringconst ("UpdateAction")
data.objectobjecta real estate property listed for sale
data.object.typestringallowed ("PropertyListing")
data.object.addressCountrystringallowed ("CA", "DE", "GR", "IN", "IT", "MX", "PE", "PT", "ES", "AE", "GB", "US") two-letter ISO 3166-1 alpha-2 country code
data.object.addressLocalitystringCity, Township. <= 50 characters
data.object.addressRegionstringabbreviated state or province
data.object.brokerAttributionstringBroker Attribution can be an email or phone or any text.
data.object.buyerAgentobjectthe buyer's RealEstateAgent
data.object.buyerOfficeobjectthe buyer's RealEstateOffice
data.object.closeDatestringWith 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.imagetuple<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)allOfan image, video or document availble for download
data.object.image.0.0.0 (allOf item)object-
data.object.image.0.0.0.typestringThe item type (Linked-Data @type) pattern (^[A-Z][a-zA-Z0-9]+$)
data.object.image.0.0.0.@idstringthe 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.typestringallowed ("MediaObject", "ImageObject", "DigitalDocument")
data.object.image.0.0.1.idstringthe URL to access the item. format (uri)
data.object.image.0.0.1.namestringthe file name of the object.
data.object.image.0.0.1.encodingFormatstringMIME type
data.object.image.0.0.1.aboutstringURI to the subject of the image or logo format (uri)
data.object.image.0.0.1.urlstringURL of the image content format (uri)
data.object.image.0.1 (allOf item)--
data.object.image.0.1.typestringallowed ("ImageObject")
data.object.image.0.1.idany-
data.object.image.0.1.nameany-
data.object.image.0.1.encodingFormatany-
data.object.internetAddressDisplayYNstringallowed ("Y", "N")
data.object.latitudenumberThe latitude of a location.
data.object.listingAgentobjectthe agent/broker representing the seller in a real estate transaction
data.object.listingContractDatestringThe effective date of the agreement between the seller and the seller's broker. format (date-time)
data.object.listingIdstringthe local identifier for the listing
data.object.listingOfficeobjectthe listing office
data.object.listingOriginatingSystemobjectThe place where the item is originally input by the user.
data.object.listingPriceobject-
data.object.listingStatusstringallowed ("Active", "Pending", "Sold", "Canceled", "Prelisted", "OffMarket", "Private")
data.object.livingAreaobjectproperty indoor space
data.object.longitudenumberThe longitude of a location.
data.object.lotSizeobjectoutdoor space minValue, maxValue
data.object.modificationTimestampstringThe date when the listing was last modified. format (date-time)
data.object.numberOfBathroomsstringthe number of bathrooms
data.object.numberOfBedroomsstringthe number of bedrooms
data.object.numberOfRoomsstringthe total number of rooms in the building
data.object.originatingSystemKeystringthe listing identifier from the original MLS, aka MLSID.
data.object.originatingSystemNamestringthe name of the MLS where the listing was originally input
data.object.postalCodestringZip/Post Code <= 12 characters
data.object.propertySubTypestringallowed ("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.propertyTypestringallowed ("RESI", "RLSE", "RINC", "LAND", "MOBI", "FARM", "COMS", "COML", "BUSO") RESO property type (see range for allowed values) 4 characters
data.object.purchaseContractDatestringWith 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.storiesnumberhe number of floors in the property
data.object.streetAddressstringthe street address <= 75 characters
data.object.universalPropertyIdstringThe 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.urlstringURL of the item. format (uri)
data.object.yearBuiltnumberthe year the structure was created

Headers

NameTypeDescription
(root)object-
timestringdate & time the event was produced format (date-time)
agentstringif 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)
instrumentstringthe app or service that produced the event on behalf of the agent/user format (uri)
sourcestringa copy of the event was sent to the source(s). format (uri)
originalRecipientstringthe 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)
idstringthe 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)
@idstringformat (uri)

Tools