Skip to main content

Real Estate — Multi Office

Use this format when several offices publish through one feed. It has three sections: <offices>, <agents>, and <listings>. Each <agent> belongs to an office, and each <listing> points at its office and agent by reference.

Read first

Getting Started covers the shared rules — fetch schedule, the JamesEdition Feed Crawler 1.0 User-Agent, image rules, and supported video / virtual-tour sources.

Example (two offices)

<?xml version="1.0" encoding="UTF-8"?>
<jamesedition_feed version="4.4">
<offices>
<office reference="of-charlotte">
<name>HM Properties — Charlotte</name>
<country_code>US</country_code>
<country_subdivision>North Carolina</country_subdivision>
<city>Charlotte</city>
<address>28210 Fairview Road</address>
<zip>28210</zip>
<phone1>+1234567890</phone1>
<phone2>+1234567891</phone2>
<fax>+1234567892</fax>
<email>charlotte@example.com</email>
<description>Charlotte headquarters.</description>
<biography>Boutique brokerage serving the Charlotte luxury market.</biography>
<external_url>https://example.com/charlotte</external_url>
<office_logo_url>https://example.com/logo.png</office_logo_url>
<language_codes>eng,spa</language_codes>
<linkedin>https://linkedin.com/company/hm-properties</linkedin>
<instagram>https://instagram.com/hmproperties</instagram>
<facebook>https://facebook.com/hmproperties</facebook>
<tiktok>https://tiktok.com/@hmproperties</tiktok>
</office>
<office reference="of-ny">
<name>HM Properties — New York</name>
<country_code>US</country_code>
<country_subdivision>New York</country_subdivision>
<city>New York</city>
<address>5th Avenue 100</address>
<zip>10011</zip>
<phone1>+1987654321</phone1>
<phone2>+1987654322</phone2>
<fax>+1987654323</fax>
<email>ny@example.com</email>
<description>New York branch.</description>
<biography>Manhattan luxury specialists since 1998.</biography>
<external_url>https://example.com/ny</external_url>
<office_logo_url>https://example.com/logo.png</office_logo_url>
<language_codes>eng,fra</language_codes>
<linkedin>https://linkedin.com/company/hm-properties</linkedin>
<instagram>https://instagram.com/hmproperties</instagram>
<facebook>https://facebook.com/hmproperties</facebook>
<tiktok>https://tiktok.com/@hmproperties</tiktok>
</office>
</offices>
<agents>
<agent reference="ag-steve" office_reference="of-charlotte">
<first_name>Steve</first_name>
<last_name>Smith</last_name>
<email>steve.smith@example.com</email>
<phone1>+1234567890</phone1>
<phone2>+1234567891</phone2>
<fax>+1234567892</fax>
<agent_license_id>636289</agent_license_id>
<profile_picture_url>https://example.com/steve.jpg</profile_picture_url>
<language_codes>eng,spa</language_codes>
<linkedin>https://linkedin.com/in/stevesmith</linkedin>
<instagram>https://instagram.com/stevesmith</instagram>
<facebook>https://facebook.com/stevesmith</facebook>
<tiktok>https://tiktok.com/@stevesmith</tiktok>
</agent>
<agent reference="ag-jane" office_reference="of-ny">
<first_name>Jane</first_name>
<last_name>Doe</last_name>
<email>jane.doe@example.com</email>
<phone1>+1987654321</phone1>
<phone2>+1987654322</phone2>
<fax>+1987654323</fax>
<agent_license_id>998877</agent_license_id>
<profile_picture_url>https://example.com/jane.jpg</profile_picture_url>
<language_codes>eng,fra</language_codes>
<linkedin>https://linkedin.com/in/janedoe</linkedin>
<instagram>https://instagram.com/janedoe</instagram>
<facebook>https://facebook.com/janedoe</facebook>
<tiktok>https://tiktok.com/@janedoe</tiktok>
</agent>
</agents>
<listings>
<listing reference="ls123" category="real estate">
<type>sale</type>
<price currency="USD" vat_included="yes">1607143</price>
<!-- rentals: send <rental_price_per_day currency="EUR">350</rental_price_per_day> instead of <price> -->
<price_on_request>no</price_on_request>
<vat>21</vat>
<property_type>Villa</property_type>
<title>Luxury Villa in Exclusive Area</title>
<description>A luxurious villa with formal rooms, a gourmet kitchen and a pool.</description>
<year>2014</year>
<preowned>yes</preowned>
<mls_number>mls124</mls_number>
<licence_id>VT-1234</licence_id>
<location>
<country>US</country>
<region>New York</region>
<city>Black River</city>
<address>123 Luxury St</address>
<zip>12345</zip>
<latitude>43.9732</latitude>
<longitude>-75.9108</longitude>
</location>
<hide_address>no</hide_address>
<bedrooms>5</bedrooms>
<bathrooms>4</bathrooms>
<floors>2</floors>
<living_area unit="sqm">217</living_area>
<land_area unit="sqm">361</land_area>
<emission_rating>A</emission_rating>
<consumption_rating>B</consumption_rating>
<amenities>
<pool>yes</pool>
<sea_view>yes</sea_view>
</amenities>
<media>
<image>
<image_url>https://example.com/p1.jpg</image_url>
</image>
<image>
<image_url>https://example.com/p2.jpg</image_url>
</image>
<video>
<video_url>https://youtu.be/example</video_url>
</video>
<virtual_tour_link>https://my.matterport.com/show/?m=exampleID</virtual_tour_link>
</media>
<external_url>https://agency.com/listing/123</external_url>
<agent_reference>ag-jane</agent_reference>
<office_reference>of-ny</office_reference>
</listing>
</listings>
</jamesedition_feed>

Required fields

  • the reference and category attributes on <listing>
  • property_type
  • location/country and location/city
  • a price — price for sale / rental_price_per_day for rent (each with currency) or price_on_request=yes
  • at least 2 images
  • office_reference matching an entry in <offices> (and agent_reference matching <agents> to link the agent)

Listing fields

FieldRequiredTypeExampleDescription
reference (attribute)Yesstringls123Unique listing ID, on the <listing> element.
category (attribute)Yesreal estatereal estateAsset category, on the <listing> element.
typeYessale | rentsaleSale or rent.
price (currency attribute)Yes¹int1607143 currency="USD"Sale price. currency = ISO 4217. For rentals use rental_price_per_day.
rental_price_per_day (currency attribute)Yes¹int350 currency="EUR"Per-day rental price, for type=rent. currency = ISO 4217.
price_on_requestNoyes/nonoWhen yes, price hidden on the public listing.
vatNonumber21VAT amount or rate on the price. The optional vat_included (yes/no) attribute on <price> states whether the quoted price already includes VAT.
vat_typeNoenumvat_includedAlternative to the vat_included attribute on <price>: vat_included / vat_excluded.
property_typeYesenumVillaOne of the supported property types — see Field reference.
titleNostringLuxury Villa…
descriptionNotextA luxurious villa…
yearNoint2014Year built.
preownedNoyes/noyesno for new-build.
completion_statusNoenumsecondaryAlternative to preowned: off_plan = new build, secondary / completed = pre-owned.
mls_numberNostringmls124
licence_idNostringVT-1234Rental / tourism licence ID, where regulators require one (e.g. Spain, Portugal).
trakheesi_permit_numberNostring7129834561Dubai (RERA) listing permit number, where required.
location/countryYesISO 3166-1 alpha-2US
location/regionNotext (name)New YorkState / region name (matched by name, not a code).
location/cityYesstringBlack River
location/addressNostring123 Luxury StHidden if hide_address=yes.
location/zipNostring12345
location/latitude · longitudeNofloat43.97Optional.
hide_addressNoyes/nonoHide the public address for this listing.
bedroomsNoint5Number of bedrooms.
bathroomsNoint4Number of bathrooms.
floorsNoint2Total floors in the property (how many storeys the building has) — not the floor the unit is on. A house is usually 1–2.
living_area (unit attribute)Noint217 unit="sqm"sqm/sqft.
land_area (unit attribute)Noint361 unit="sqm"sqm/sqft/ha/ac.
emission_rating · consumption_ratingNoenumAA–G, A+, B+, B-, A1–A4, X, NC, NI — see Field reference.
amenitiesNowrapper<pool>yes</pool>Full list: Amenities.
media/image/image_urlYes (≥2)urlhttps://…/p1.jpgJPEG/PNG/WEBP, ≤100, ≤20 MB each.
media/video/video_urlNourlhttps://youtu.be/…Supported video sources.
media/virtual_tour_linkNourlhttps://my.matterport.com/…Supported virtual-tour sources.
external_urlNourlhttps://agency.com/listing/123The listing's page on your own site — shown as "View on agency site".
agent_referenceYesstringag123Must match an <agent> reference.
office_referenceYesstringof123Must match an <office> reference.

¹ A price is required unless price_on_request=yesprice for type=sale, rental_price_per_day for type=rent.

Office fields

FieldRequiredTypeExample
reference (attribute)Yesstringof123
nameYesstringHM Properties — Charlotte
country_codeYesISO 3166-1 alpha-2US
cityYesstringCharlotte
country_subdivision · address · zipNostringNorth Carolina
phone1Yesstring+1234567890
phone2 · fax · emailNostring
description · external_url · office_logo_urlNo
biographyNotext
language_codesNostringeng,spa
linkedin / instagram / facebook / tiktokNourl

Agent fields

FieldRequiredTypeExample
reference (attribute)Yesstringag123
office_reference (attribute)Yesstringof123
first_name · last_nameYesstringSteve / Smith
emailYesstringsteve.smith@example.com
phone1Nostring+1234567890
phone2 · faxNostring
agent_license_idNostring636289
profile_picture_urlNourl
language_codesNostringeng,spa
linkedin / instagram / facebook / tiktokNourl