Jump to: Feed · Listing · Money · Measure · Geo · Provenance · License · Publisher · Contact · LocalizedText · Development · Feature vocabulary
Unknown fields are rejected, not ignored: a typo such as bedrooms at the listing level (it belongs in rooms) is reported rather than silently lost.
Feed (the top level)
Real Estate Exchange Standard v0.1: one publisher, its listings and developments.
| Field | Type | Values / rules | Meaning |
|---|---|---|---|
rees ● | "0.1" | Spec version this feed follows. | |
publisher ● | Publisher | ||
generated_at ● | string (date-time) | When this feed was produced (ISO 8601, with timezone). | |
license | License | ||
listings ● | array of Listing | All current listings, or only changes when since is set. | |
developments | array of Development | ||
since | string (date-time) | Set when this is a delta feed: only records updated after this instant. | |
next | string (uri) | URL of the next page, for large feeds. |
Listing
| Field | Type | Values / rules | Meaning |
|---|---|---|---|
id ● | string | max 128 chars | Stable within the publisher. Never reuse; never change when the listing is edited. |
url ● | string (uri) | The listing's canonical page on the publisher's site. Receivers link back here. | |
status ● | one of | active reserved sold rented withdrawn | |
updated_at ● | string (date-time) | ||
listed_at | string (date) | ||
operation ● | one of | sale rent_long rent_mid rent_short | rent_mid = monthly, 1–11 months; rent_short = nightly/weekly. |
property_type ● | one of | apartment penthouse villa house townhouse land commercial hotel building other | |
development_id | string | The development this unit belongs to, when there is one in developments. | |
unit | string | Unit label inside a building or development: "A-402". | |
title ● | LocalizedText | ||
description | LocalizedText | ||
price ● | Money | ||
area | object | ||
area.built | Measure | Interior living area. | |
area.terrace | Measure | ||
area.plot | Measure | Land. For property_type "land", this is the size. | |
rooms | object | ||
rooms.bedrooms | integer | ≥ 0 | 0 = studio. |
rooms.bathrooms | number | ≥ 0 | Half baths as .5. |
rooms.parking | integer | ≥ 0 | |
location ● | object | ||
location.country ● | string | pattern ^[A-Z]{2}$ | ISO 3166-1 alpha-2. |
location.region | string | Province / parish / state. | |
location.city ● | string | ||
location.area | string | Neighbourhood, sector or resort: "Cap Cana", "Los Corales". | |
location.address | string | Omit when the publisher does not disclose it. | |
location.postal_code | string | ||
location.geo | Geo | ||
delivery | object | ||
delivery.status ● | one of | built under_construction off_plan | |
delivery.year_built | integer | ≥ 1800 · ≤ 2100 | |
delivery.expected | string | pattern ^[0-9]{4}(-Q[1-4]|-[01][0-9])?$ | Handover: "2027", "2027-Q2" or "2027-06". |
features | array of string | Controlled vocabulary (see the field reference): pool, private_pool, beachfront, ocean_view, gated, furnished, generator, cistern… | |
media | array of objects | ||
media[].url ● | string (uri) | ||
media[].type ● | one of | photo floorplan video tour document | |
media[].caption | LocalizedText | ||
media[].order | integer | ≥ 0 | |
costs | object | ||
costs.hoa | Money | Condominium / maintenance fee. basis MUST be a period (per_month, per_year) or per_m2 with a period in note. | |
costs.property_tax | Money | ||
costs.transfer_tax_pct | number | ≥ 0 · ≤ 30 | |
legal | object | ||
legal.title_status | one of | titled titled_individual in_process untitled unknown | titled_individual = its own certificate (in the DR, after deslinde). |
legal.survey_done | boolean | Boundary survey registered (deslinde in the DR). | |
legal.tax_exemption | object | ||
legal.tax_exemption.scheme ● | string | e.g. "CONFOTUR". | |
legal.tax_exemption.until_year | integer | ≥ 2000 · ≤ 2100 | |
legal.tax_exemption.provenance | Provenance | ||
legal.foreign_buyers | one of | allowed restricted not_allowed unknown | |
agent | Contact | ||
listing_office | object | The office that holds the listing, when it is not the publisher (co-brokerage, MLS). | |
listing_office.name ● | string | ||
listing_office.id | string | ||
listing_office.website | string (uri) | ||
license | License |
Money
An amount, its currency and what it is a price OF. Never a bare number.
| Field | Type | Values / rules | Meaning |
|---|---|---|---|
amount | number | ≥ 0 | Required unless basis is on_request. For a range, the low end. |
max | number | ≥ 0 | High end of a range (basis "range"). |
currency ● | string | pattern ^[A-Z]{3}$ | ISO 4217 code: USD, DOP, EUR, JMD… Never a symbol. |
basis ● | one of | total per_m2 from range per_month per_week per_night per_year on_request | total = the whole property; per_m2 = rate × area; from = lowest unit in a development; range = amount…max. |
includes | array of one of | furniture hoa utilities vat transfer_tax | What the amount includes, when it is not bare. |
provenance | Provenance |
Measure
| Field | Type | Values / rules | Meaning |
|---|---|---|---|
value ● | number | > 0 | |
unit ● | one of | m2 ft2 ha acre | Always stated. No default unit exists. |
provenance | Provenance |
Geo
| Field | Type | Values / rules | Meaning |
|---|---|---|---|
lat ● | number | ≥ -90 · ≤ 90 | |
lng ● | number | ≥ -180 · ≤ 180 | |
precision ● | one of | exact street neighbourhood approximate | How close the point is to the property. Use "approximate" for a deliberately blurred pin. |
provenance | Provenance |
Provenance
Where a value came from. Optional everywhere; required on price and area for the Verified level.
| Field | Type | Values / rules | Meaning |
|---|---|---|---|
source ● | one of | owner agent developer survey registry appraisal estimate | |
date | string (date) | ||
confidence | one of | verified stated estimated | verified = checked against a document; stated = as told; estimated = derived. |
note | string |
License
What a receiver may do with the data. Set once on the feed; override per listing.
| Field | Type | Values / rules | Meaning |
|---|---|---|---|
use ● | one of | republish-with-credit display-only idx-personal-use no-republish | idx-personal-use = MLS/IDX data a portal may NOT republish; no-republish = analysis only. |
credit_required | boolean | ||
backlink_required | boolean | ||
url | string (uri) | The publisher's terms, if any. |
Publisher
| Field | Type | Values / rules | Meaning |
|---|---|---|---|
id ● | string | pattern ^[a-z0-9][a-z0-9-]{1,62}$ | Stable slug for the publisher, chosen once: "cabarete-real-estate". |
name ● | string | ||
kind | one of | agency developer owner mls portal | |
website ● | string (uri) | ||
country | string | pattern ^[A-Z]{2}$ | |
contact | Contact | ||
license_number | string | Local broker licence or registry number, where one exists. |
Contact
| Field | Type | Values / rules | Meaning |
|---|---|---|---|
name | string | ||
email | string (email) | ||
phone | string | pattern ^\+[0-9 ()-]{7,20}$ | E.164-style with country code: +1 809 555 0100. |
whatsapp | string | pattern ^\+[0-9 ()-]{7,20}$ |
LocalizedText
Text by language, keyed by ISO 639-1 code: {"en": "...", "es": "..."}. At least one language.
Keys are language codes (en, es, fr, pt-BR), values the text. Example: {"en": "Ocean-view condo", "es": "Condo con vista al mar"}
Development
| Field | Type | Values / rules | Meaning |
|---|---|---|---|
id ● | string | max 128 chars | |
name ● | string | ||
url ● | string (uri) | ||
developer | string | ||
location ● | same as Listing.location | ||
delivery ● | same as Listing.delivery | ||
units_total | integer | ≥ 1 | |
units_available | integer | ≥ 0 | |
price_from | Money | ||
description | LocalizedText | ||
media | same as Listing.media | ||
features | same as Listing.features |
Feature vocabulary (v0.1)
Use these values in features. Others are accepted with a warning and kept, but receivers cannot filter on them. Propose additions on the changelog page.
poolprivate_poolshared_poolbeachfrontbeach_accessocean_viewgolf_viewgolf_frontgatedsecurity_24hfurnishedsemi_furnishedair_conditioninggeneratorinvertersolarcisternwater_heaterelevatorgymgardenterracerooftopbbqparkingcovered_parkingstoragepet_friendlyshort_let_allowedhoa_managedmarina_access