Got comments or ideas?
Drop us a line! Your feedback helps us make WOHNO better.
OpenImmo is the open interface real-estate software and property portals use to exchange listing data. This guide explains in plain language what OpenImmo is, how an openimmo.xml is structured, which software exports the standard and how importing into a portal like WOHNO works.
If you market property, sooner or later you'll come across the word OpenImmo – in your agency software, during a portal export or in a conversation with IT. This article explains in plain language what OpenImmo is, how an OpenImmo file is structured, which software exports the standard and how importing into a property portal works. No jargon, but concrete enough to understand what happens behind the scenes.
OpenImmo is an open, XML-based standard for exchanging property listings. Instead of re-entering every property in every portal by hand, your agency software exports the data once as an OpenImmo file – portals read it in automatically. The standard is maintained by an industry body and has been established in the German-speaking real-estate market for many years.
XML standard
Open
Vendor-neutral, documented
Current version
1.2.x
Read by portals like WOHNO
or XML
ZIP
Container with images or bare XML
The core idea is "maintain once, distribute everywhere": you maintain a property in your system, and via OpenImmo it travels into the portals of your choice without double entry. That saves time and prevents outdated or contradictory listings across platforms.
Before the standard, every portal connection was a custom job: each software interface spoke its own format, every integration had to be built separately. OpenImmo solves this by defining one common format. Software that can export OpenImmo is, in principle, connectable to any portal that imports OpenImmo – regardless of vendor.
An OpenImmo delivery is usually a ZIP container with an openimmo.xml file and the
matching images. The XML describes each property in an <immobilie> element – structured
into clearly named areas:
<objektkategorie> – marketing type (rent/sale) and property type (apartment, house …)<geo> – address and geo coordinates<preise> – base rent, service charges, purchase price, deposit …<flaechen> – living area, rooms, bed-/bathrooms<ausstattung> – features such as elevator, balcony, fitted kitchen<zustand_angaben> – year built, condition, energy certificate<freitexte> – title, description, location description<anhaenge> – images, floor plans, documents<verwaltung_techn> – technical administration, incl. the unique property referenceRent or sale, and whether flat, house or commercial.
Address and – if present – the geo coordinates.
Base rent, service charges, purchase price, deposit.
Living space, number of rooms, bed- and bathrooms.
Features as flags – what the flat comes with.
Year of construction, condition and energy values.
Title, property and location description as free text.
References to the files shipped inside the ZIP.
The unique object reference – the anchor for updates.
Here's what a single rental property (trimmed) looks like:
<immobilie>
<objektkategorie>
<vermarktungsart KAUF="0" MIETE_PACHT="1" />
<objektart><wohnung wohnungtyp="ETAGE" /></objektart>
</objektkategorie>
<geo>
<plz>10115</plz>
<ort>Berlin</ort>
<strasse>Invalidenstraße</strasse>
<hausnummer>12</hausnummer>
</geo>
<preise>
<kaltmiete>1.250,00</kaltmiete>
<nebenkosten>250,00</nebenkosten>
</preise>
<flaechen>
<wohnflaeche>72,5</wohnflaeche>
<anzahl_zimmer>2,5</anzahl_zimmer>
</flaechen>
<freitexte>
<objekttitel>Bright 2.5-room apartment in Berlin-Mitte</objekttitel>
</freitexte>
<verwaltung_techn>
<openimmo_obid>OBID-ABC-123</openimmo_obid>
</verwaltung_techn>
</immobilie>
Every property carries an action that tells the portal what to do:
So you know where to find what when you look inside an openimmo.xml, here are the key elements and their typical contents:
| Element | Stands for | Typical contents |
|---|---|---|
<objektkategorie> | Type of property | Rent/sale, apartment/house/commercial |
<geo> | Location | Postcode, town, street, number, coordinates |
<preise> | Costs | Base rent, service charges, purchase price, deposit |
<flaechen> | Sizes | Living area, plot, number of rooms |
<ausstattung> | Features | Balcony, elevator, fitted kitchen, parking |
<zustand_angaben> | Condition & energy | Year built, condition, energy-certificate figures |
<freitexte> | Texts | Title, description, location description |
<anhaenge> | Media | Images, floor plans, documents |
<verwaltung_techn> | Technical | openimmo_obid, objektnr_extern, aktion |
At the top of the file, the <uebertragung> element carries an umfang attribute – and it decides how the portal treats properties that are not in the file:
umfang="VOLL" (full sync): The file describes your entire portfolio. Properties that exist in the portal but are missing from this file are interpreted as "no longer active" and removed or archived by the portal.umfang="TEIL" (partial sync): The file contains only individual properties (e.g. new entries or changes). Missing properties stay untouched.The file is the complete inventory.
Object C is missing from the file → gets deactivated or deleted. If your export forgets an object, it drops out live.
The file is only an excerpt.
Object C is missing from the file → stays untouched. Objects not delivered are never removed automatically.
OpenImmo files reach a portal in two ways:
For getting started, manual upload is the fastest route; you set up the automatic (S)FTP push once the portfolio changes regularly.
Images, floor plans and documents sit in the <anhaenge> element. Three rules decide whether they arrive cleanly:
BILD group with the title-image marker) – otherwise the portal decides which photo goes first.How to produce a clean floor plan as an attachment is shown in the guide on the floor plan for your listing.
The standard is supported industry-wide. Common tools that export OpenImmo include ImmoScout24, onOffice and FlowFact – but the list is not exhaustive. What matters is not the vendor but whether your software handles the export in the OpenImmo 1.2.x standard. If it does, your portfolio is, in principle, connectable to any OpenImmo-capable portal.
Using WOHNO as an example, the path from export to finished listing looks like this:
ImmoScout24 is a portal, not agent software — it uses its own API, not OpenImmo. When buying a plugin, look for the keyword “OpenImmo”, not “IDX/MLS”.
You create an OpenImmo export in your agency software – usually a ZIP with the openimmo.xml and the images.
You upload the ZIP – or a single openimmo.xml – to the portal. WOHNO processes up to 200 properties per file.
The portal reads the standard elements and maps them to the matching listing fields: property type, prices, areas, features, energy certificate, address, geo coordinates and images.
You review the imported properties and take them live – within your plan limit.
Exactly which OpenImmo elements map to which fields is shown in the field-mapping table on the OpenImmo import page.
When a property is missing or data arrives garbled, it's almost always one of a handful of typical pitfalls. Work through this list from top to bottom:
No reference, no match – a duplicate is created.
Set a unique object reference in the export and keep it stable.
72,5 is read as an invalid number and the field stays empty.
OpenImmo uses the comma (72,5) – check your export format.
ISO-8859-1 instead of UTF-8 turns umlauts into garbage (ü).
Export the XML as UTF-8 and declare it in the header.
If e.g. the marketing type is missing, the object is dropped.
Fill marketing type, object type and price before exporting.
The reference in <anhaenge> points to a missing file.
Reference file names exactly as in the ZIP (case-sensitive).
<wohnflaeche>72,5</wohnflaeche>). If your software writes 72.5 or even 1,250.00, the portal may read the number wrongly or not at all. Check areas and prices for a consistent format.<?xml version="1.0" encoding="UTF-8"?>) must match the file's actual encoding – otherwise umlauts and ß wreck the texts.openimmo_obid / objektnr_extern. Without a unique property reference the portal can't recognise a property on re-import – the result is duplicates instead of updates. Make sure every property carries a stable reference that doesn't change between exports.bild01.jpg but the file is named Bild01.JPG or sits in the wrong folder, the attachment stays empty. File name and path must match the ZIP's contents exactly – including upper/lower case.OpenImmo is the backbone of data exchange in the real-estate industry: an open XML standard that makes double entry unnecessary. If your software exports OpenImmo 1.2.x, your portfolio is in a portal like WOHNO within minutes – including images, energy certificate and geo data, with reliable matching on re-import.
Read on: How the OpenImmo import at WOHNO works in practice, including the field mapping. If you want to display properties on your own website, our overview compares the best WordPress plugins for agents and introduces the WOHNO WordPress plugin. And so the imported properties actually convince, the guide to the good rental listing helps.
Import your portfolio via OpenImmo
Upload your openimmo.xml or ZIP to WOHNO – properties, prices, images and geo data are imported automatically. Without double data entry.
Continue with WOHNO
A repeatable process for private landlords: pre-sort applications, build a shortlist, organise viewings cleanly (one-on-one instead of group), coordinate appointments, decline fairly – and which applicant data you must delete after letting under the GDPR.
Who advertises, who screens applications, who decides – and who's allowed to see which tenant data? A practical guide for property managers, homeowners' associations, agents, and owner teams: clear roles, collaboration without duplicate work, and GDPR data protection (Art. 26, 28, 32) – with current 2025/26 sources.
How the WOHNO plugin shows your listings natively and SEO-friendly in WordPress, why the application and applicant folder stay GDPR-safe with WOHNO, how caching, security and the four layouts work – and which pros and cons you should know before using it.