Current formats
OpenPMX Lite RSS is the current feed.
OpenPMX Lite uses RSS 2.0. Each marketable offer is an RSS item with PropBot fields in the http://www.propbot.org namespace. Use the opmxl prefix shown in the example and validate against both the XML Schema and publish rules.
Type and status values
Use one of the five feed categories, one of the ten supported statuses, and a numeric property type ID from the property catalog.
Validate a feed in your browser · OpenPMX Lite XML Schema · OpenPMX Lite publish rules · RSS example feed · Property catalog
Categories
Five 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 category cfs for sale listings and rfr for rental listings.
Statuses
Ten supported values.
Open-market search includes Active, Pending, Contingent, Pending Accepting Backup Offers, and Contingent Accepting Backup Offers. All ten values are valid stored statuses.
| 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
Use the numeric type ID.
The property catalog contains 102 numeric IDs. Set the RSS propertytype value to the ID. The accompanying labels are for people reading the catalog.
Examples: ID 60 is Detached, ID 50 is Zoned Agricultural, and ID 99 is Agricultural. The engine 2 catalog includes every supported ID and label.
Next transfer shape
JSON · engine2-0.2.
JSON is the next transfer shape. The public name is not chosen. A realtor site hosts the document and PropBot pulls it over HTTPS. The access token is sent on the request. It is not a field in the file.
Serve GET /propbot/feed.json. Accept since as an update time and return listings newer than that time. Answer 304, or return an empty properties array, when nothing changed. A listing left out of the file is not deleted. Set status to Closed or Withdrawn to take a listing off the market.
Each changed listing needs externalId, updatedAt, status, category, and numeric typeId. A listing on the market also needs a title, address, and map pin. A sale needs a price. Photos, public contact, size, and interiors are optional. Leave out account ids, advertising, rank, and private financials.
OpenPMX · Open Property Management Exchange
Open specification for private property files.
OpenPMX defines a full-property XML exchange between property systems. The specification is open; a real file is confidential and is sent only to the organization named in Recipient, over HTTPS. The current PropBot importer does not ingest OpenPMX XML.
Element names follow the established OpenPMX section outline. Categories, statuses, and numeric type IDs use the current property catalog. OpenPMX Lite remains the public RSS feed; government details, financials, obligations, and direct partner contacts belong in the private exchange.
OpenPMX XML Schema · Schematron publish rules · Validate a file in your browser · Download the command-line validator · Fictional XML example · Full field list
File structure
OpenPMXFile
FileInfo Version, Sender, Recipient, MessageId, Created
Government optional confidential property facts
SaleInformation optional sale and contact facts
Location full address and usable coordinates
ExteriorResidential | ExteriorCommercial
interiors zero or more
One file contains one residential or commercial exterior and zero or more matching interiors. Land and vacation-style stays use catalog TypeIds in these exterior forms. OpenPMX has no separate Land or Vacation XML family.
Fields in the exchange
| Section | Specified fields |
|---|---|
| FileInfo | Required profile token propbot-openpmx-2026, sender and recipient organization names, a message ID unique for that sender, and creation time. |
| Government | Optional confidential legal description and zoning. |
| SaleInformation | Optional contact name, phone, email, and website; price with optional currency; MLS number; description; financing details; NOI, GOI, and CAP. |
| Location | Address line 1 and optional line 2, locality, province or state, postal code, country, latitude, and longitude. |
| Exterior and interiors | Title, up to three numeric TypeIds, category, status, sale and rent flags, supported property facts, and listing images. Each image has a URL and optional caption, order, and primary flag. Residential interiors include type, beds, baths, and size. Commercial interiors include size. A leased interior includes rent and security deposit. |
Categories are cfs, cfl, lfs, rfs, and rfr. IDs 56, 57, 67, and 74 use cfs for sale and rfr for rent. Statuses and type labels are listed in the property catalog. Rent cadence values are $/Day, $/Week, $/BiWeek, $/Month, $/Year, $/SF/Year, and $/SF/Month. Garage values are 0, 1, 2, 3+, 4+, and detached. Lot area units are acres, sqfeet, and meters; building and interior area units are sqfeet and meters.
The OpenPMX page contains the complete field list for each section and element.
Conditional publish rules
| Record | Required for a publishable file |
|---|---|
| Every file and exterior | Named sender and recipient, message ID, creation time, title, full address, usable coordinates, a supported numeric type ID, category, and status. |
| Residential exterior | A non-empty description. |
| Sale offer | Price and lot size. |
| Residential rental | Application fee. |
| Included residential interior | Title, description, type ID, beds, baths, and size. |
| Included commercial interior | Title, description, and size. |
| Leased interior | Rent and security deposit. |
Contact fields are optional. Status Temporary Off Market expresses the off-market state; the format does not add an off-market flag. XSD and Schematron define the accepted fields and conditional requirements.
Use the public OpenPMX Lite RSS feed when a listing is meant to be published openly. Send real OpenPMX files only to their named recipient over HTTPS.