The exchange
Open specification. Private payload.
The OpenPMX specification is public so a property system can implement it. A real file contains confidential property information 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. Values use the current property catalog. OpenPMX is the private full-property exchange; OpenPMX Lite is the public RSS feed.
Open the XML Schema · Open the Schematron rules · Validate a file in your browser · Open the fictional example · Download the command-line validator
File structure
One property per file.
OpenPMXFile
FileInfo Version, Sender, Recipient, MessageId, Created
Government optional confidential property facts
SaleInformation optional sale and contact facts
Location address and usable coordinates
ExteriorResidential | ExteriorCommercial
interiors zero or more
Each file contains one residential or commercial exterior and may contain zero or more matching interiors. Land and vacation-style listings use their numeric catalog types within these two exterior forms.
Field list
Property facts partners can exchange.
| Section | Elements and meaning |
|---|---|
| FileInfo | Version (fixed to propbot-openpmx-2026), Sender and Recipient organization names, MessageId (unique per sender), and Created. |
| Government | Optional confidential LegalDescription and Zoning. |
| SaleInformation | Optional ContactName, ContactPhone, ContactEmail, ContactWebSite, Price, MLSNumber, Description, FinancingDetails, NOI, GOI, and CAP. Money values have an optional UnitMoneyMark currency child. |
| Location | Required AddressLine1, Locality, Province, PostalCode, Country, and MapCoordinates containing Latitude and Longitude; optional AddressLine2. |
| Every exterior | Required Title, TypeId, Category, Status, ForSale, and ForRent. Optional TypeId2, TypeId3, LeaseOption, LotSize, GarageSize, YearBuilt, NumberOfFloors, NumberOfUnits, ParkingSpaces, ParkingRatio, TrafficCount, Available, GroundLease, Notes, and Images. |
| Residential exterior | Required Description; optional Neighborhood, WaterFront, TaxesPerYear, amount-valued AssociationFee, SecurityDeposit, ApplicationFee, UtilitiesIncluded (Gas, Electricity, Water, Cable, Trash), AcceptGovernmentAssistance, Refrigerator, Internet, Pets (Policy, Fee), Fitness, Schools (Elementary, Middle, High), Golf, Pool, CommunityPool, Spa, SportsClub, TennisCourts, BikePath, Boating, Courtyard, PlayGround, ClubHouse, Gated, PublicTransportation, LawnSprinklers, Fenced, and OnSiteLaundry. May contain repeated InteriorResidential elements. |
| Commercial exterior | Optional Description, Class, TaxesPerYear, BuildingSize, Cranes, Rail, Fenced, TrailerParking, DockDoors, and GradeDoors. May contain repeated InteriorCommercial elements. |
| Residential interior | Required Title, Description, TypeId, Beds, Baths, and Size; optional Price, RentType, Room, AirConditioning, Alarm, Balcony, CableReady, Dishwasher, Disposal, FirePlace, GasStove, HardWood, Microwave, Patio, WasherDryerIncluded, WheelChair, Refrigerator, InternetAccess, VaultedCeilings, SecurityDeposit, NumberOfFloors, WindowUnits, Available, LeaseDuration, LeaseTerm, Heating, SubLeaseDate, Notes, and Images. |
| Commercial interior | Required Title, Description, and Size; optional up to three TypeId values, Suite, Available, LeaseType, Price, RentType, LeaseTerm, SubLeaseDate, integer Procurement, ParkingSpaces, NumberOfFloors, MinDivisible, MaxContiguous, DockDoors, GradeDoors, Taxes, OperationalExpenses, Rail, Fenced, Cranes, TrailerParking, Sprinklers, Power, CeilingHeight, OfficeSpace, Cooling, Lighting, Heating, InternetAccess, WheelChairAccess, SecurityDeposit, Notes, and Images. |
| Each image | Required URL; optional Caption, non-negative Order, and boolean Primary. |
Categories are cfs, cfl, lfs, rfs, and rfr. IDs 56, 57, 67, and 74 use cfs for sale and rfr for rent. Type IDs and labels come from the property catalog. The ten statuses are Incomplete, Active, Closed, Contingent, Contingent Accepting Backup Offers, Expired, Pending, Pending Accepting Backup Offers, Temporary Off Market, and Withdrawn.
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-size units are acres, sqfeet, and meters; building and interior area units are sqfeet and meters. The number is the element text: LotSize uses LotSizeMethod, BuildingSize uses BuildingSizeMethod, and Size, MinDivisible, MaxContiguous, and OfficeSpace use SizeMethod.
The XML Schema checks structure and catalog values. Schematron checks usable coordinates, category/type combinations, non-negative money and area values, residential exterior description, sale price and lot size, residential rental application fee, and required interior details. A leased interior needs rent and a security deposit. Contact fields remain optional.
Private exchange
Send the file to its named recipient.
OpenPMX may contain legal descriptions, income and financing facts, security deposits, application fees, utility obligations, and direct contact details. Keep real files private, use HTTPS, and send them only to the named recipient. The public example uses fictional organizations and a fictional property.
Read about the public OpenPMX Lite feed · Compare the property exchange formats
Related project
OpenPM is a separate legacy application.
OpenPM was PropBot’s PHP property management website. It is deprecated and is not part of the OpenPMX exchange specification.
OpenPM project information