Jump to: OpenImmo · RESO Data Dictionary · Kyero XML · WordPress themes
OpenImmo (XML, Germany/Europe)
OpenImmo 1.2.x is XML shipped as ZIP over FTP. We accept the file as it is; this is how its fields land in REES.
| Their field | REES | Notes |
|---|---|---|
verwaltung_techn/objektnr_extern | id | Stable per agency; openimmo_obid is the cross-system id |
verwaltung_techn/aktion @aktionart | status | DELETE → withdrawn (keep the record, do not drop it) |
objektkategorie/vermarktungsart KAUF / MIETE_PACHT | operation | KAUF → sale; MIETE_PACHT → rent_long |
objektkategorie/objektart (wohnung, haus, grundstueck…) | property_type | wohnung → apartment; haus → house/villa; grundstueck → land |
freitexte/objekttitel | title.<lang> | OpenImmo has one language per file; REES keeps them together |
freitexte/objektbeschreibung | description.<lang> | |
preise/kaufpreis, preise/kaltmiete | price.amount | basis total (sale) or per_month (rent) |
preise/waehrung @iso_waehrung | price.currency | Same ISO code |
preise/hausgeld | costs.hoa | basis per_month |
flaechen/wohnflaeche | area.built | unit m2 |
flaechen/grundstuecksflaeche | area.plot | unit m2 |
flaechen/anzahl_schlafzimmer | rooms.bedrooms | anzahl_zimmer (total rooms) has no REES equivalent |
flaechen/anzahl_badezimmer | rooms.bathrooms | |
geo/land @iso_land | location.country | Alpha-3 (DOM) → alpha-2 (DO) |
geo/ort, geo/plz, geo/strasse | location.city, postal_code, address | |
geo/geokoordinaten @breitengrad @laengengrad | location.geo.lat / lng | Add precision; OpenImmo has none |
zustand_angaben/baujahr | delivery.year_built | |
anhaenge/anhang/daten/pfad | media[].url | Files from the ZIP are published at URLs instead |
kontaktperson | agent |
RESO Data Dictionary (North America)
Mostly one-to-one. The important difference is rights: MLS data under IDX rules is not republishable by a portal, and REES says so explicitly.
| Their field | REES | Notes |
|---|---|---|
ListingKey | id | |
StandardStatus | status | Active → active; Pending → reserved; Closed → sold; Withdrawn/Canceled/Expired → withdrawn |
PropertyType / PropertySubType | operation + property_type | Residential Lease → rent_long |
ListPrice | price.amount | currency from the market; RESO assumes one |
LivingArea + LivingAreaUnits | area.built | Square Feet → ft2 |
LotSizeArea + LotSizeUnits | area.plot | Acres → acre |
BedroomsTotal, BathroomsTotalInteger | rooms.bedrooms, rooms.bathrooms | |
Latitude, Longitude | location.geo | precision exact unless the MLS masks it |
City, StateOrProvince, Country, PostalCode | location.* | |
PublicRemarks | description.en | |
AssociationFee + AssociationFeeFrequency | costs.hoa | Monthly → per_month; Annually → per_year |
YearBuilt | delivery.year_built | |
ModificationTimestamp | updated_at | |
ListOfficeName | listing_office.name | |
ListAgentFullName, ListAgentEmail | agent | |
Media[].MediaURL, Order | media[].url, order | |
(IDX participation rules) | license.use = "idx-personal-use" | Unless the MLS grants portal display rights in writing |
Kyero XML (Spain, Portugal, Caribbean agencies)
Common among European agencies selling abroad. Very close in spirit; REES adds units, basis and provenance.
| Their field | REES | Notes |
|---|---|---|
id / ref | id | |
date | updated_at | |
price + currency | price.amount + currency | |
price_freq (sale / month / week) | operation + price.basis | sale → total; month → per_month; week → per_week |
new_build | delivery.status | 1 → under_construction or off_plan: ask |
type (apartment, villa, town house, plot…) | property_type | |
town, province, country, location/latitude, longitude | location.* | Kyero country is a name; convert to ISO |
beds, baths | rooms.* | |
pool | features: pool | |
surface_area/built, surface_area/plot | area.built, area.plot | Kyero implies m²; REES states it |
desc/<lang> | description.<lang> | Same shape |
features/feature | features | Free text → our vocabulary where it matches |
images/image/url | media[].url | |
url/<lang> | url | The canonical-language page |
WordPress themes (schema.org JSON-LD)
What we read today when an agency has no feed. It works, with the corrections below — each one found on a live site.
| Their field | REES | Notes |
|---|---|---|
schema.org offers.price + priceCurrency | price | Check the currency: themes default to USD |
offers.seller (RealEstateAgent) | agent | |
geo.latitude / longitude | location.geo | Often the theme default — Houzez ships 25.68654,-80.431345 (Miami). Omit rather than send it. |
floorSize.unitText | area.built.unit | Themes mislabel m² as SQFT; trust the spec table on the page |
@type LandParcel | property_type: land | |
Price postfix "/m2" | — | Usually decoration on the total, not a per-m² price; check against the area |
/es/, /fr/, /de/ page copies | title / description languages | One listing, many languages — not many listings |
What none of them carry
Whatever the source, these REES fields have no equivalent and are what lift a listing to Verified and Complete:
price.basis, provenance, location.geo.precision, license,
legal.title_status, legal.survey_done, legal.tax_exemption, and developments as their own objects.
Mappings describe OpenImmo 1.2.x, RESO Data Dictionary 2.x and Kyero feed v3 as commonly implemented. Found a mistake? Tell us.