MLS IDX API Documentation

Recommended Time to Pull Data

Data collection, synchronization, and distribution through the MLS IDX API occur through centralized processes that run during the early hours of each day. To ensure you are receiving the most accurate and up-to-date listing information, and to avoid possible inconsistencies, it is recommended that clients begin pulling data from MLS IDX API feeds after 10:00 AM.

Data Feed Overview

The MLS IDX API supports five core transactions: Login, Metadata, Search, GetObject, and Logout. These transactions are built on Representation State Transfer (REST) architecture, ensuring smooth and reliable data exchange between the MLS IDX API server and the websites or applications consuming the data.

All transactions can be performed by clients using either HTTPS GET or HTTPS POST methods.

Security Requirements:

  • The minimum supported TLS version is TLS v1.2.
  • All incoming requests must be made over HTTPS to ensure secure data transfer and compliance with modern encryption standards.

RETS Support

The MLS IDX API follows the Real Estate Transaction Standard (RETS) version 1.7.2 as closely as possible. However, there are a few important differences between this service and a fully certified RETS server:

  • Compact and Compact-Decoded Formats
    These formats are currently available only for Property searches. Compact responses use the RESO Data Dictionary, which as of Version 1.0 only provides a Property dictionary. Once Agent and Office dictionaries are finalized, support for these formats will be added.
  • Query Restrictions
    Ad-hoc querying of records is not supported. Any filtering of results must be configured by the feed owner before data is retrieved.
  • Select Limitations
    The Select function is only supported for Property queries in Compact or Compact-Decoded format.
  • Server Limits
    A strict limit is enforced on the number of details that can be returned in a single Search request. Any Search request exceeding this server maximum will be rejected.

Authentication

All access to the MLS IDX API requires authentication using digest authentication (RFC 2617, HTTP Authentication).

  • Login Requirement
    A client must issue a Login request before making any other request. The Login transaction validates the provided credentials and initiates a session.
  • Session Management
    Once authenticated, session control may be handled through HTTP cookies or other supported methods. Clients must support at least session control via cookies.
  • Credentials
    Each registered MLS IDX API user is assigned unique authentication credentials when their data feed is set up. These credentials identify the user and grant access to all property, agent, and office data available to them.
  • Subsequent Requests
    All requests for Metadata, Search, GetObject, and Logout must include both the Digest Authentication authorization header and the active session cookie.

Login Transaction

Description

Before any other request can be made, a client must issue a Login request. The Login transaction verifies the provided credentials and establishes a session.

Session control may be managed through HTTP cookies or other supported methods, but all clients must support cookie-based session handling.

The server’s response to the Login request includes all the necessary details for subsequent API calls. This information may include:

  • URLs for other supported transactions
  • Identity details associated with the destination owner
  • Metadata version and timestamp information required by the system

Endpoint

https://sample.mlsidxapi.com/Login.svc/Login

Request Arguments

The Login transaction does not require any request arguments.


Login Response Body Format

A successful Login response will return an XML structure similar to the following:

<?xml version="1.0" encoding="UTF-8"?>
<RETS ReplyText="Operation Successful" ReplyCode="0">
  <RETS-RESPONSE>
    Broker=(Destination Owner ID)
    MemberName=(Destination Owner Name)
    MetadataVersion=(Current metadata version number)
    MinMetadataVersion=(Earliest version of metadata supported by server)
    MetadataTimestamp=(Timestamp of current version of metadata)
    MinMetadataTimestamp=(Timestamp of earliest version of metadata supported by server)
    User=(Destination Owner ID,,, Destination Owner ID)
    GetObject=(URL to use for GetObject requests)
    Login=(URL to use for Login requests)
    Logout=(URL to use for Logout requests)
    Search=(URL to use for Search requests)
    GetMetadata=(URL to use for GetMetadata requests)
  </RETS-RESPONSE>
</RETS>

Important Notes

A successful Login response header includes a Set-Cookie with an X-SESSIONID value. This X-SESSIONID must be submitted with every request made after logging in.

Clients must include any cookies set by the server in subsequent requests. See the official RETS Specifications for details.

Metadata Transaction

Description

The Metadata transaction is used to retrieve information about the structure and definitions of the data available through the MLS® IDX API. Metadata allows clients to properly format listing data for display and to organize it efficiently for future retrieval and storage.

End Point

https://sample.mlsidxapi.com/Metadata.svc/GetMetadata
ArgumentTypeDescriptionDefaultRequiredSupported Values
TypeStringSelects the type of metadata to be returned RETS
1.7.2
METADATA-SYSTEM
METADATA-RESOURCE
METADATA-CLASS
METADATA-LOOKUP
METADATA-LOOKUP_TYPE
FormatStringSelects the supported data return format for the query responseSTANDARD-XML STANDARD-XML COMPACT
IDStringList of the names of the parent elements for the desired element, separated by colons

Resource:Lookup
Eg;
Property:MesureUnit
0 – request for all Type metadata contained within that level
*. – request is for all Type metadata contained within that level and within the requested Type (i.e. all metadata)
Resource:Class
CultureStringSelect the language of the resultsen-CAen-CA
fr-CA

Note: The metadata ID for METADATA-SYSTEM and METADATA-RESOURCE must be 0 or *.

Note: METADATA-LOOKUP and METADATA-LOOKUP_TYPE requests only support STANDARD-XML format

Metadata Examples

ActionSyntax
Retrieve all Resource metadata, all levels Type=METADATA RESOURCE&Format=COMPACT&ID=*
Retrieve all Class metadata, class level onlyType=METADATA CLASS&Format=COMPACT&ID=*
Retrieve Class metadata for a specific resourceType=METADATA CLASS&Format=COMPACT&ID=Property
Retrieve Table metadata for a specific resource and classType=METADATA TABLE&Format=COMPACT&ID=Property:Property
Retrieve Lookup metadata for a specific resourceType=METADATA-LOOKUP&Format=STANDARD-
XML&ID=Property
Retrieve Lookup metadata for a specific
resource and lookup type
Type=METADATA LOOKUP_TYPE&Format=STANDARD XML&ID=Property:Crop

Server Response Header Fields

Request ArgumentTypeDescriptionDefaultRequiredSupported Values
Content-typeStringMedia type of the underlying dataRETS 1.7.2text/xml

Search Transactions and Data Synchronization

The MLS® IDX API allows clients to request and receive MLS® listing data for use on their websites and applications. This data must be refreshed regularly, as records are continuously added, updated, or removed.

The set of records available to each client is determined by:

  • The type of destination making the request
  • The owner of the destination
  • The approval settings of boards, associations, brokerages, and/or salespersons (where applicable)

The MLS IDX API does not support ad-hoc queries against its data. Search filtering — such as restricting results to specific property types or price ranges — is not part of the Search transaction itself. Instead, filters are configured when a data feed is registered or edited.

Search transactions can be performed against three possible resource types: Office, Agent, and Property. The search process is the same for each resource:

  1. Retrieve all active records updated since a specified date/time
  2. Retrieve a master list of all active records (IDs and LastUpdated values)
  3. Compare the master list to the client’s local data store by matching IDs, identifying any records that are missing or have different LastUpdated values
  4. Retrieve the set of records by ID

Step 1: Retrieve All Active Records Updated Since a Specific Date/Time

It is neither necessary nor efficient to pull full property details for every active record on each request. Instead, clients should request only those records that have been updated since the last retrieval.

Including a LastUpdated query parameter in a search will return complete record details for all listings that have been updated since the specified date/time.

The following parameters are supported when using LastUpdated queries:

  • Limit – Controls how many results are returned per page
  • Offset – Specifies the starting point for the results, allowing pagination
  • Count – Returns a count of matching records along with the results

When Count is requested, the response will include a Pagination element containing:

  • TotalRecords
  • Limit
  • Offset
  • RecordsReturned
  • TotalPages

Query Syntax:

LastUpdated=RETSDateTime

Sample Result (Standard-XML):

<?xml version="1.0"?>
<RETS ReplyText="Operation successful" ReplyCode="0">
  <RETS-RESPONSE xmlns="MLSIDXAPI.Search.Property">
    <Pagination>
      <TotalRecords>41</TotalRecords>
      <Limit>10</Limit>
      <Offset>21</Offset>
      <TotalPages>5</TotalPages>
      <RecordsReturned>10</RecordsReturned>
    </Pagination>
    <PropertyDetails>
      <ID>10494823</ID>
      <LastUpdated>Tue, 07 Jun 2011 04:20:24 GMT </LastUpdated>
      <ListingID>55131841</ListingID>
      <Building>
        <BathroomTotal>1</BathroomTotal>
        <BedroomsTotal>3</BedroomsTotal>
        ...

Sample Result (Compact)

<?xml version="1.0" encoding=UTF-8"?>
<RETS ReplyText="Operation successful" ReplyCode="0">
  <COUNT Records="40"/>
  <DELIMITER value="09"/>
  <COLUMNS> ArchitecturalStyle AttachedGarageYN BathroomsHalf</COLUMNS>
  <DATA> False 1 3 </DATA>
  <DATA> False 1 3 </DATA>
  ...

Step 2. Retrieve a master list of all active records

Master Record List Search

This type of search provides clients with a complete master list of all records that should exist in their data store. Each record in the list includes two key values:

  • Record ID
  • LastUpdated timestamp

By comparing this master list to the client’s local data store, it becomes possible to identify which records need to be updated, deleted, or inserted.

  • The master list search always returns a full set of records.
  • Paging with Limit and Offset is not supported in Standard-XML, but it is supported for Compact format queries.

Query Syntax:

(ID=*)

Compact Format Option:
When requesting data in Compact format, the master list can also be retrieved by selecting only the ListingKey and ModificationTimestamp:

SELECT=(ListingKey,ModificationTimestamp)

This will return all records, regardless of any query supplied.

Sample Result (Standard-XML)

<?xml version="1.0"?>
<RETS ReplyText="Operation successful" ReplyCode="0">
<RETS-RESPONSE xmlns="MLSIDXAPI.Search.Property">
<Pagination>
<Property LastUpdated="THU,03 DEC 2026 01:55:46 GMT ID="10166883"/>
<Property LastUpdated="THU,03 DEC 2026 01:54:42 GMT ID="10166883"/>
<Property LastUpdated="THU,03 DEC 2026 01:53:06 GMT ID="10166883"/>
<Property LastUpdated="THU,03 DEC 2026 01:52:12 GMT ID="10166883"/>
<Property LastUpdated="THU,03 DEC 2026 01:51:07 GMT ID="10166883"/>
...

Sample Result (Compact)

<?xml version="1.0" encoding=UTF-8"?>
<RETS ReplyText="Operation successful" ReplyCode="0">
  <COUNT Records="40"/>
  <DELIMITER value="09"/>
  <COLUMNS> ListingKey ModificationTimestamp>
  <DATA> 799656 24/09/2026 10:05:23 AM</DATA>
  <DATA> 799656 24/09/2026 10:12:17 AM</DATA>
  <DATA> 799656 24/09/2026 10:25:32 AM</DATA>
  <DATA> 799656 24/09/2026 10:38:23 AM</DATA>
  <DATA> 799656 24/09/2026 10:44:34 AM</DATA>
  ...

Step 3. Compare Master List to Client Data Store

Any properties, offices, or agents in a client’s local data store that are not present in the master list must be removed.

For example, the master list will include a property only while it is active on the market and approved for distribution. Once the property is no longer active (e.g., sold, cancelled, or otherwise removed), it will be excluded from the master list and should be deleted from the client’s data store.

The master list also serves as a tool for data integrity. Steps 1 and 2 of the synchronization process should typically be enough for clients to maintain accurate datasets for all resources. However, if discrepancies arise between the LastUpdated values in the master list and the client’s local store (such as a missing or outdated property), these issues can be corrected in Step 4.

Step 4. Retrieve Records by ID

This search method allows clients to request records by specifying either a single ID or a comma-separated list of IDs. The server will return the complete set of matching records, if available.

Paging through results with Limit and Offset is not supported for this type of query.

Query Syntax: (ID=1*9Digit (,1*9Digit))

Sample Result (Standard-XML)

<xml version="1.0"?>
<RETS ReplyText="Operation successful" ReplyCode="0">
  <RETS-RESPONSE Xmlns="MLSIDXAPI.Search.Property">
    <PropertyDetails>
      <ID>10166883</ID>
      <LastUpdated>Thu, 03 Dec 2026 01:43:14 GMT</LastUpdated>
      <ListingID>41111923</ListingID>
      <Building>
         <BathroomTotal>0</BathroomTotal>
         ... 

Sample Result (Standard-XML)

<xml version="1.0" encoding="UTF-8"?>
<RETS ReplyText="Operation successful" ReplyCode="0">
  <COUNT Records="1"/>
    <DELIMITER value="09"/>
      <COLUMNS> ArchitecturalStyle AttachedGarageYN BathroomTotal                                    </COLUMNS>
         ...
      <DATA> False 1 3 </DATA>
         ...

Property Photos Handling

Search transactions performed against the Property resource will return property details. However, photos are not included in full detail and must be retrieved separately using the GetObject transaction, along with the data provided in the Search transaction.

Once you’ve determined that full details for a property need to be requested, property photos should be managed as follows:

Adding Property Photos (Initial Download)

When a new property is added to the client’s data store, all related property photos should also be retrieved.

  • Use the GetObject transaction to request all photos for the property.
  • When requesting all photos, they are returned as a single multipart MIME object.
  • Clients must parse this object and extract individual photos, which are separated by a boundary marker (--boundary) and a content header.

Refer to the GetObject section for examples on how to request all photos for a property and how to handle multipart image objects.

Updating Property Photos

If a property is updated in the client’s data store, you must also check whether its photos have changed.

  • Standard-XML Search: Compare the PhotoLastUpdated value for each photo with the value stored locally. If different, request and replace that specific photo using GetObject.
  • Compact Search: Since Compact responses do not include individual photo attributes, compare the PhotosChangeTimestamp at the property level. If it differs, delete all local property photos and re-download them using GetObject.

Adding New Property Photos

If new property photos have been added since your last update:

  • Standard-XML Search: Compare the SequenceID values of each photo against those in the local data store. If a new one is detected, download it using GetObject.
  • Compact Search: Compare the PhotosChangeTimestamp. If it has changed, delete all local photos and re-download them all using GetObject.

Removing Property Photos

If photos have been removed:

  • Standard-XML Search: Compare the SequenceID values of each property photo against the client’s local data. If a photo is missing, delete it from the local store.
  • Compact Search: Compare the PhotosChangeTimestamp. If it has changed, delete all local photos and re-download the complete set using GetObject.

Default Property Photo

Each property has a default photo, identified by SequenceID = 0. Clients with specific constraints may choose to use only the default photo.

Refer to the GetObject section for syntax examples on requesting:

  • All property photos
  • A specific property photo
  • The default property photo

8. Search Transaction

The Search transaction is used to query and retrieve available offices, agents, and properties from the MLS® IDX API.

https://sample.MLSIDXAPI.com/Search.svc/Search

Request Arguments

ArgumentTypeDescriptionDefaultRequiredSupported Values
FormatStringSpecifies the data return format to be used for the query response.Sandard-XMLStandard-XML
Standard-XML-Encoded
COMPACT
COMPACT-Decoded
SearchTypeStringSpecifies the resource type to be returned in the query response.RETS 1.7.2Office
Agent
Property
ClassStringDefines the class of data within the selected SearchType.RETS 1.7.2Office
Agent
Property
QueryTypeStringSpecifies the language in which the query is submitted. RETS 1.7.2DMQL2
QueryStringDefines the query statement that will be executed by the server.RETS 1.7.2(ID=*)or(ID=0+)
(,ID=1*9Digit (,1*9Digit))
LastUpdated=RETSDateType)
SelectStringSpecifies which fields should be returned in the query response. (Supported in COMPACT format only).All elementsSee list of elements in Appendix J – Property Details Payload (Compact)
CountIntegerDetermines whether the server response should include a count of matching records.10 – results only
1 – record count and results
2 – record count only
LimitStringSpecifies a maximum number of records to be returned in the search results.“None”“None”
1*9Digit (greater than 0, maximum of 100)
OffsetIntegerSpecifies an offset value, instructing the server to begin returning results from a position other than the first record in the matching set.1“None”
1*9Digit (greater than 0, maximum of 100)
CultureStringDefines how the results are localized, such as adapting data to a specific region or language setting.en-CAen-CA
fr-CA

Query Parameters Supported

Query ParameterTypeResourceRequiredDescription
LastUpdatedRETSDateTimeOffice
Agent
Property
Limits response to only those resources that have been updated since the supplied date/time.
Example: 2011-05-08T22:0:17Z
ID1*9Digit
(,1*Digit)
– or –
String
Office
Agent
Property
MLS® IDX APISingle or comma separated list of IDs to include in the response.

– or –
Asterisk (*) or (0+), which signifies all available records will be returned

Note

When specific records are requested using the ID parameter, the LastUpdated filter is ignored. Matching records will be returned regardless of their last update time.

Select Parameters Supported

This server implementation does not support customizing the response content using Select arguments.

Search Response Body Format

<?xml version"1.0" encoding="UTF-8"?>
<RETS ReplyText="Operation Successful" ReplyCode="0">
      <RETS-RESPONSE>
           (<Pagination>)
           (Office Payload)
           (OfficeDetails Payload)
           (Agent Payload)
           (AgentDetails Payload)
           (Property Payload)
           (PropertyDetails Payload)
       </RETS-RESPONSE>
</RETS>

Pagination

When the server receives a request asking for record count to be provided, a Pagination element is returned as part of the response.

AttributeDescription
Total RecordsIndicates the total number of records that match the search criteria.
LimitSpecifies the number of records returned in a single page. This value equals the Limit parameter if provided; otherwise, it defaults to the system’s standard page size.
OffsetIndicates the starting record position within a set of paged search results.
TotalPagesIndicates the total number of pages available based on the search criteria and pagination settings.
RecordsReturnedSpecifies the number of records returned in the current result set.

Difference Between Compact and Standard-XML

Compact format payloads contain tabular data wrapped in an XML structure, following the RETS 1.7.2 standard (see RESO specifications). A <COLUMNS> element defines the table headers, and each record is represented as a single, flat <DATA> element.

Because the Compact format is consistent across RETS servers, many commonly available RETS tools and libraries are designed to work directly with it. The MLS IDX API provides Compact data as described in the RESO Data Dictionary 1.0 (see RESO Data Dictionary). With the exception of some legacy analytics elements (retained for backward compatibility), all payload elements originate from this dictionary.

Compact support for Agent and Office searches will be introduced once the RESO Data Dictionary includes finalized standards for these resources.

Limitations:
The RESO Data Dictionary 1.0 has a few known limitations, such as:

  • Support for a maximum of 2 agents per property
  • Support for up to 20 rooms per property
  • Several data elements that are available in Standard-XML format are not currently represented in the Data Dictionary

Standard-XML

Standard-XML is the default format for search transactions. Payloads contain fully structured XML that mirrors the data provided by boards and associations as closely as possible.

Unless you are specifically using RETS tools that support only Compact format, it is recommended to use Standard-XML whenever possible for maximum compatibility and accuracy.

Difference Between STANDARD-XML and STANDARD-XML-Encoded

The STANDARD-XML format returns field data in a fully expanded, human-readable form. In contrast, the STANDARD-XML-Encoded format returns data in coded form, with a matching lookup available in the metadata.

The corresponding LookupType table contains four values:

  • MetadataEntryID
  • Value
  • LongValue
  • ShortValue

Example:

  • A property might have a LandscapeFeatures value of “Vegetable garden”.
  • If requested in STANDARD-XML, the response will return just the text value:Vegetable garden
  • If requested in STANDARD-XML-Encoded, the response will return the text value along with the associated code and the name of the lookup table that contains the Value/LongValue pairs.

Comparison:

  • STANDARD-XML provides a lighter payload, making storage and display simpler.
  • STANDARD-XML-Encoded allows for more normalized data storage, enabling more advanced and flexible search capabilities.
STANDARD-XML<LandscapeFeatures>Landscaped, Vegetable Garden</LandscapeFeatures>
STANDARD-XML-Encoded<LandscapeFeatures ID=”1.3″ LookupName=”LandscapeFeatures”>Landscaped, Vegetable garden </LandscapeFeatures>

Measurement Handling in STANDARD-XML vs. STANDARD-XML-Encoded

Another key difference between STANDARD-XML and STANDARD-XML-Encoded formats is how measurement values are returned:

  • In STANDARD-XML, measurements are provided as a fully formatted string, ready for direct display (e.g., “1200 sq ft”).
  • In STANDARD-XML-Encoded, measurements are separated into two parts: a numeric value and a unit type ID.

The Unit attribute returned in the encoded format can be cross-referenced with the values provided by the MeasureUnit lookup in the metadata.

STANDARD-XML<SizeFrontage>125 sqft</SizeFrontage>
STANDARD-XML-Encoded<SizeFrontage Unit=”1″>125</SizeFrontage>

9. GetObject Transaction

The GetObject transaction is used to retrieve structured information associated with known system entities. This includes multimedia files such as property photos, documents, and other object-related data.

Objects requested and returned through this transaction are delivered as MIME media types. When multiple images are included in a response, they are separated by a boundary marker and associated content headers (such as Content-TypeContent-IDObject-ID, and Content-Description). The final image in the set is followed by a closing boundary marker.

sample.mlsidxapi.com/Object.svc/GetObject

Request ArgumentTypeDescriptionDefaultRequiredSupported Values
AcceptStringAcceptable media typesRETS 1.7.2Image/jpeg

Request Arguments

Request ArgumentTypeDescriptionDefaultRequiredSupported Values
ResourceStringRepresents a resource as defined in the system’s metadata dictionary.RETS 1.7.2Office
Agency
Property
TypeStringSpecifies the object type as defined in the system’s metadata.PhotoRETS 1.7.2Photo
Thumbnail/Photo
LargePhoto

See Type Argument Notes section below
IDStringA string that identifies the object or group of objects being requested.RETS 1.7.2See ID Argument Explanation section below
CultureStringSpecifies results localization, applicable only when querying the Office resource.en-CAen-CA
fr-CA

Type Argument Notes

  • Office supports: ThumbnailPhoto only
  • Agent supports: ThumbnailPhoto and LargePhoto
  • Property supports: Photo, ThumbnailPhoto, and LargePhoto

ID Argument Explanation

The MLS® IDX API supports only a limited subset of ID arguments as defined in the RETS 1.7.2 specification.

ID ::= resource-set
resource-set ::= resource-entity [: object-id-list ]
resource-entity ::= 1*ALPHANUM
object-id-list ::= * | object-id * (, object-id)
object-id ::= * | 1*5DIGIT

Object-ID Argument Support

The Property resource is the only one that supports object-id arguments. For Agent and Office resources, only a single image is available, so in these cases the resource-entity field is the only one used.

Server Response Header Fields

Request ArgumentTypeDescriptionDefaultRequiredSupported Values
Content-TypeStringSpecifies the media type of the object or objects being returned.RETS 1.7.2Image/jpeg Multipart/parallel; boundary =
Content-IDStringProvides the identifier of the object, corresponding to the ID that was requested.RETS 1.7.2 Only Returned in a multipart response
Object-IDIndicates the object number that is being returned in the response.RETS 1.7.2Integer * (only if error processing multipart/parallel response)
MIME-VersionStringSpecifies the MIME version of the response object.RETS 1.7.21.0

Response Arguments

Objects retrieved through this transaction are delivered as MIME media types. For successful requests, the message body contains only the objects in the specified MIME type. If an error occurs, the response will follow the standard error response format.

ActionSyntax
Get agent High Resolution photo for agent 12345Resource=Agent&Type=LargePhoto&ID=12345
Get office logo for office 12345Resource=Office&Type=ThumbnailPhoto&ID=12345
Get all medium resolution photos for property with ID 12345Resource=Property&Type=PhotoID=12345 –or– Resource=Property&Type=Photo&ID=12345:*
Get High Resolution photo #3 for property with ID 12345Resource=Property&Type=LargePhoto&ID=12345:3
Return default Medium resolution photo for property with ID 12345Resource=Property&Type=PhotoID=12345:0
Return Medium Resolution photos 2,4 and 7 for property with ID 12345 Resource=Property&Type=Photo&ID=12345:2,4,7

Multiple Images (Multipart) Feed Example

–creaboundary

Content-Type: image/jpeg

Content-ID:12345

Object-ID:1

Content-Description: null

<image 1 data>

–creaboundary

Content-Type: image/jpeg

Content-ID:12345

Object-ID:2

Content-Description: null

<image 2 data>

–creaboundary—

10.Logout Transaction

Description

The Logout transaction is used to terminate an active session. Clients should send a Logout request at the end of every session. While the server cannot strictly enforce Logout due to the stateless nature of requests, proper session termination is required for compliance. Failure to consistently log out may result in future login attempts being rejected until the previous session has been properly closed.

Endpoint

https://sample.mlsidxapi.com

Request Arguments

The Logout transaction does not require any request arguments.

Logout Response Body Format

<?xml version="1.0" encoding="UTF-8"?>
<RETS ReplyText="Operation Successful" ReplyCode="0" />

Powered by: REALTOR.ca Logos

All real estate advertising websites, partner sites, and member websites are required to display the “Powered by REALTOR.ca” badge. This badge must link back to the original listing on REALTOR.ca.

If a REALTOR® is managing their own website directly (without using a third-party provider), it is their responsibility to ensure the badge is displayed on every listing page.

Use the following code snippets to embed the “Powered by REALTOR.ca” logos and links into your website:

English

<a href="https://www.realtor.ca/en" alt="Powered by: REALTOR.ca" target="_blank"> <img width="125" src="https://www.realtor.ca/images/en-ca/powered_by_realtor.svg"/></a>

French

<a href="https://www.realtor.ca/fr" alt="Alimenté par: REALTOR.ca" target="_blank"> <img width="125" src="https://www.realtor.ca/images/fr-ca/powered_by_realtor.svg"/></a>

Analytics

In addition to distributing listing data to member websites, brokerage websites, franchisors, and third-party platforms, the MLS IDX API also supports integration with various public websites and mobile applications.

Since a single listing can appear across multiple sites and apps, it’s important for agents and brokerages to be able to track where and how often their listings are being viewed. To enable this, the MLS® IDX API includes support for a data warehousing solution that collects and organizes listing activity.

Analytics can be broken down across several dimensions, such as:

  • Website or application where the listing was viewed
  • Listing agent
  • Real estate firm
  • Brokerage owner
  • Franchisor

This ensures agents and brokerages have clear insight into the performance and visibility of their listings across multiple channels.

Analytics Web Service

The Analytics Web Service is used to capture listing activity and statistics from various sources. Whenever a listing-related event occurs (such as a property being viewed), the website or application should send a request to the Analytics Web Service to record the event.

No response handling is required, which means these requests can be made asynchronously without interrupting the user experience.

End Point

https://analytics.crea.ca/LogEvents.svc/LogEvents

Request Arguments

ArgumentTypeDescriptionRequiredSupported Values
ListingIDIntegerSpecifies the ID of the listing.Yes
DestinationIDIntegerSpecifies the ID of the destination where the data is being sent or recorded.YesSpecifies the destination ID of the data feed where the event takes place.
EventTypeStringSpecifies the event being tracked by the analytics system (for example, a property view or other listing interaction).YesRefer to the Event Types section below for supported values.
UUIDStringSpecifies the unique identifier for a user or device. This value should remain consistent across all requests made by the same user or device.YesGUID or device identifier combined with the Destination ID.
Note: UUIDs are tracked in 5-minute windows. If the same UUID generates an identical event within that timeframe, the duplicate event is ignored.
IPIP AddressProvides the IP address of the client or device, if available.NoNote
This parameter is used to resolve geographic data. If it is not provided, geographic information will not be included in the results.
RefererralURLURLSpecifies the URL associated with the event, which is validated during analytics processing.No
LanguageIDInteger
Indicates the language preference of the user.
No1: English
2: French

Event Types

EventDescription
ViewEvent to be triggered when a listing is viewed on a website.
ClickThis event applies to third party websites only.

It should be triggered when the MoreInformationLink (included in the
PropertyDetails payload) is clicked.
email_realtorThis event applies to third party websites only.

It should be triggered when an email inquiring about a particular listing is
sent to the REALTOR®.

Example

Templatehttps://analytics.crea.ca/LogEvents.svc/LogEvents?ListingID={ListingID}&DestinationID={DestinationID}&EventType={EventType}&UUID={UUID}&IP={IP}&ReferralURL={ReferralURL}
Examplehttps://analytics.crea.ca/LogEvents.svc/LogEvent?ListingID=12830763&DestinationID=355&EventType=view&UUID=6b106320-b422-11e2-9e96-0800200c9a66-355&IP=192.168.1.1&ReferralURL=http://samplesite.com

Appendix – Payload Legend

This appendix describes the columns used in the payload tables in Appendix A-J

Cardinality is used to identify how many times an element can be expected within the Standard-XML payload.

Exactly one instance of this element.

0..1 Zero or one instance of this element.

0..* Zero or more instances of this element.

1..* One or more instances of this element will be included

Type is used to identify the type of data to be expected in an element within the Standard-XML payload.

Boolean True/False

Collection A collection of similar elements

Complex Comprised of primitive data types and/or other complex elements.

DateTime A date and time

Integer A whole number

Lookup A value taken from the associated lookup. In Encoded format, the

both the lookup ID and text value is available.

Lookup

(CSV)

A comma separated list of values taken from the associated lookup.

In Encoded format, the both the lookup ID and text values are

available.

Script A JavaScript script to be used for gathering analytics data from client

websites (deprecated, still included for backwards compatibility)

String String

(CSV) Free text representation of the value

A comma separated set of free text values

URL Website address

Type is used to identify the metadata lookup table associated with the element. Any values available in the element can be found in the identified Lookup table.

Office Payload

ParentCardinalityNameTypeDescriptionLookup
Office1IDIntegerUnique ID assigned to the office
Office1Last UpdatedDateTimeThe date the office information was last updated

OfficeDetails Payload

ParentCardinalityNameTypeDescriptionLookup
OfficeDetails1NameStringThe name of the Office
OfficeDetails1IDIntegerUnique ID assigned to the Office
OfficeDetails1LastUpdatedDateTimeDate the information was last updated
OfficeDetails0..1LogoComplexDetails of an Office’s photo
Logo0..1ThumbnailIURLStringIncludes Url of the Thumbnail image
Logo0..1LogoLastUpdatedDateTimeThe date the logo was last updated
OfficeDetails1OrganizationTypeLookupThe type of organizationOrganizationType
OfficeDetails0..1DesignationLookupThe designation of the organizationOrganizationDesignations
OfficeDetails1AddressComplexAddress of the office. See Appendix G – Address Payload
OfficeDetails0..1PhonesCollectionCollection of Phone. See Appendix H – Phone Payload
OfficeDetails0..1WebsitesCollectionCollection of Website. See Appendix I – Website Payload
OfficeDetails0..1FranchisorLookupThe name of the franchisorFranchisor

Agent Payload

ParentCardinalityNameTypeDescriptionLookup
Agent1IDInteger(Attribute) Unique ID assigned to the Agent
Agent1LastUpdatedDateTime(Attribute) The date agent information was last updated

AgentDetails Payload

ParentCardinalityNameTypeDescriptionLookup
AgentDetails1NameStringThe name of the Agent
AgentDetails1IDInteger(Attribute) Unique ID assigned to the Agent
AgentDetails1LastUpdatedString(Attribute) The date the agent was last updated
AgentDetails0..1PositionStringThe position of the Agent
AgentDetails0..1WebsitesCollectionCollection of Website. See Appendix I – Website Payload
AgentDetails0..1PhonesCollectionCollection of Phone. See Appendix H – Phone Payload
AgentDetails1OfficeComplexThe organization that the Agent works for. See Appendix B –
OfficeDetails Payload
AgentDetails0..1EducationCredentialsString (CSV)The credentials of the Agent
AgentDetails0..1PhotoComplexDetails of the Agent Photo
Photo0..1LastUpdatedDateTimeThe date the photo was last updated
Photo0..1ThumbnailURLStringIncludes Url of the Thumbnail image
Photo0..1LargePhotoURLStringIncludes Url of the High resolution image
AgentDetails1AddressComplexAddress of the office. See Appendix G – Address Payload
AgentDetails0..1SpecialtiesCollectionThe specialty of the Agent
Specialties1..*SpecialtyLookupThe specialty of the AgentSpecialties
AgentDetails0..1DesignationsCollectionCollection of Designation
Designations1..*DesignationLookupThe designation of the AgentIndividualDesignations
AgentDetails0..1LanguagesCollectionCollection of Language
Languages1..*LanguageLookupLanguage spoken of the AgentLanguages
AgentDetails0..1TradingAreasCollectionCollection of TradingArea
TradingAreas1..*TradingAreaStringTrading area of the agent

Property Payload (Standard-XML)

ParentCardinalityNameTypeDescriptionLookup
Property1IDIntegerUnique ID assigned to the Property
Property1LastUpdatedDateTimeThe date the property was last updated

PropertyDetails Payload (Standard-XML)

ParentCardinalityNameTypeDescriptionLookup
PropertyDetails1IDInteger(Attribute) Unique ID assigned to the property
PropertyDetails1ListingIDStringThe MLS® Number of the property.
PropertyDetails1LastUpdatedDateTime(Attribute) The date the property was last updated
PropertyDetails0..1BusinessComplexBusiness details of property
PropertyDetails0..1BoardIntegerID of the Board/Association responsible for the listingBoards
Business0..1BusinessTypeLookup (CSV)Type of BusinessBusinessType
Business0..1BusinessSubTypeLookup (CSV)Business Sub TypeBusinessSubType
Business0..1EstablishedDateStringDate the Business was establishedBasementType
Business1FranchiseBooleanIndicates whether business is a franchise or not
Business0..1NameStringBusiness Name
Business0..1OperatingSinceStringDate indicating how long the business has been opened
PropertyDetails 1BuildingComplexBuilding details of the property
Building0..1BathroomTotalIntegerNumber of bathrooms
Building0..1BedroomsAboveGroundIntegerNumber of bedrooms above ground
Building0..1BedroomsBelowGroundIntegerNumber of bedrooms below ground
Building0..1BedroomsTotalIntegerNumber of bedrooms (below + above ground)
Building0..1AgeStringThe age of the building
Building0..1AmenitiesLookup (CSV)The building amenitiesAmenities
Building0..1AmperageLookup (CSV)The building amperageAmperage
Building0..1AnchorStringThe building anchor
Building0..1AppliancesLookup (CSV)The appliances included with the buildingAppliances
Building0..1ArchitecturalStyleLookup (CSV)Architectural style of the buildingArchitecturalStyle
Building0..1BasementDevelopmentLookup (CSV)Development of the basementBasementDevelopment
Building0..1BasementFeaturesLookup (CSV)Features of the basementBasementFeatures
Building0..1BasementTypeLookup (CSV)The type of basementBasementType
Building0..1BomaRatingStringBOMA energy performance rating
Building0..1CeilingHeightStringCeiling height of the buildingMeasureUnit*
Building0..1CeilingTypeLookup (CSV)Ceiling type of the buildingCeilingType
Building0..1ClearCeilingHeightLookup (CSV)Clear ceiling height of the buildingClearCeilingHeight
Building0..1ConstructedDateStringThe year the building was built
Building0..1ConstructionMaterialLookup (CSV)List of construction materials used in the buildingConstructionMaterial
Building0..1ConstructionStatusLookupThe status of the buildingConstructionStatus
Building0..1ConstructionStyleAttachmentLookupThe attachment style of the buildingConstructionStyleAttachment
Building0..1ConstructionStyleOtherLookupConstruction style otherConstructionStyleOther
Building0..1ConstructionStyleSplitLevelLookupConstruction style split levelConstructionStyleSplitLevel
Building0..1CoolingTypeLookup (CSV)Type of Cooling in the buildingCoolingType
Building0..1EnerguideRatingStringEnerguide energy performance rating
Building0..1ExteriorFinishLookup (CSV)The exterior finish of the buildingExteriorFinish
Building0..1FireProtectionLookup (CSV)Fire protection and security features of buildingFireProtection
Building0..1FireplaceFuelLookup (CSV)List of fireplace fuels for the fireplaces in buildingFireplaceFuel
Building0..1FireplacePresentStringIndicates whether there is a fireplace in building
Building0..1FireplaceTotalIntegerTotal number of fireplaces present in building
Building0..1FireplaceTypeLookup (CSV)The types of fireplace in the buildingFireplaceType
Building0..1FixtureLookup (CSV)Building fixtureFixture
Building0..1FlooringTypeLookup (CSV)The type of flooring in the buildingFlooringType
Building0..1FoundationTypeLookup (CSV)The type of foundation of the buildingFoundationType
Building0..1HalfBathTotalStringThe number of half Bathrooms
Building0..1HeatingFuelLookup (CSV)Fuel used for heating the buildingHeating Fuel
Building0..1HeatingTypeLookup (CSV)The heating type of the buildingHeatingType
Building0..1LeedsCategoryStringLEEDS green building certification category
Building0..1LeedsRatingStringLEEDS green building certification rating
Building0..1RenovatedDateStringThe date the building was renovated
Building0..1RoofMaterialLookup (CSV)The type of roofing material of the buildingRoofMaterial
Building0..1RoofStyleLookup (CSV)The roof style of the buildingRoofStyle
Building0..1RoomsCollectionCollection of Room
Rooms1..*RoomComplexDetails of a single room
Room0..1TypeLookupType of roomRoomType
Room0..1WidthStringWidth of the roomMeasureUnit*
Room0..1LevelLookupThe level of the roomRoomLevel
Room0..1LengthStringThe length of the roomMeasureUnit*
Room0..1DescriptionStringGeneral description of the room
Room0..1DimensionStringThe dimensions of the room
Building0..1StoriesTotalIntegerThe number of stories of the building
Building0..1SizeExteriorStringBuilding interior sizeMeasureUnit*
Building0..1SizeInteriorStringBuilding exterior sizeMeasureUnit*
Building0..1SizeInteriorFinishedStringThe size of finished interiorMeasureUnit*
Building0..1StoreFrontLookup (CSV)The building storefrontStoreFront
Building0..1TotalFinishedAreaStringTotal finished areaMeasureUnit*
Building0..1TypeLookup (CSV)Type of BuildingBuildingType
Building0..1UffiStringUFFI (Urea Formaldehyde Foam Insulation) status
Building0..1UnitTypeStringType of unit
Building0..1UtilityPowerLookup (CSV)The types of power in the buildingUtilityPower
Building0..1UtilityWaterLookup (CSV)Building water typeUtilityWater
Building0..1VacancyRateStringThe rate of vacancy
PropertyDetails0..1LandComplexDetails about the land of the property
Land0..1SizeTotalStringThe total size of the propertyMeasureUnit*
Land0..1SizeTotalTextStringThe total size of the property as text
Land0..1SizeFrontageStringThe amount of frontage of the propertyMeasureUnit*
Land0..1AccessTypeLookup (CSV)The type of access to the propertyAccessType
Land0..1AcreageBooleanWhether the property has acreage or not
Land0..1AmenitiesLookup (CSV)The land amenitiesAmenitiesNearby
Land0..1ClearedTotalStringThe amount of cleared landMeasureUnit*
Land0..1CurrentUseLookup (CSV)What the land is currently used forCurrentUse
Land0..1DivisibleStringWhether the land is divisible or not (True/False)
Land0..1FenceTotalStringThe amount of fencingMeasureUnit*
Land0..1FenceTypeLookup (CSV)The type of fenceFenceType
Land0..1FrontsOnLookupThe front typeFrontsOn
Land0..1LandDispositionLookup (CSV)List of disposition features of the landLandDispositionType
Land0..1LandscapeFeaturesLookup (CSV)List of landscape features of the landLandscapeFeatures
Land0..1PastureTotalStringThe amount of pasture availableMeasureUnit*
Land0..1SewerLookup (CSV)List of sewer types on the landSewer
Land0..1SizeDepthStringThe depth of the landMeasureUnit*
Land0..1SizeIrregularStringThe size of irregular land
Land0..1SoilEvaluationLookupThe soil evaluationSoilEvaluationType
Land0..1SoilTypeLookup (CSV)The type of soilSoilType
Land0..1SurfaceWaterLookup (CSV)List of surface water types on the landSurfaceWater
Land0..1TiledTotalStringThe size of tiled landMeasureUnit*
Land0..1TopographyTypeLookup (CSV)Land topography typeTopographyType
PropertyDetails0..1AgentDetailsComplexAgent details. See Appendix D –
AgentDetails Payload
PropertyDetails1..*AddressComplexAddress of property. See Appendix G –
Address Payload
PropertyDetails0..1AlternateURLComplexSet of links to information about the property
AlternateURL0..1BrochureLinkURLLink to brochure web site or document
AlternateURL0..1MapLinkURLLink to a mapping site displaying the property location
AlternateURL0..1PhotoLinkURLLink to a site containing additional photos
AlternateURL0..1SoundLinkURLLink to a site containing sound clips
AlternateURL0..1VideoLinkURLLink to a site containing video for the property
PropertyDetails0..1AmmenitiesNearByLookup (CSV)List of amenities nearby to the propertyAmenitiesNearBy
PropertyDetails0..1CommunicationTypeLookup (CSV)The communication type availableCommunicationType
PropertyDetails0..1CommunityFeaturesLookup (CSV)The community featuresCommunityFeatures
PropertyDetails0..1CropLookup (CSV)The types of crops availableCrop
PropertyDetails0..1DocumentTypeLookup (CSV)Documents availableDocumentType
PropertyDetails0..1EquipmentTypeLookup (CSV)List of equipment availableEquipmentType
PropertyDetails0..1EasementLookup (CSV)The property easement typesEasement
PropertyDetails0..1FarmTypeLookup (CSV)The type of farmFarmType
PropertyDetails0..1FeaturesLookup (CSV)The property features availableFeatures
PropertyDetails0..1IrrigationTypeLookup (CSV)The type of irrigation of the propertyIrrigationType
PropertyDetails0..1LeaseStringLease value
PropertyDetails0..1LeasePerTimeLookupLease time e.g. quarterlyPaymentUnit
PropertyDetails0..1LeasePerUnitLookupLease unit e.g. square feetMeasureUnit
PropertyDetails0..1LeaseTermRemainingStringDuration of the lease remaining.
PropertyDetails0..1LeaseTermRemainingFreqLookupThe frequency of the remaining lease e.g. dailyPaymentUnit
PropertyDetails0..1LeaseTypeLookupType of leaseLeaseType
PropertyDetails0..1ListingContractDateStringThe effective date of the agreement between the seller and the seller’s broker
PropertyDetails0..1LiveStockTypeLookup (CSV)The types of livestock availableLiveStockType
PropertyDetails0..1LoadingTypeLookup (CSV)Property loading type availableLoadingType
PropertyDetails0..1LocationDescriptionStringA description of the location
PropertyDetails0..1MachineryLookup (CSV)Machinery availableMachinery
PropertyDetails0..1MaintenanceFeeStringCondo/Maintenances fees
PropertyDetails0..1MaintenanceFeePaymentUnitStringCondo/Maintenances fee payment unit
(Frequency)
PropertyDetails0..1MaintenanceFeeTypeLookup (CSV)Condo/Maintenances fee typeMaintenanceFeeType
PropertyDetails0..1ManagementCompanyStringThe name of management company
PropertyDetails0..1MunicipalIDStringThe id of municipality
PropertyDetails0..1OpenHouseCollectionCollection of open house Events
OpenHouse1..*EventComplexDetails of a single open house event
Event1StartDateTimeDateTimeThe open house start date and time
Event1EndDateTimeDateTimeThe open house End date and time
Event1CommentsStringComments about the open house
PropertyDetails0.1LiveStreamCollectionCollection of Live Streame Open House events
LiveStream1..*EventComplexDetails of a Live Stream Open House event
Event1StartDateTimeDateTimeThe Live Stream Start date and time
Event1EndDateTimeDateTimeThe Live Stream End date and time
Event1URLStringURL to the Live Stream
PropertyDetails0..1OwnershipTypeLookupThe type of ownership ex: Condo/Strata, freehold etc.OwnershipType
PropertyDetails0..1ParkingSpacesCollectionCollection of Parking. Available if parking type details are available
ParkingSpaces1..*ParkingComplexDetails of the parking type
Parking1NameLookupType of parking availableParkingType
Parking1SpacesStringNumber of spaces for the associated parking type
PropertyDetails0..1ParkingSpaceTotalStringThe total number of parking spaces
PropertyDetails0..1PhotoCollectionCollection of PropertyPhoto
Photo1..*PropertyPhotoComplexDetails of a single property photo
PropertyPhoto1SequenceIDIntegerID of the property photo. Required for GetObject calls
PropertyPhoto0..1DescriptionStringDescription of the photo
PropertyPhoto1LastUpdatedDateTimeThe timestamp, not including time zone, of when the photo was last updated
PropertyPhoto1PhotoLastUpdatedDateTimeThe timestamp, including time zone, of when the photo was last updated. Example:
Tue, 20 Oct 2015 09:23:13 GMT
PropertyPhoto0..1ThumbnailURLStringIncludes Url of the Thumbnail image
PropertyPhoto0..1PhotoURLStringIncludes Url of the Medium resolution image
PropertyPhoto0..1LargePhotoURLStringIncludes Url of the High resolution image
PropertyDetails0..1PlanStringPlan of the property
PropertyDetails0..1PoolTypeLookup (CSV)The type of pool on the propertyPoolType
PropertyDetails0..1PoolFeaturesLookup (CSV)The features of the poolPoolFeatures
PropertyDetails0..1PriceStringPrice of the Property
PropertyDetails0..1PricePerTimeLookupPrice of property per timePaymentUnit
PropertyDetails0..1PricePerUnitStringPrice of property per unitMeasureUnit
PropertyDetails0..1PropertyTypeLookupType of real estate propertyPropertyType
PropertyDetails0..1PublicRemarksStringDescription of the property
PropertyDetails0..1RentalEquipmentTypeLookup (CSV)The type of rental equipmentRentalEquipmentType
PropertyDetails0..1RightTypeLookup (CSV)List of property rightsRightType
PropertyDetails0..1RoadTypeLookup (CSV)Type of roadRoadType
PropertyDetails0..1StorageTypeLookup (CSV)Storage Type IncludedStorageType
PropertyDetails0..1StructureLookup (CSV)List of structures on the propertyStructureType
PropertyDetails0..1SignTypeLookup (CSV)Type of signageSignType
PropertyDetails0..1TransactionTypeLookupType of transaction (e.g. sale, lease)TransactionType
PropertyDetails0..1TotalBuildingsStringTotal number of buildings included in the property
PropertyDetails0..1UtilitiesAvailableCollectionCollection of Utility
UtilitiesAvailable1..*UtilityComplexDetails of a single utility
Utility1TypeLookupType of utility availableUtilityType
Utility1DescriptionStringDescription of utility available
PropertyDetails0..1ViewTypeLookup (CSV)Types of views availableViewType
PropertyDetails0..1WaterFrontTypeLookupWaterfront type of the propertyWaterFrontType
PropertyDetails0..1WaterFrontNameStringName of the waterfront the property is on
PropertyDetails0..1AdditionalInformationIndicatorStringAdditional information indicator text
PropertyDetails0..1ZoningDescriptionStringDescription of the zoning
PropertyDetails0..1ZoningTypeLookupProperty Zoning typeZoningType
PropertyDetails1MoreInformationLinkURLLink to the property details page on Realtor.ca
PropertyDetails1SocialMediaWebsiteURLLink to property specified by Agent/Realtor
Member
PropertyDetails1AnalyticsClickScriptUsed for statistical tracking of
MoreInformationLink. (deprecated, included for backwards compatibility)
PropertyDetails1AnalyticsViewScriptUsed for statistical tracking of property details views on DDF® client sites. (deprecated, included for backwards compatibility)

Appendix G – Address Payload

ParentCardinalityNameTypeDescriptionLookup
Address0..1StreetAddressStringThis field returns a formatted street address. It may contain a vertical bar (I) line delimiter if address contains multiple lines.
It includes the following address fields if available:
AdditionalStreetInfo, UnitNumber, StreetNumber, StreetDirectionPrefix, StreetName, StreetSuffix, StreetDirectionSuffix, BoxNumber,
If the above fields do not yield a valid street Address, the following fields will be included instead (if available)
AdditionalStreetInfo, UnitNumber, AddressLine1, AddressLine2
Address0..1AddressLine1StringThe first address line of the address
Address0..1AddressLine2StringThe second address line of the address
Address0..1StreetNumberStringThe building number in the address
Address0..1StreetDirectionPrefixStringDirectional indicator that precedes the street name
Address0..1StreetNameStringOfficial name of the street in the address
Address0..1StreetSuffixStringThe street type
Address0..1StreetDirectionSuffixStringDirectional indicator that follows a street name
Address0..1UnitNumberStringApartment, suite or office number portion of a postal address
Address0..1BoxNumberStringPost office box if applicable
Address0..1CityStringCity of the address
Address0..1ProvinceStringProvince of the address
Address0..1PostalCodeStringPostal code of the address
Address0..1CountryStringCountry of the address
Address0..1AdditionalStreetInfoStringAdditional information about the street
Address0..1CommunityNameStringCommunity name of the address
Address0..1NeighbourhoodStringNeighbourhood name of the address
Address0..1SubdivisionStringSubdivision name of the address
Address0..1LatitudeStringLatitude coordinates
Address0..1LongitudeStringLongitude coordinates

Appendix H – Phone Payload

ParentCardinalityNameTypeDescriptionLookup
Phones1..*PhoneStringThe phone number
Phone1ContactTypeString(Attribute) The type of contact, e.g. Business
Phone1PhoneTypeString(Attribute) The Type of phone line (Toll free, Fax, etc.)

Appendix I – Website Payload

ParentCardinalityNameTypeDescriptionLookup
Websites1..*WebsiteStringThe website of the organization
Website1ContactTypeString(Attribute) The type of contact (Business, Office, etc.)
Website1WebsiteTypeString(Attribute) The type of the website

Appendix J- PropertyDetails Payload (Compact)

Payload based on RESO Data Dictionary 1.0: https://www.reso.org/data-dictionary

Standard NameData TypeEncodedLookup NameRESO Field Description
ArchitecturalStyleStringYA list describing the style of the structure. For example, Victorian, Ranch, Craftsman, etc.
AssociationFeeDecimalA fee paid by the homeowner to the Home Owners Association which is used for the upkeep of the common area, neighborhood or other association related benefits. Synonym: Condo fee
AssociationFeeFrequencyStringThe frequency the association fee is paid. For example, Weekly, Monthly, Annually, Bi-Monthly, One Time, etc.
AttachedGarageYNBooleanA flag indicating that the garage attached to the dwelling.
BathroomsHalfIntegerA room containing 2 of the 4 elements constituting a bath, which are; Toilet, Sink, Bathtub or Shower Head. A Half Bath will typically contain a Sink and Toilet.
BathroomsTotalStringString allowing for whatever total of bathrooms existed in legacy systems. Examples may be “three full and one half”, 1.2, One and a half, 1.5
BedroomsTotalIntegerThe total number of bedrooms in the dwelling.
Building AreaTotalDecimalTotal area of the structure. Includes both finished and unfinished areas.
BuildingAreaUnitsStringYMeasureUnitA pick list of the unit of measurement for the area. i.e. Square Feet, Square Meters, Acres, etc.
CarportSpacesIntegerThe number of carport spaces included in the sale.
CarportYNBooleanA flag indicating that the listing has a garage. This flag may be T/F, Y/N or other true, false or unknown indicator. As with all flags, the field may be null.
CityStringThe city in listing address.
CoListAgentCellPhoneString
CoListAgentDesignationStringYIndividualDesignationsDesignations and certifications acknowledging experience and expertise in various real estate sectors are awarded by NAR and each affiliated group upon completion of required courses.
CoListAgentDirectPhoneStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
CoListAgentFaxStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
CoListAgentFulINameStringThe full name of the co-listing agent. (First Middle Last)
CoListAgentKeyStringA system unique identifier. Specifically, in aggregation systems, the Key is the system unique identifier from the system that the record was just retrieved. This may be identical to the related xxxID identifier, but the key is guaranteed unique for this record set.
CoListAgentOfficePhoneStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
CoListAgentOfficePhonextStringThe extension of the given phone number (if applicable).
CoListAgentPagerStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
CoListAgentTollFreePhoneStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
CoListAgentDesignationStringIndividualDesignationsDesignations and certifications acknowledging experience and expertise in various real estate sectors are awarded by NAR and each affiliated group upon completion of required courses.
CoListAgentDirectPhoneStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
CoListAgentFaxStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
CoListAgentFullNameStringThe full name of the co-listing agent. (First Middle Last)
CoListAgentKeyStringA system unique identifier. Specifically, in aggregation systems, the Key is the system unique identifier from the system that the record was just retrieved. This may be identical to the related xxxID identifier, but the key is guaranteed unique for this record set.
CoListAgentOfficePhoneStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
CoListAgentOfficePhonExtStringThe extension of the given phone number (if applicable).
CoListAgentPagerStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
CoListAgentTollFreePhoneStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
CoListAgentURLStringThe website URI of the co-listing agent.
CoListOfficeFaxStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
CoListOfficeKeyStringA system unique identifier. Specifically, in aggregation systems, the Key is the system unique identifier from the system that the record was just retrieved. This may be identical to the related xxxID identifier, but the key is guaranteed unique for this record set.
CoListOfficeNameStringThe legal name of the brokerage co-representing the seller.
CoListOfficePhoneStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
CoListOfficePhoneExtStringThe extension of the given phone number (if applicable).
CoListOfficeURLStringThe website URI for the co-listing office.
CommunityFeaturesStringYCommunityFeaturesA list of features related to, or available within, the community.
ConstructionMaterialsStringYConstructionMaterialA list of the materials that were used in the construction of the property.
CoolingStringYCoolingTypeA list describing the cooling or air conditioning features of the property.
CoolingYNBooleanThe property has cooling or Air Conditioning.
CountryStringThe country abbreviation in a postal address.
CoveredSpacesInteger
FencingStringFenceTypeA list of types of fencing found at the property being sold.
FireplaceFeaturesStringFireplaceTypeA list of features or description of the fireplace(s) included in the sale/lease.
FireplaceFuelStringYFireplaceFuelA list describing the types of fuel that may be used in the property’s fireplace(s).
FireplacesTotalIntegerThe total number of fireplaces included in the property.
FlooringStringYFlooringTypeA list of the type(s) of flooring found within the property.
FrontageLengthDecimalTextual description of the length of the frontages selected in the Frontage Type field.
FrontageTypeStringYFrontsOnPick list of types of frontage. i.e. Oceanfront, Lakefront, Golf course…etc….
GarageSpacesIntegerThe number of spaces in the garage(s).
GarageYNBooleanA flag indicating that the listing has a garage. This flag may be T/F, Y/N or other true, false or unknown indicator. As with all flags, the field may be null.
GreenBuildingCertificationStringThe name of the certification awarded to a new or pre-existing residential or commercial structure. For example: LEED, Energy Star, ICC-700.
GreenCertificationRatingStringMany certifications have a rating system that provides an indication of the structure’s level of energy efficiency. This is commonly expressed in a numeric value but can also be a name, such as Gold or Silver.
HeatingStringYHeating TypeA list describing the heating features of the property.
Heating FuelStringYHeatingFuelA list describing the heating fuel of the property.
LeaseStringLeaseLease value.
LeaseFrequencyStringYLeaseFrequencyThe frequency of lease payments.
LeaseTermStringLeaseTermThe lease term payment type.
LevelsStringThe number of levels in the property being sold. For example, One Level, Two Levels, Split Level, Three or More Levels, Multi Level, Loft. A discreet horizontal plane of interior living space (excluding basements).
ListAORStringYBoardsThe responsible Board or Association of REALTORS for this listing.
ListAgentCellPhoneStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
ListAgentDesignationStringYIndividualDesignationsDesignations and certifications acknowledging experience and expertise in various real estate sectors are awarded by NAR and each affiliated group upon completion of required courses.
ListAgentFaxStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
ListAgentFullNameStringThe full name of the listing agent. (First Middle Last)
ListAgentKeyStringA system unique identifier. Specifically, in aggregation systems, the ListAgentKey is the system unique identifier from the system that the record was retrieved. This may be identical to the related xxxID.
ListAgentOfficePhoneStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
ListAgentOfficePhoneExtStringThe extension of the given phone number (if applicable).
ListAgentPagerStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
ListAgentURLStringThe website URI of the listing agent.
ListingIDStringThe well-known identifier for the listing. The value may be identical to that of the Listing Key, but the Listing ID is intended to be the value used by a human to retrieve the information about a specific listing. In a multiple originating system or a merged system, this value may not be unique and may require the use of the provider system to create a synthetic unique value.
ListingContractDateStringThe effective date of the agreement between the seller and the seller’s broker. This is the date entered by the agent reflecting when the change occurred contractually, not a timestamp of when the change was made in the MLS®.
ListingKeyStringA unique identifier for this record from the immediate source. This may be a number, or string that can include URI or other forms.
This is the system you are connecting to and not necessarily the original source of the record.
ListOfficeFaxStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
ListOfficeKeyStringA system unique identifier. Specifically, in aggregation systems, the Key is the system unique identifier from the system that the record was just retrieved. This may be identical to the related xxxID identifier, but the key is guaranteed unique for this record set.
ListOfficeNameStringThe legal name of the brokerage representing the seller.
ListOfficePhoneStringNorth American 10 digit phone numbers should be in the format of ###-###-#### (separated by hyphens). Other conventions should use the common local standard. International numbers should be preceded by a plus symbol.
Should be preceded by a plus symbol.
ListOfficePhoneExtDecimalThe extension of the given phone number (if applicable).
ListOfficeURLStringThe website URI for the listing office.
ListPriceStringThe current price of the property as determined by the seller and the seller’s broker. For auctions this is the minimum or reserve price.
LotFeaturesStringYLandscapeFeaturesA list of features or description of the lot included in the sale/lease.
LotSizeAreaDecimalThe total area of the lot. See Lot Size Units for the units of measurement (Square Feet, Square Meters, Acres, etc.).
LotSizeUnitsStringYMeasureUnitA pick list of the unit of measurement for the area. i.e. Square Feet, Square Meters, Acres, etc.
ModificationTimestampDateTimeThe transactional timestamp automatically recorded by the MLS® system representing the date/time the listing was last modified.
MoreInformationLinkURLLink to a site providing more information about that property.
NumberOfUnitsTotalIntegerTotal number of units included in the income property, occupied or unoccupied.
OpenParkingSpacesIntegerThe number of open or uncovered parking spaces included in the sale.
OpenParkingYNBooleanA flag indicating that any parking spaces associated with the property are not covered by a roof.
OriginatingSystemKeyStringUnique identifier from the originating system which is commonly a key to that system. In the case where data is passed through more than one system, this is the originating system key.
OriginatingSystemNameStringThe name of the originating record provider. Most commonly the name of the MLS®. The place where the listing is originally input by the member. The legal name of the company. To be used for display.
ParkingTotalIntegerThe total number of parking spaces included in the sale.
PhotosChangeTimestampDateTimeSystem generated timestamp of when the last update or change to the photos for this listing was made.
PhotosCountIntegerThe total number of pictures or photos included with the listing.
ResourceRecordIDThis is the Listing ID
OrderOrder is the Sequence ID of the images
MediaURLThis is the path to the photo URL
MediaModificationTimestampThis the timestamp in ISO8601
PoolFeaturesStringYPoolFeaturesA list of features or description of the pool included in the sale/lease.
PoolYNBooleanThe property has a pool.
PostalCodeStringThe postal code portion of a street or mailing address.
PropertyTypeStringYPropertyTypeA list of types of properties such as Residential, Lease, Income or Land.
PublicRemarksStringText remarks that may be displayed to the public. In an MLS®, it is the field where information is entered for the public. This information is intended to be visible on-line. This is typically information that describes the selling points of the building and/or land for sale. Local conditions and rules will determine what such content can contain. Generally, the following information is excluded: any information pertaining to entry to the property, the seller and/or tenant, listing member contact information. In other systems, these remarks will be determined by local business rules.
RoofStringYRoofStyleA list describing the type or style of roof. For example Spanish Tile, Composite, Shake, etc.
RoomDimensions *String* This field is a repeating element. If this field is repeated, add 1, 2, 3, etc., to the end of the field. The dimensions of the room minimally represented as length and width (i.e. 12 x 10). For irregular rooms a measurement of all sides of the polygon representing the inner walls of the room. i.e. 10×12 x 8 x 2.
RoomLength *Decimal* This field is a repeating element. If this field is repeated, add 1, 2, 3, etc., to the end of the field. Measurement specifying the horizontal dimension of something that is fixed in place. The source attribute defines the source of the measurement, while the units attribute defines the unit of measurement: feet, meters or other units of measure. The general use of this is restricted to regular rectangular objects.
RoomLengthWidthUnits *StringYMeasureUnit* This field is a repeating element. If this field is repeated, add 1, 2, 3, etc., to the end of the field. A pick list of the unit of measurement for the area. i.e. Square Feet, Square Meters, Acres, etc.
RoomLevel *StringYRoomLevel* This field is a repeating element. If this field is repeated, add 1, 2,3, etc., to the end of the field. The level or floor on which the room is located. This should correspond to the selections in the Levels field.
RoomType *StringYRoomType* This field is a repeating element. If this field is repeated, add 1, 2, 3, etc., to the end of the field. i.e. RoomType1, RoomType2, etc.
The Type is a list of possible room types. i.e. Bedroom, Bathroom, Living Room, Workshop, etc.
RoomWidth *Decimal* This field is a repeating element. If this field is repeated, add 1, 2, 3, etc., to the end of the field. Measurement specifying the smaller horizontal dimension of something that is fixed in place. The source attribute defines the source of the measurement, while the units attribute defines the unit of measurement: feet, meters or other units of measure. The general use of this is restricted to regular rectangular objects.
SewerStringYSewerA list describing the sewer or septic features of the property.
StateOrProvinceStringText field containing the accepted postal abbreviation for the state or province.
StoriesStringThe number of floors in the property being sold.
StreetAdditionalInfoStringInformation other than a prefix or suffix for the street portion of a postal address.
StreetDirPrefixStringThe direction indicator that precedes the listed property’s street name.
StreetDirSuffixStringThe direction indicator that follows a listed property’s street address.
StreetNameStringThe street name portion of a listed property’s street address.
StreetNumberStringThe street number portion of a listed property’s street address.
StreetSuffixStringThe suffix portion of a listed property’s street address.
SubdivisionNameStringA neighbourhood, community, complex or builder tract.
UnitNumberStringText field containing the number or portion of a larger building or complex. Unit Number should appear following the street suffix or, if it exists, the street suffix direction, in the street address. Examples are: “APT G”, “55”, etc.
UnparsedAddressStringThe UnparsedAddress is a text representation of the address with the full civic location as a single entity. It may optionally include any of City, StateOrProvince, PostalCode and Country.
ViewStringYViewTypeA view as seen from the listed property.
ViewYNBooleanThe property has a view.
WaterBodyNameStringThe name, if known, of the body of water on which the property is located. (E.g., lake name, river name, ocean name, sea name, canal name).
WaterfrontYNBooleanThe property is on the waterfront.
YearBuiltIntegerThe year that an occupancy permit is first granted for the house or other local measure of initial habitability of the build. The type definition permits an empty value with an attribute noting that it is an unknown date or that the building is new construction. While constraints have not been applied, convention at the time of adoption has this as a four (4) digit year value.
ZoningStringYZoningTypeA division of the city or county into areas of different permissible land uses.
AnalyticsViewStringUsed for statistical tracking of MoreInformationLink. (deprecated, included for backwards compatibility
AnalyticsClickStringUsed for statistical tracking of property details views on DDF® client sites. (deprecated, included for backwards compatibility)

Appendix K – Digest Authentication

Digest Authentication is a security mechanism that allows a client application to authenticate itself to the server by sending a message digest along with its HTTP request. The digest is generated by applying a one-way hash algorithm to a combination of the HTTP request message and the client’s password.

A typical digest authentication process includes the following steps:

Step 1:

The client sends an initial request that requires authentication but does not include a username or password.

Step 2:

The server responds with a 401 Unauthorized status code and provides an authentication realm along with a nonce (a randomly generated, single-use value).

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest realm="MLS.IDX.API",
nonce="NjM0NjkxNDY3NDU3NzYuNDo3YWNiNjk3NjIzNmY2MWU2ZmY2ZGRlZWRlMWFiYmVhNw==",
qop="auth"

This response indicates that authentication is required. The server includes a realm (identifying the authentication scope) and a nonce (a unique, single-use value) that the client must use when generating the digest for the next request.

Step 3 – Client Authorization Request
The client then makes another request, this time including an Authorization header containing the digest credentials.

Authorization: Digest
username="11UUctLDhfS8hkqpuhkgfhrB",
realm="MLS.IDX.API",
nonce="NjM0NjkxNDY3NDU3NzYuNDo3YWNiNjk3NjIzNmY2MWU2ZmY2ZGRlZWRlMWFiYmVhNw==",
uri="/Login.svc/Login",
cnonce="5ee95aeee8c10a3e780da1455e33a2f3",
nc=00000001,
response="a5621bb7658b8936808db14d5ac02862",
qop="auth"

This header allows the client to securely prove its identity using the server-provided nonce and its own credentials, without sending the password in plain text.

Step 4 – Server Response and Session Establishment
If the authentication is successful, the server processes the request and returns a session ID cookie as part of the response. This session ID must be included in subsequent requests to maintain the authenticated session.

Example response:

HTTP/1.1 200 OK
Set-Cookie: X-SESSIONID=c838d36c-506e-4595-9697-3f7a6ae6e08d;
expires=Fri, 04-May-2012 14:36:34 GMT;
path=/

The X-SESSIONID value uniquely identifies the session and is required for all future authenticated requests until logout or session expiration.

Step 5 – Invalid Credentials
If the provided username or password is incorrect, the server responds with a 401 Unauthorized status code and issues a new nonce value. The client must then retry the authentication process using the updated nonce.
Example response:

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest realm="MLS.IDX.API",
nonce="NjM0NjkxNDY3NDU3NzYuNDo3YWNiNjk3NjIzNmY2MWU2ZmY2ZGRlZWRlMWFiYmVhNw==",
qop="auth"

This ensures that authentication remains secure and that nonce values are used only once per authentication attempt.

Digest Authentication Response Calculations

https://en.wikipedia.org/wiki/Digest_access_authentication

The “response” value is calculated in three steps, as follows. Where values are combined, they
are delimited by colon symbols.

  1. The MD5 hash of the combined username, authentication realm and password is
    calculated. The result is referred to as HA1.
  2. The MD5 hash of the combined method and digest URI is calculated, e.g. of “GET” and
    “/dir/index.html”. The result is referred to as HA2.
  3. The MD5 hash of the combined HA1 result, server nonce (nonce), request counter (nc),
    client nonce (cnonce), quality of protection code (qop) and HA2 result is calculated. The
    result is the “response” value provided by the client.
    Since the server has the same information as the client, the response can be checked by
    performing the same calculation. In the example given above the result is formed as follows,
    where MD5() represents a function used to calculate an MD5 hash, backslashes represent a
    continuation and the quotes shown are not used in the calculation.
    Completing the example given in RFC 2617 gives the following results for each step.
    HA1 = MD5( “Mufasa:[email protected]:Circle Of Life” )
    = 939e7578ed9e3c518a452acee763bce9
    HA2 = MD5( “GET:/dir/index.html” )
    = 39aff3a2bab6126f332b942af96d3366
    Response = MD5( “939e7578ed9e3c518a452acee763bce9:\
    dcd98b7102dd2f0e8b11d0f600bfb0c093:\
    00000001:0a4f113b:auth:\
    39aff3a2bab6126f332b942af96d3366″ )
    = 6629fae49393a05397450978507c4ef1
    At this point the client may make another request, reusing the server nonce value (the server
    only issues a new nonce for each “401” response) but providing a new client nonce (cnonce). For
    subsequent requests, the hexadecimal request counter (nc) must be greater than the last value
    it used – otherwise an attacker could simply “replay” an old request with the same credentials. It
    is up to the server to ensure that the counter increases for each of the nonce values that it has
    issued, rejecting any bad requests appropriately. Obviously changing the method, URI and/or
    counter value will result in a different response value.
    The server should remember nonce values that it has recently generated. It may also remember
    when each nonce value was issued, expiring them after a certain amount of time. If an expired
    value is used, the server should respond with the “401” status code and add stale=TRUE to the
    authentication header, indicating that the client should re-send with the new nonce provided,
    without prompting the user for another username and password.
    The server does not need to keep any expired nonce values – it can simply assume that any
    unrecognised values have expired. It is also possible for the server to only allow each nonce
    value to be returned once, although this forces the client to repeat every request. Note that
    expiring a server nonce immediately will not work, as the client would never get a chance to
    use it.

Appendix L – Reply Codes

TransactionReply
Code
Meaning
Login
Metadata
Search
GetObject
Logout
0Operation successful
Login20022Additional login not permitted
There is already a user logged in with this user name, and this server does not permit multiple logins.
Login20036Miscellaneous server login error
The quoted-string of the body-start-line contains text that SHOULD be displayed to the user
Search20201No Records Found
No matching records were found.
Search20203Miscellaneous Search Error
The quoted-string of the body-start-line contains text that MAY be displayed to the user.
Search20206Invalid Query Syntax
The query could not be understood due to a syntax error.
Search20208Maximum Records Exceeded
The specified server limit exceeds the maximum allowed.
GetObject20400Invalid Resource
The request could not be understood due to an unknown resource.
GetObject20401Invalid Type
The request could not be understood due to an unknown object type for the resource.
GetObject20402Invalid Identifier
The identifier does not match the KeyField of any data in the resource.
GetObject20403No Object Found
No matching object was found to satisfy the request.
GetObject20413Miscellaneous error
The server encountered an internal error.
Metadata20500Invalid Resource
The request could not be understood due to an unknown resource.
Metadata20501Invalid Type
The request could not be understood due to an unknown metadata type.
Metadata20502Invalid Identifier
The identifier is not known inside the specified resource.
Metadata20503No Metadata Found
No matching metadata of the type requested was found.
Metadata20509Metadata Unavailable
The requested metadata is currently unavailable.
Metadata20513Miscellaneous error
The server encountered an internal error.
Metadata
Search
GetObject
Logout
20701Not logged in
The server did not detect an active login for the session in which the Logout transaction was submitted.
Logout20702Miscellaneous error.
The transaction could not be completed. The ReplyText gives additional
information.

Appendix M – Complete List of Metadata Lookups Available

ResourceMetadata-Lookup
PropertyAccess Type
PropertyAmenities
PropertyAmenitiesNearby
PropertyAmperage
PropertyAppliances
PropertyArchitecturalStyle
PropertyBasementDevelopment
PropertyBasementFeatures
PropertyBasementType
PropertyBoards
PropertyBuildingType
PropertyBusinessSubType
PropertyBusinessType
PropertyCeilingType
PropertyClearCeilingHeight
PropertyCommunicationType
PropertyCommunityFeatures
PropertyConstructionMaterial
PropertyConstructionStatus
PropertyConstructionStyleAttachment
PropertyConstructionStyleOther
PropertyConstructionStyleSplitLevel
PropertyCooling Type
PropertyCrop
PropertyCurrentUse
PropertyDocumentType
PropertyEasement
PropertyEquipmentType
PropertyExteriorFinish
PropertyFarmType
PropertyFeatures
PropertyFenceType
PropertyFireProtection
PropertyFireplaceFuel
PropertyFireplaceType
PropertyFixture
PropertyFlooringType
PropertyFoundationType
PropertyFrontsOn
PropertyHeating Type
PropertyHeatingFuel
PropertyIrrigationType
PropertyLandDispositionType
PropertyLandscapeFeatures
PropertyLeaseType
PropertyLiveStockType
PropertyLoadingType
PropertyMachinery
PropertyMaintenanceFeeType
PropertyMeasureUnit
PropertyOwnershipType
PropertyParkingType
PropertyPaymentUnit
PropertyPoolFeatures
PropertyPoolType
PropertyPropertyType
PropertyRentalEquipmentType
PropertyRightType
PropertyRoadType
PropertyRoofMaterial
PropertyRoofStyle
PropertyRoom Level
PropertyRoomType
PropertySewer
PropertySignType
PropertySoilEvaluationType
PropertySoilType
PropertyStorageType
PropertyStoreFront
PropertyStoreFront
PropertyStructureType
PropertySurfaceWater
PropertyTopographyType
PropertyTransactionType
PropertyUffiCodes
PropertyUtilityPower
PropertyUtilityType
PropertyUtilityWater
PropertyViewType
PropertyWaterFrontType
PropertyZoningType
AgentBoards
AgentIndividualDesignations
AgentLanguages
AgentSpecialties
OfficeFranchisor
OfficeOrganizationType
OfficeOrganizationDesignations

CONTACT US

Get In Touch With Us

Ready to transform your real estate platform with the most comprehensive MLS data? Contact us today to get started with our API service and take your business to the next level!