Developer Documentation
Platform Overview
Authentication
API Services
Overview Accounts Accounts: Associations Accounts: Metadata Accounts: Profile Appstore: Users Broker Distributions Broker Tours Consumers Consumers: Linked Agents Contacts Contacts: Activity Contacts: Export Contacts: Tags Contacts: Portal Accounts Developers: Identities Developers: Keys Developers: Authorizations Developers: Billing Summary Developers: Change History Developers: Domains Developers: News Feed Webhooks Developers: Roles Developers: Syndications Developers: Templates Developers: Usage Detail Developers: Usage Summary Devices Flexmls: Email Links Flexmls: Listing Meta Origins Flexmls: Listing Meta Translations Flexmls: Listing Meta Field List Translations Flexmls: Listing Reports Flexmls: Listing Updates IDX IDX Links Listing Carts Listing Carts: Portal/VOW Carts Incomplete Listings Incomplete Listings: Documents Incomplete Listings: Documents Metadata Incomplete Listings: Document Uploads Incomplete Listings: FloPlans Incomplete Listings: Photos Incomplete Listings: Photos Metadata Incomplete Listings: Photo Uploads Incomplete Listings: Rooms Incomplete Listings: Tickets Incomplete Listings: Units Incomplete Listings: Videos Incomplete Listings: Videos Metadata Incomplete Listings: Virtual Tours Incomplete Listings: Virtual Tours Metadata Listings Listings: Clusters Listings: Documents Listings: Documents Metadata Listings: FloPlans Listings: Historical Listings: History Listings: Notes Listings: Search Parameters Listings: Open Houses Listings: Photos Listings: Photos Metadata Listings: Photo Uploads Listings: Document Uploads Listings: Rental Calendar Listings: Rooms Listings: Rules Listings: Tour of Homes Listings: Tickets Listings: Units Listings: Validation Listings: Videos Listings: Videos Metadata Listings: Virtual Tours Listings: Virtual Tours Metadata Listing Meta: Custom Fields Listing Meta: Custom Field Groups Listing Meta: Field Order Listing Meta: Field Relations Listing Meta: Property Types Listing Meta: Rooms Listing Meta: Standard Fields Listing Meta: Units Registered Listings Market Statistics Messages News Feed News Feed: Curation News Feed: Events News Feed: Metadata News Feed: Restrictions News Feed: Schedule News Feed: Settings News Feed: Templates Open Houses Portals Preferences Properties Properties: Clusters Properties Meta: Standard Fields Saved Searches Saved Searches: Provided Saved Searches: Restrictions Saved Searches: Tags Search Templates: Quick Searches Search Templates: Views Search Templates: Sorts Shared Links System Info System Info: Languages System Info: Search Templates
API Explorer
Supporting Documentation
Examples
RESO Web API
RETS
FloPlan
Terms of Use

Alpha Only: This service is subject to change

This service is a work in progress. It is currently subject to change or removal without notice.

Listings: Rules

Rulesets can be defined for each property type in an MLS that govern how listing data is entered into the system. Examples of listing rules are 'required fields' and 'conditionally required fields'.

 
  1. Supported Roles
  2. Available Services
    1. Listing Rules Metadata
    2. Listing Rules
    3. Individual Listing Rule
    4. Listing Rules for a Property Type
    5. Listing Rules for an Action
    6. Listing Rules for a Field
  3. Listings: Rules Description
  4. Expansions
  5. API Explorer
 

Supported Roles

Role Reads Writes Notes
IDX No No
Public No No
VOW No No
Portal No No
Private Yes Yes Special permission is required to modify rules for an MLS.

More information about roles may be found here.

 

Available Services

Listing Rules Metadata

/<API Version>/listings/rules/meta

HTTP Method Description Conditional Notes
GET Gets rules metadata. No
POST Returns HTTP 405 (Method Not Allowed) No Not implemented
PUT Returns HTTP 405 (Method Not Allowed) No Not implemented
DELETE Returns HTTP 405 (Method Not Allowed) No Not implemented

GET Request

Parameters:

 

GET Response

{
        "D": {
                "Success": true,
                "Results": [
                        {
                                "Action": ["ACCEPT", "REJECT", "SET", "SET_DEFAULT", "SET_DISPLAY", "SET_PICKLIST", "RESTRICT_PICKLIST", "SET_READ_ONLY", "SET_REQUIRED", "WARNING"],
                                "ApprovalStatus": ["In Review", "Published", "Deactivated"],
                                "Domain": ["StandardFields", "CustomFields"]
                        }
                ]
        }
}
 
 

Listing Rules

/<API Version>/listings/rules

HTTP Method Description Conditional Notes
GET Returns HTTP 405 (Method Not Allowed) No Not implemented
POST Creates a new listing rule or set of rules for the same PropertyType. No
PUT Returns HTTP 405 (Method Not Allowed) No Not implemented
DELETE Returns HTTP 405 (Method Not Allowed) No Not implemented

POST Request

Request body:

{
   "D":{
     "PropertyType": "A",
     "Group": null,
     "Domain": null,
     "Field": "BathsTotal",
     "Action": "SET_REQUIRED",
     "Expression": "StandardStatus = 'Active'",
     "Summary": "FBS-123, part 1",
     "Description": "We require total baths for active listings because xyz..."
   }
}
 

POST Response

The standard success/fail response with additional error information is returned.

 
 

Individual Listing Rule

/<API Version>/listings/rules/<Rule.Id>

HTTP Method Description Conditional Notes
GET Returns HTTP 405 (Method Not Allowed) No Not implemented
POST Returns HTTP 405 (Method Not Allowed) No Not implemented
PUT Updates an existing rule. No
DELETE Deletes a rule No

PUT Request

Request body:

{
   "D":{
      "Action": "SET_REQUIRED",
      "Order": 1
   }
}
 

PUT Response

The standard success/fail response with additional error information is returned.

 

DELETE Request

Parameters:

 

DELETE Response

The standard success/fail response is returned.

 
 

Listing Rules for a Property Type

/<API Version>/listings/rules/propertytypes/<PropertyType.MlsCode>

HTTP Method Description Conditional Notes
GET Returns all rules for a property type No
POST Adds a new rule to a property type No
PUT Replaces all rules for a property type No
DELETE Returns HTTP 405 (Method Not Allowed) No Not implemented

GET Request

Parameters:

Parameter Required Notes
Pagination No _limit can be set to all to return all records.
 
 

GET Response

{
        "D": {
                "Success": true,
                "Results": [{
                                "Id": 1,
                                "ResourceUri": "/vX/listings/rules/1",
                                "Group": null,
                                "Domain": null,
                                "Field": "BathsTotal",
                                "Action": "SET_REQUIRED",
                                "Expression": "StandardStatus = 'Active'",
                                "ApprovalStatus": "Published",
                                "Editable": false,
                                "ModificationTimestamp": "2012-03-06T16:28:42Z",
                                "CreatedTimestamp": "2012-03-06T16:28:42Z"
                        },
                        {
                                "Id": 2,
                                "ResourceUri": "/vX/listings/rules/2",
                                "Group": null,
                                "Domain": null,
                                "Field": "ListPrice",
                                "Action": "SET_REQUIRED",
                                "Expression": null,
                                "ApprovalStatus": "In Review",
                                "Editable": true,
                                "ModificationTimestamp": "2012-03-06T16:29:21Z",
                                "CreatedTimestamp": "2012-03-06T16:29:21Z"
                        }
                ]
        }
}
 

POST Request

Request body:

{
   "D": {
     "Group": null,
     "Domain": null,
     "Field": "BathsTotal",
     "Action": "SET_REQUIRED",
     "Expression": "StandardStatus = 'Active'"
   }
}
 

POST Response

The standard success/fail response with additional error information is returned.

 

PUT Request

Request body:

{
   "D": [
      {
         "Group": null,
         "Domain": null,
         "Field": "BathsTotal",
         "Action": "SET_REQUIRED",
         "ApprovalStatus": "Published",
         "Expression": "StandardStatus = 'Active'"
      },
      {
         "Group": null,
         "Domain": null,
         "Field": "ListPrice",
         "Action": "SET_REQUIRED",
         "Expression": null
      }
   ]
   
}
 

PUT Response

The standard success/fail response with additional error information is returned.

 
 

Listing Rules for an Action

/<API Version>/listings/rules/propertytypes/<PropertyType.MlsCode>/actions/<Rule.Action>

HTTP Method Description Conditional Notes
GET Returns all rules for a specific action and property type No
POST Returns HTTP 405 (Method Not Allowed) No Not implemented
PUT Returns HTTP 405 (Method Not Allowed) No Not implemented
DELETE Returns HTTP 405 (Method Not Allowed) No Not implemented

GET Request

Parameters:

Parameter Required Notes
Pagination No _limit can be set to all to return all records.
 
 

GET Response

See the GET request section for for the Listing Rules for a Property Type service.

 

Listing Rules for a Field

/<API Version>/listings/rules/propertytypes/<PropertyType.MlsCode>/fields/<Rule.FieldName>

HTTP Method Description Conditional Notes
GET Returns all rules for a specific field and property type No
POST Returns HTTP 405 (Method Not Allowed) No Not implemented
PUT Returns HTTP 405 (Method Not Allowed) No Not implemented
DELETE Returns HTTP 405 (Method Not Allowed) No Not implemented

GET Request

Parameters:

Parameter Required Notes
Pagination No _limit can be set to all to return all records.
 
 

GET Response

See the GET request section for for the Listing Rules for a Property Type service.

 

Listing: Rules Description

Attribute Data Type Writeable Required Description
Id Character No No The unique id for the rule.
ResourceUri Character No No The URI to the individual rule.
Order Integer Yes No The position of the rule in the full result set for a property type. The value must be greater than 0, and any number higher than the total number of rules will position the rule at the default location: the last position in the list.
Domain Character Creation only Yes May be one of the following: StandardFields or CustomFields.
Group Character Creation only If Domain is CustomFields The custom fields group for the field.
FieldName Character Creation only Yes The standard or custom field name the Action applies to.
Action Character Yes Yes May be one of the following: ACCEPT, REJECT, SET, SET_DEFAULT, or SET_REQUIRED.
Expression Character Yes No A validation Expression for setting field values or conditionally applying a rule Action.
ApprovalStatus Character Yes No May be one of the following: In Review, Published, or Deactivated. New rules are In Review by default and only Published rules are active during validation processing.
Editable Boolean No No Indicates whether the current user may edit this rule.
ModificationTimestamp Timestamp No No The date and time when the history event occurred.
CreatedTimestamp Timestamp No No The date and time when the history event occurred.
Status Character No No Fatal, Warn or Dropped. This attribute is only present in the Errors attribute when validating requests.
Summary Character Yes No A brief note about the origins of or reasoning behind a rule, for example a reference to related issues in an issue or project tracker. Available via Summary expansion.
Description Character Yes No A potentially detailed note about the origins of or reasoning behind a rule. Available via Description expansion.
Source Character No No An indication of where the rule came from, for example whether it was manually entered into the API or populated via an automated process. Available via Source expansion.
 

Actions

Name Expression example Description
ACCEPT StandardStatus = 'Active' When true, the field is accepted a valid and all subsequent validation rules for this field will be skipped. However, any SET actions will still be enforced.
REJECT ListPrice < 0 When true, the field is rejected and all subsequent validation rules for this field including SET actions will be skipped.
RESTRICT_PICKLIST ('Fargo','Moorhead') This is the counterpart to SET_PICKLIST, but validates to support all values in the PICKLIST except for what's in the expression list.
SET Acres / 43560 Set a value to be saved. This overrides any value specified by a previous rule.
SET_DEFAULT 'Active' Prefill the value on a new listing.
SET_DISPLAY .TRUE. Indicator that this field should display to the user on the client. The API does not validate this expression.
SET_PICKLIST ('Fargo','Moorhead') On a field that has a PICKLIST, this action will fail validation if the field value is not a part of the subset provided. The values in the expression must be members of the field's PICKLIST.
SET_READ_ONLY .TRUE. Indicator that this field is not allowed to change by the user. The field will fail validation if the user has updated the value.
SET_REQUIRED .TRUE. The FieldName must have a value.
WARNING .ENTRY. < 0 When true, a warning message will be included in the response for FieldName, but validation will still succeed.
 

Expansions

Expansion Roles Single Record Only? Selection Support? Description
Summary Private No No Include the Summary attribute in results.
Description Private No No Include the Description attribute in results.
Source Private No No Include the Source attribute in results.
 

API Explorer

The API Explorer does not currently support this service.