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: Mapping Layers Flexmls: Mapping Shapegen 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: Floor Plans 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: Floor Plans 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 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 Overlays Overlays: Shapes Portals Preferences 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
Supporting Documentation
Examples
RESO Web API
RETS
FloPlan
Terms of Use

Custom Fields

Listing Expansions

When using this meta data in conjunction with listing data, be sure to use the CustomFieldsRaw or CustomFieldsExpandedRaw expansions instead of the CustomFields or CustomFieldsExpanded expansions.

The Custom Fields API allows retrieval of grouped lists of supported custom fields.

  1. Supported Roles
  2. Available Services
    1. All Custom Fields
    2. Individual Custom Fields
    3. Field Lists for a Custom Field
    4. Last Updated Timestamp
  3. Response Description
  4. Expansions
 

Supported Roles

Role Reads Writes Notes
IDX Yes No
Public Yes No
VOW Yes No
Portal Yes No
Private Yes No

More information about roles may be found here.

 

Available Services

All Custom Fields

URI: /<API Version>/customfields

HTTP Method Description Conditional Notes
GET Returns custom field metadata Yes
POST,PUT,DELETE Returns HTTP 405 (Method Not Allowed) No Not implemented

GET Request

Parameters:

Parameter Description Required
_mls A comma-separated list of MLS IDs the custom fields should be common across No

GET Response

Example:

{
    "D": {
        "Success": true,
        "LastUpdated": "2012-11-01T20:52:13Z",
        "Results": [
          {
            "General Property Description": {
              "Fields": {
                "Directions": {
                  "ResourceUri": "/v1/customfields/Directions",
                  "HasList": false,
                  "Label": "Directions",
                  "MaxListSize": 0,
                  "Searchable": true,
                  "Type": "Character",
                  "MlsVisible": ["A", "G", "M"],
                  "AllMlsVisible": ["A", "G", "M", "Z"]
                },
                "Flood Plain": {
                  "ResourceUri": "/v1/customfields/Flood Plain",
                  "HasList": true,
                  "MultiSelect": false,
                  "Label": "Flood Plain",
                  "MaxListSize": false,
                  "Searchable": true,
                  "Type": "Character",
                  "MlsVisible": ["A", "G", "I", "J", "M"],
                  "AllMlsVisible": ["A", "G", "I", "J", "M", "Z"]
                },
                "Taxes": {
                  "ResourceUri": "/v1/customfields/Taxes",
                  "HasList": false,
                  "Label": "Taxes",
                  "MaxListSize": 0,
                  "Searchable": true,
                  "Type": "Decimal",
                  "MlsVisible": ["B", "C", "E"],
                  "AllMlsVisible": ["B", "C", "E", "Z"]
                }
              },
              "Label": "General Property Description"
            }
          }
        ]
    }
}
 

Individual Custom Field

URI: /<API Version>/customfields/<CustomField.FieldName>

HTTP Method Description Conditional Notes
GET Returns metadata for an individual custom field Yes
POST,PUT,DELETE Returns HTTP 405 (Method Not Allowed) No Not implemented

GET Request

Parameters:

Parameter Description Required
_mls A comma-separated list of MLS IDs the custom fields should be common across No

GET Response

Example:

{
    "D": {
        "Success": true,
        "Results": [
          {
            "Taxes": {
              "ResourceUri": "/v1/customfields/Taxes",
              "HasList": false,
              "Label": "Taxes",
              "MaxListSize": 0,
              "Searchable": true,
              "Type": "Decimal",
              "MlsVisible": ["B", "C", "E"],
              "AllMlsVisible": ["B", "C", "E", "Z"]
            }
          }
        ]
    }
}
 

Field Lists for a Custom Field

/<API Version>/customfields/<CustomField.FieldName>/FieldList
/<API Version>/mls/<MlsId>/customfields/<CustomField.FieldName>/FieldList

HTTP Method Description Conditional Notes
GET Returns the FieldList values for a custom field 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
_mls No
Standard search and paging syntax No Only Name and AppliesTo can be searched (Name Eq 'Larg*' And AppliesTo Eq 'A').
 
 

GET Response

{
    "D": {
        "Success": true,
        "Results": [
          {
             "Name": "Large",
             "Value": "LG",
             "AppliesTo": ["A"]
          },
          {
             "Name": "Medium",
             "Value": "MD",
             "AppliesTo": ["B"]
          },
          {
             "Name": "Small",
             "Value": "SM",
             "AppliesTo": ["A","B"]
          }
        ]
    }
}
 
 

Last Updated Timestamp

/<API Version>/customfields/lastupdated
/<API Version>/mls/<MlsId>/customfields/lastupdated

HTTP Method Description Conditional Notes
GET Returns the LastUpdated attribute, which notes the last time the data provided by this service was updated. Yes
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,
    "LastUpdated":"2012-11-01T20:55:02Z"
  }
}
 
 

Response Format

The top level LastUpdated attribute is only available for the All service and reflects the last time any fields in the result list was updated.

Attribute Description
ResourceUri The URI to retrieve the field data from.
Type The data type of the field.
Label The human-friendly label for the standard field.
Searchable true if the listings can be filtered by the field.
MlsVisible.PropertyTypes An array of PropertyType.MlsCode detailing which property types corresponding listing data will be visible under.
AllMlsVisible.PropertyTypes An array of PropertyType.MlsCode detailing which property types corresponding listing data will be visible under, including inactive property types.
HasList true if the field has a FieldList attribute.
MultiSelect true if the field has a FieldList attribute and listing data for this field can have multiple values from this list.

The Defaults attribute is only available for Date types:

Attribute Description
Defaults.FromQuantity The quantity to apply to FromUnit.
Defaults.FromUnit One of the following: day, month, year.
Defaults.ToQuantity The quantity to apply to ToUnit.
Defaults.ToUnit One of the following: day, month, year.

The FieldList attribute is only present when retrieving an individual field for data where HasList=true:

Attribute Description
FieldList.Name The human friendly name for the field.
FieldList.Value The searchable code for the field.
FieldList.AppliesTo An array of PropertyType.MlsCode the field list item is valid under.

When the MultiSelect attribute for a field is true, the listing may have multiple values from FieldList. In the Listing payload, the field is represented as an associative array. Below is an example of the PoolFeature field for a listing.

{
    "D": {
        "Results": [
            {
                "StandardFields": {
                    "PoolFeatures": {
                        "Private": true
                    }
                }
            }
        ],
        "Success": true
    }
}
 

See the Listing Search Parameters page for details on using this field with the _filter parameter.

 

Expansions