MLS draft
A pre-filled draft of the MLS's own input form, for an agent to enter by hand where the MLS takes no direct submissions yet.
Direct MLS connections open with MLS partners, market by market. Until a market has one, the agent enters the listing in the MLS from the draft, and nothing is typed twice from scratch. The draft follows the MLS's current rules, the same ones that hold a listing for a missing field.
The flow
- Step
- 1. Open the draft
- What happens
- On the listing's page in the console, each MLS the listing goes to has an MLS draft: that MLS's input form, in its order and with its field names, filled from the listing.
- Step
- 2. Fix what is flagged
- What happens
- Required fields the listing lacks are marked missing, with the field to add. Remarks longer than the MLS takes are flagged. Fields the platform does not capture, such as the parcel number, say Enter in the MLS.
- Step
- 3. Take it to the MLS
- What happens
- Copy each value with its button, or export the draft as CSV, RESO JSON or a printable sheet. Photos download in the listing's order, scaled to the MLS's size. Each export adds a line to the listing's history.
- Step
- 4. Record the MLS number
- What happens
- After submitting in the MLS, the agent records the MLS number. That MLS's delivery note and the history say so, and listing.updated webhooks fire.
Sample MLS forms
Each sample MLS has its own field order, names, remarks limit and photo size. All four are invented for the demo.
- MLS
- Demo MLS Austin
- Fields
- 22
- Remarks limit
- 1000 characters
- Photos
- First 40
- Longest edge
- 2048 px
- MLS
- Demo MLS Charlotte
- Fields
- 21
- Remarks limit
- 1500 characters
- Photos
- First 50
- Longest edge
- 2400 px
- MLS
- Demo MLS Phoenix
- Fields
- 20
- Remarks limit
- 1000 characters
- Photos
- First 50
- Longest edge
- 1920 px
- MLS
- Demo MLS Tampa
- Fields
- 21
- Remarks limit
- 1800 characters
- Photos
- First 40
- Longest edge
- 2048 px
Demo MLS Austin, in order
- Order
- 1
- MLS field
- Status
- Holds
StandardStatus
- Order
- 2
- MLS field
- Property Sub Type
- Holds
PropertySubType
- Order
- 3
- MLS field
- List Price
- Holds
ListPrice
- Order
- 4
- MLS field
- Listing Contract Date
- Holds
ListingContractDate
- Order
- 5
- MLS field
- Expiration Date
- Holds
ExpirationDate
- Order
- 6
- MLS field
- Street #
- Holds
StreetNumber
- Order
- 7
- MLS field
- Street Name
- Holds
StreetName
- Order
- 8
- MLS field
- City
- Holds
City
- Order
- 9
- MLS field
- State
- Holds
StateOrProvince
- Order
- 10
- MLS field
- Zip
- Holds
PostalCode
- Order
- 11
- MLS field
- County
- Holds
CountyOrParish
- Order
- 12
- MLS field
- Tax ID
- Holds
ParcelNumber
- Order
- 13
- MLS field
- Bedrooms
- Holds
BedroomsTotal
- Order
- 14
- MLS field
- Full Baths
- Holds
BathroomsFull
- Order
- 15
- MLS field
- Half Baths
- Holds
BathroomsHalf
- Order
- 16
- MLS field
- Living Area SqFt
- Holds
LivingArea
- Order
- 17
- MLS field
- Lot Size Acres
- Holds
LotSizeAcres
- Order
- 18
- MLS field
- Year Built
- Holds
YearBuilt
- Order
- 19
- MLS field
- Public Remarks
- Holds
PublicRemarks
- Order
- 20
- MLS field
- Listing Agent
- Holds
ListAgentFullName
- Order
- 21
- MLS field
- Listing Office
- Holds
ListOfficeName
- Order
- 22
- MLS field
- On Market Date
- Holds
OnMarketDate
Exports
- Format
- CSV
- What is in it
- One row per field in the MLS's order:
Order,Field,RESO name,Value,Required,Note.
- Format
- RESO JSON
- What is in it
- The filled fields under RESO Data Dictionary names, with
ListingKey. Blank fields are left out.
- Format
- Printable sheet
- What is in it
- The form on one page, required fields starred, for an assistant entering it.
- Format
- Photos
- What is in it
- Each photo as JPEG, numbered in the listing's order, scaled down to the MLS's longest edge.
Reading it back
Once recorded, the owner's GET /api/v1/listings/{key} carries mlsNumbers (destination id to MLS number), and the delivery for that MLS says who entered it:
{
"listingKey": "OL-XXXXXX",
"value": [
{
"destId": "mls-austin",
"state": "delivered",
"at": "2026-10-27T15:04:00.000Z",
"note": "Entered by the agent as MLS# 4471902",
"destination": "Demo MLS Austin",
"kind": "mls"
}
]
}A listing held for an MLS (members only, a missing field, a send back) cannot be marked entered there. A listing entered in the MLS first, which passed it on, needs no draft.
One path per listing per MLS. Once the platform has sent a listing to an MLS directly, that MLS's draft reads No draft needed and its exports are refused. Once the agent records an MLS number, the platform never sends that listing to that MLS itself, so the MLS never holds two copies.