OpenPMX Lite
RSS 2.0 property feeds.
OpenPMX Lite is an open RSS format for property offers: anyone may publish or read a feed that follows it. Each marketable offer is an RSS <item> with fields in the http://www.propbot.org namespace. Use the opmxl prefix in the examples and validate the feed against the OpenPMX Lite XML Schema and publish rules.
The implementation set is this guide, the property catalog, the XML Schema, the RSS example, and the JSON working file marked engine2-0.2. The JSON format’s public name has not been chosen.
<rss version="2.0"
xmlns:opmxl="http://www.propbot.org"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.propbot.org https://propbot.org/schemas/openpmxlite.xsd">
Feed categories
| Code | Category |
|---|---|
cfs | Commercial for Sale |
cfl | Commercial for Lease |
lfs | Land for Sale |
rfs | Residential for Sale |
rfr | Residential for Rent |
Apartment complex type IDs 56, 57, 67, and 74 are commercial. Use cfs when offering these properties for sale and rfr when offering them for rent.
Listing statuses
Open-market search includes Active, Pending, Contingent, Pending Accepting Backup Offers, and Contingent Accepting Backup Offers. The other stored statuses are valid feed values and remain outside open-market search.
| Status | Open-market search |
|---|---|
Incomplete | No |
Active | Yes |
Closed | No |
Contingent | Yes |
Contingent Accepting Backup Offers | Yes |
Expired | No |
Pending | Yes |
Pending Accepting Backup Offers | Yes |
Temporary Off Market | No |
Withdrawn | No |
Property types
Set propertytype to the numeric typeId. The public labels are shown in the property catalog. Use the numeric ID in the feed; for example, 60 is Detached, 50 is Zoned Agricultural, and 99 is Agricultural.
Feed fields
Publish-ready offer requirements.
PropBot can save incomplete drafts, but an OpenPMX Lite item describes one marketable offer and must meet the property module’s Save and Publish requirements. For a property with multiple offers or rentable interiors, publish one RSS <item> per offer.
Keep the RSS 2.0 envelope. Channel title, link, and description are required. Each item requires title, link, guid, and description. Standard optional RSS fields such as channel image, item pubDate, and foreign-namespace extensions are accepted.
| Required PropBot field | Meaning | Requirement |
|---|---|---|
category | Offer market | One of cfs, cfl, lfs, rfs, or rfr |
uniqueId | Publisher offer ID | Stable and unique within the feed |
propertytype | Property type | Numeric ID from the property catalog |
status | Listing status | One of the ten supported values; closed and off-market statuses are valid updates |
address, locality, province, postalcode, country | Complete address | Every element is required |
price, pricetype | Offer amount and currency | Non-negative decimal and three-character currency code |
latitude, longitude | Map location | Both coordinates are required to publish |
Requirements that depend on the offer
| Offer type | Required PropBot fields |
|---|---|
cfs, cfl, lfs, rfs | lotsize and lotsizetype |
Commercial rental IDs 56, 57, 67, 74 in rfr | lotsize and lotsizetype |
| Type IDs whose catalog entry requires an interior | interiorsize and interiorsizetype |
| Residential offers with a required interior | bedrooms and bathrooms |
Rent or lease offers (cfl, rfr) | securitydeposit |
Residential rentals in rfr | applicationfee |
Optional PropBot fields
image1, renttype, yearbuilt, contactname, contactphone, contactemail, and contactdomain are optional. Images and contact details are not required by the platform’s publish checks. The rent period is useful when the amount is not monthly, but the current property module does not block publishing when it is omitted.
Example feed
Use the XML example and schema.
The example is a complete publish-ready residential sale offer. The XSD defines RSS structure and field types; the Schematron file enforces requirements that depend on the category and property type.
Validate a feed in your browser · Open the OpenPMX Lite RSS example · Open the XML Schema · Open the RSS wrapper schema · Open publish rules · Download validator source
Validate a feed locally
The validator runs both the XSD and category-specific Schematron rules. It requires Python and lxml:
python3 -m pip install lxml
python3 schemas/validate-openpmxlite.py my-feed.xml
Running xmllint against the RSS wrapper checks structure and field types only; it does not run the publish rules.
Next transfer shape
JSON · engine2-0.2.
JSON is the next transfer shape. Its public name is not chosen. The realtor site hosts the file and PropBot pulls changes over HTTPS. A listing left out of the file is not deleted. OpenPMX Lite RSS stays the public feed.