Why another standard?
Europe has OpenImmo (XML, since 2002) and North America has RESO (built for MLS systems). Both work where they were designed. Neither was made for a market where a condo is priced in dollars, taxed in pesos, sold off-plan, marketed by three agencies at once and advertised on a WordPress theme.
We built Caribe Scout by reading agency websites, and every mistake below came from a real feed:
| What the feed said | What it meant | How REES prevents it |
|---|---|---|
$1,250,000 | Sometimes pesos: a 60× error | Every price carries an ISO currency code: USD, DOP. Symbols are not accepted. |
$230 /m² | A lot priced per square metre, stored as a $230 home | Every price states its basis: total, per m², "from", range, per month… |
157 SQFT | 157 m², mislabelled by a theme | Every area states its unit, and the validator flags square feet where m² is the norm. |
| A pin in Miami | A theme's default map centre, on 118 of 120 listings | Coordinates state their precision; known default pins are flagged. |
| "IDX data for personal use only" in a footer | A licence no machine could read | Rights are a field: republish with credit, display only, MLS/IDX, or none. |
| "From $245,000" | A development's cheapest unit, not a listing | Developments are their own objects, with units linked to them. |
The principles
- No ambiguous numbers. Money has a currency and a basis; areas have a unit; coordinates have a precision.
- Every figure can say where it came from. Any price, area or legal fact may carry provenance: who stated it, when, and whether it was checked.
- The owner of the data stays the owner. Publisher, listing office, licence and backlink rules travel with every listing.
- Easy to start, rewarding to complete. Fifteen fields make a valid feed. The rest earns a higher level.
- Open and free. The specification is free to read, implement and extend. No licence fee, no membership.
- Plain JSON over HTTPS. A file at a URL is enough. No FTP, no ZIP, no SOAP.
Three levels
A feed is checked listing by listing. Each listing reaches a level, and receivers such as Caribe Scout show it.
Basic
Valid against the schema, with at least one photo. Identity, status, price with currency and basis, city and country.
Verified
Basic, plus a declared licence, provenance on the price and the main area, and coordinates with a stated precision.
Complete
Verified, plus title and survey status, delivery status, bedrooms, and HOA fees with their period.
What a feed looks like
The smallest valid feed — one listing, at the Basic level:
{
"rees": "0.1",
"publisher": {
"id": "example-realty",
"name": "Example Realty",
"website": "https://example-realty.test"
},
"generated_at": "2026-09-30T08:00:00Z",
"listings": [
{
"id": "ER-1001",
"url": "https://example-realty.test/listings/er-1001",
"status": "active",
"updated_at": "2026-09-29T16:20:00-04:00",
"operation": "sale",
"property_type": "apartment",
"title": {
"en": "2-bed condo near Los Corales beach"
},
"price": {
"amount": 189000,
"currency": "USD",
"basis": "total"
},
"location": {
"country": "DO",
"city": "Punta Cana",
"area": "Los Corales"
},
"media": [
{
"url": "https://example-realty.test/media/p1.jpg",
"type": "photo",
"order": 1
}
]
}
]
} See full examples (a villa, an off-plan unit in pesos, a lot priced per m², a rental, a development), the field reference, or paste your own feed into the validator.
Start here
I'm an agency or developer →
How to send us your listings — from a feed URL you already have, or a REES feed.
I already export OpenImmo, RESO or Kyero →
Field-by-field mappings. We accept those formats too.
REES v0.1 is a draft maintained by Caribe Scout. The specification text is licensed CC BY 4.0; the schema and validator code under Apache 2.0. Changes are proposed openly — see the changelog.