Search

Getting Started

Welcome to the European Real Estate XML Import Specification. This document provides all the technical details you need to create a property feed that integrates with our platform.

Create Your Feed

Build your XML feed following the specification outlined in this document. Populate the required fields for every property, and use the element names exactly as listed - an element that is not in this document is not read.

Test Your Feed

Validate your XML structure and character encoding. Use a standard XML validator to check for syntax errors before submission.

Submit for Review

Once your feed validates correctly, submit the feed URL to our team for final review. We'll verify the integration and activate your automated sync.

Overview

The European Real Estate XML feed is an absolute feed, meaning it should contain all your active properties each time it's generated.

⚠️ Important: Absolute Feed Rule Your feed must contain ALL active properties. A property that is missing from the feed is taken offline by the platform, so an incomplete feed makes listings disappear from the site.

How Properties Are Processed

ScenarioAction
New <id> detectedProperty is INSERTED as a new listing
Existing <id> with changed dataProperty is UPDATED with the new information
<id> missing from the feedProperty is TAKEN OFFLINE after three consecutive syncs. It is not deleted: if it returns to the feed, it comes back online with the next sync, with its images and data intact
💡 Tip The <id> is the key. The platform compares the data of every property on every sync and processes the ones that changed, so there is no date field to maintain: keep the <id> stable and send your current values.

Guidelines & Conventions

Technical Requirements

  • All XML tags MUST be lowercase
  • The feed MUST be UTF-8 encoded
  • Line breaks in descriptions must use actual newline characters (\n)
  • Do NOT use CDATA sections and do not send HTML in <desc>
  • URLs must be absolute (include full https:// prefix)
  • Each account requires a unique feed URL
  • Property nodes must be direct children of <root>

Data Format Standards

Field TypeFormatExample
PriceNumeric only, no symbols250000
Area (m²)Numeric, square metres150
GPS CoordinatesDecimal degrees36.5108, -4.8855
CountryName from the Supported Countries list, or ISO 3166-1 alpha-2Spain or ES
YearFour digits2018

Feed Structure

Every feed follows this basic structure: a root element with the format version, followed by one property node per active property.

<?xml version="1.0" encoding="UTF-8"?>
<root>

<european_realestate>
<feed_version>2</feed_version>
</european_realestate>

<property>
<!-- Property 1 fields... -->
</property>

<property>
<!-- Property 2 fields... -->
</property>

<!-- Additional properties... -->

</root>

What The Platform Reads From The Feed

ElementMeaning
<european_realestate>Format identification. Send <feed_version>2</feed_version>
<property>One property. Everything the platform stores comes from inside this node
💡 Agency details Your agency name, logo, contact details and the link between your feed and your account are registered by us per feed. They are not read from the feed, so there is nothing to send and nothing to keep up to date in the file. Send us a message when your agency details change.

Property Nodes Reference

Every element below belongs inside a single <property> node. Element names are exactly as written here.

Core Fields

<id>

Required Type: String/Integer

Unique identifier for the property. This must remain consistent across feed updates: it is the key the platform matches on.

<id>987654</id>

<ref>

Optional Type: String

Your internal property reference code. Shown as "Reference" in the additional details of the listing.

<ref>ABC-123</ref>

Pricing

<price>

Required Type: Integer

Property price as a number without currency symbols or separators.

<price>250000</price>

<currency>

Optional Type: String Default: EUR

Currency code. Supported: EUR, GBP, USD, CHF, PLN, CZK, HUF, RON, SEK, NOK, DKK

<currency>EUR</currency>

<price_freq>

Required Type: Enum

Whether the property is for sale or for rent, and for rentals the period the price applies to.

ValueDescription
saleProperty is for sale
monthProperty is for rent, price per month
weekProperty is for rent, price per week
yearProperty is for rent, price per year
<price_freq>sale</price_freq>

Location

<country>

Required Type: String

Country of the property. Use the name from the Supported Countries list; the ISO 3166-1 alpha-2 code is also accepted.

<country>Spain</country>

<town>

Required Type: String

City or town name where the property is located.

<town>Marbella</town>

<province>

Optional Type: String

Province, region or state.

<province>Málaga</province>

<postal_code>

Optional Type: String

Postal code.

<postal_code>29600</postal_code>

<location_detail>

Optional Type: String

Additional location description (neighbourhood, urbanization, area). Shown as "Area" on the listing.

<location_detail>Costa del Sol</location_detail>

<location>

Optional Type: Container

GPS coordinates in decimal degrees. Both values are needed for the map pin to appear.

<location>
<latitude>36.5108</latitude>
<longitude>-4.8855</longitude>
</location>

Property Details

<type>

Required Type: Enum

Property type. Use a value from the Property Types list. Matching is case-insensitive.

<type>Apartment</type>

<beds>

Optional Type: Integer

Number of bedrooms.

<beds>3</beds>

<baths>

Optional Type: Integer

Number of bathrooms.

<baths>2</baths>

<year_built>

Optional Type: Integer (4 digits)

Year the property was built.

<year_built>2020</year_built>

<surface_area>

Optional Type: Container

Built area and plot size in square metres. A plot only makes sense for land and for properties with land.

<surface_area>
<built>150</built>
<plot>500</plot>
</surface_area>

<energy_rating>

Optional Type: Container

Energy performance ratings, letters A to G. Send X when no certificate is available.

<energy_rating>
<consumption>B</consumption>
<emissions>C</emissions>
</energy_rating>

Content

<desc><en>

Required Type: String

Full property description in English, wrapped in an <en> element. Translations are generated automatically. Use real newlines for paragraph breaks, do not send HTML, and do not use CDATA.

<desc>
<en>Beautiful modern apartment located in the heart of Marbella.</en>
</desc>

<url><en>

Optional Type: URL

Link to the property on your website, wrapped in an <en> element.

<url>
<en>https://example.com/property/123456</en>
</url>

Media

<images>

Optional Max: 20 images

Property images. The first image is the cover. At most 20 images are kept per listing. Recommended size 1920x1280px, minimum 800x600px.

<images>
<image>
<url>https://example.com/images/main.jpg</url>
</image>
<image>
<url>https://example.com/images/bedroom.jpg</url>
</image>
</images>

<virtual_tour_url>

Optional Type: URL

URL to a virtual tour (Matterport, iGuide, and similar).

<virtual_tour_url>https://my.matterport.com/show/?m=XXXXX</virtual_tour_url>

<video_url>

Optional Type: URL

URL to a property video: YouTube, Vimeo, or a direct MP4/WebM file.

<video_url>https://www.youtube.com/watch?v=XXXXX</video_url>

<features>

Optional Type: Container

List of property features. Use the names from the Features List. Matching is case-insensitive. Only send the features that apply.

<features>
<feature>Swimming Pool</feature>
<feature>Sea views</feature>
<feature>Air Conditioning</feature>
</features>

Property Types

Use these values for the <type> field. Matching is case-insensitive.

Apartments

Apartment
Penthouse
Studio
Duplex
Triplex
Maisonette

Villas

Villa
Bungalow
Detached House

Town Houses

Town house
Semi detached house
Terraced house
Village house

Country Houses

Chalet
Chateau
Cortijo
Finca
Farmhouse
Farm
Country house
Cave house

Land & Ruins

Land
Island
Ruin

Commercial Property

Business
Commercial property
Complex
Hotel
Shop

Other

Mobile home
Parking space
💡 Tip Send the property type as it should appear on the listing. If you use a value that is not in this list, the listing is published without a property type.

Features List

Include only the features that apply to your property, one <feature> element each. Use these names; matching is case-insensitive.

Accessible property
Air Conditioning
Barbeque
Basement
Elevator
Fitted wardrobes
Furnished
Garage
Garden
Gym
Internet
Laundry
Lawn
Off-grid
Outdoor Shower
Parking
Phone line
Sauna
Sea views
Storage room
Swimming Pool
Terrace
TV Cable
WiFi
Window Coverings
⚠️ Send these names, not codes The names above are the features on our platform. A value that is not in this list is ignored, so it does not appear on the listing.
Correct: <feature>Swimming Pool</feature>
Ignored: <feature>swimming_pool</feature>

Supported Countries

Use the country name for the <country> field, or the ISO 3166-1 alpha-2 code.

CountryISOCountryISO
AlbaniaALLatviaLV
AustriaATLithuaniaLT
BelgiumBELuxembourgLU
Bosnia & HerzegovinaBAMaltaMT
BulgariaBGMoldovaMD
CroatiaHRMontenegroME
CyprusCYNorwayNO
CzechiaCZPolandPL
DenmarkDKPortugalPT
EstoniaEERomaniaRO
FinlandFISerbiaRS
FranceFRSlovakiaSK
GeorgiaGESloveniaSI
GermanyDESpainES
GreeceGRSwedenSE
HungaryHUSwitzerlandCH
IcelandISThe NetherlandsNL
IrelandIEUnited KingdomGB
ItalyIT

Character Encoding

Your feed MUST be UTF-8 encoded. Special characters in text content must be properly escaped:

CharacterEntityUsage
<&lt;Less than
>&gt;Greater than
&&amp;Ampersand
"&quot;Double quote (only needed inside an attribute)
'&apos;Apostrophe (only needed inside an attribute)

✅ Correct <en>Property with pool &amp; garden</en>

❌ Incorrect <en>Property with pool & garden</en>

Testing Your Feed

Step 1: Validate XML Structure

Validate your feed with an XML validator before submitting it:

Step 2: Check Character Encoding

Verify your feed is properly UTF-8 encoded:

Step 3: Verify Required Fields

Every property needs these elements:

  • <id> — Unique property ID
  • <price> — Property price
  • <price_freq> — Sale or rent
  • <type> — Property type
  • <country> — Country
  • <town> — City or town
  • <desc><en> — Property description
💡 How A Listing Goes Live New listings are created in draft and published automatically once their images are available on our media storage. A listing without images is published straight away. Images usually finish processing within 24 hours of the first sync, and a listing is released anyway after 48 hours.

Automating Updates

Once your feed is approved, our system syncs your properties automatically every night.

Sync Schedule

  • Feeds are processed automatically every 24 hours
  • Processing starts after 01:00 CET and continues through the early morning
  • Large feeds may take longer to process

Best Practices

  • Always include ALL active properties in your feed
  • Keep the <id> of a property stable for its whole life
  • Send up to 20 images per property; the first one is the cover
  • Send absolute image URLs that stay reachable; images are only downloaded once
  • Ensure your feed URL remains consistent and accessible
  • Monitor for any validation errors reported by our team
⚠️ Remember Properties that are not in your feed are taken offline after three consecutive syncs, and come back automatically when they return to the feed. Nothing is deleted from your account on the first miss, but a feed that is missing listings for days does take them off the site.

Getting Help

If you have questions or encounter issues with your XML feed:

When contacting support, please include:

  • Your feed URL
  • Your agency name on European Real Estate
  • A couple of the <id> values involved
  • A description of the issue
  • Any error messages received