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:

curl -H "Authorization: Bearer $LISTONCE_KEY" .../api/v1/listings/OL-XXXXXX/deliveries
{
  "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.