Rapattoni Developer Resources
Rapattoni RETS
RETS (Real Estate Transaction Standard) is a set of conventions (or common language) that allows computers to exchange information about Real Estate transactions. Rapattoni Corporation is proud to offer compliant RETS Servers.
RETS Frequently Asked Questions
Q: I’m a developer and I need access to a Rapattoni RETS Server. What is the process?
A: The first step is to contact either the broker or the association you are working for to obtain a User ID and Password for accessing the MLS. The next step is to contact the MLS and ask them to enter the User-Agent value that will be used by your RETS Client Application when accessing their RETS Server. They may choose to assign you a User-Agent value. Once you have the necessary login credentials, and your User-Agent header has been entered, you will need the MLS’s RETS Login URL, available on the Server Information page. At this point, you should be able to access the MLS’s RETS Server.
Please contact the Rapattoni RETS Support department if you have any question or experience issues accessing the RETS Server.
Q: I currently don’t have a RETS Client Application. How do I get or build one?
A: There are a number RETS 1.7.2 Client Applications available, some for free, and some for purchase. There are also a number of code examples available for reference. You can perform a Web search for these, or check the Real Estate Standards Organization's Tools site. Note that this is by no means an exhaustive list of RETS resources.
Q: I have been given a Username and Password by the MLS and I have received confirmation from both Rapattoni and the MLS that my User-Agent header is entered into the MLS’s RETS Server. How come I still cannot log in?
A: There are a number of reasons for why, even having been provided with your login credentials, you might not be able to log in.
It is possible that one or more of the values you are using in your MD5 authentication is improperly cased, spelled, or referenced. Verify that the values you are using are in accordance with what is specified in the RETS 1.7.2 Specificationand RFC 2617.
Another reason why you may not be able to log in is because you are not utilizing a User-Agent Password (in the event that the MLS has assigned one to your Vendor setup in their RETS Server). Be sure to verify if you have been assigned this value.
Finally, the MLS may have an IP Address filter applied to your Vendor setup in their RETS Server. This means that the MLS has specified that your Client Application’s requests must originate from a specified IP Address.
If you need assistance with a login issue, the best way for us to begin troubleshooting the issue is if you provide us with the HTTP communication generated from your side. When we troubleshoot login issues, we use Wireshark or Fiddler to capture this data.
Q: What is a “User-Agent Header” and how do I get one?
A: A “User-Agent Header” is a field defined in your RETS Client header that describes your RETS Client. It is a string you create and should be unique to your client. Please refer to section 3.3 of the RETS 1.7.2 Specification.
Q: Where can I find the RETS Server Login URL for the MLS from which I am trying to pull data?
A: Please contact MLS Staff directly for the RETS Server Login URL.
Q: My Username and Password do not work after I enter the RETS Server URL into my Web browser.
A: Rapattoni’s RETS Servers are not accessible via Web browsers such as Internet Explorer; access to the RETS Servers requires the use of a RETS Client Application. You can visit the Real Estate Standards Orangization's site for information on Client Applications (and there are also additional resources available beyond the specified site).
Q: I am using my Username and Password as part of my Login transaction request but still can’t login. What am I doing wrong?
A: You must also provide a User-Agent header as part of any request you submit to our RETS Server. Section 3.3 of the RETS 1.7.2 Specification explains what a User-Agent is, in addition to the other required client request header fields. Please contact the MLS if you do not know your User-Agent Header or if you wish to gain access to their RETS Server. In some instances they will accept the value you wish to use, but be aware that they instead may provide you with a specific value that they want you to use.
Q: What should I send in when I have a problem with my RETS request?
A: The best way for us to begin troubleshooting an issue you are encountering is if you provide us with the HTTPcommunication generated from your side. A program such as Wireshark or Fiddler2 will produce a suitable file. If you choose to use Wireshark, we recommend implementing a Capture Filter of “tcp and port 6103” while capturing data. Once you have finished your trace, save it and send the .TRC file to us as an attachment.
Q: What should the RETS-Version request header be in a request against a Rapattoni RETS 1.7.2 Server?
A: The RETS-Version header in your request should be entered as follows:
RETS-Version: RETS/1.7.2
See Section 3.3 of the RETS 1.7.2 Specification for a complete list of the required client request header fields.
Q: What is a User-Agent Password?
A: The User-Agent Password refers to the UserAgent-Password value described in Section 3.10 of the RETS 1.7.2 Specification. It is used in forming the RETS-UA-Authorization digest response value. If the MLS provides you with a User-Agent Password, you will be required to support RETS-UA-Authorization.
Q: How do I get all of the available data?
A: Rapattoni’s RETS Servers have established search limits based on the number of fields specified to be returned and the time at which the Search transaction is submitted. A search limits matrix can be found in the RETS 1.7.2 Server - Product Release Notice. Because of the limits placed on the Server, you will need to utilize the Offset argument in your client. The Offset argument is described in Section 7.4.4 of the RETS 1.7.2 Specification.
Q: What qualifies a listing to be in PropertyWithheld data pulls?
A: The criteria for qualifying a listing to be available in a PropertyWithheld pull can differ from one RETS implementation to the next, but in general a listing must meet at least one of the following criteria:
- The listing is not approved in the MLS (Property.<ClassName>.Approved = False)
- The listing is not supposed to be published to IDX (Property.<ClassName>.PublishToIDX = False)
- The listing’s MLS status is not on market (Property.<ClassName>.OnMarket = False)
- The listing is not supposed to be pushing to the public/Internet (Property.<ClassName>.PublishToInternet = False)
- The listing office does not subscribe to IDX (Office.OFFI.BR = False)
NOTE: The aforementioned dot notation is formatted to indicate the following metadata hierarchy, <ResourceId>.<ClassName>.<SystemName>.
Q: What happens to a listing that is PublishToInternet = Yes, but later is changed to PublishToInternet = No?
A: If the agent or office changes the Publish to Internet flag, then that listing may no longer be available in your RETS feed, unless you are allowed by the association to access non-published listings. If a RETS Client is maintaining an offline database, then the appropriate action would be to remove it from the offline database.
Q: How do I pull pictures from a Rapattoni RETS Server?
A: You must utilize the GetObject transaction as described in Section 5 of the RETS specification. Make sure that the ID value you use in your GetObject request is utilizing the KeyField for the Resource for which you are attempting to pull pictures. The KeyField is publicized in METADATA-RESOURCE.
Q: I am missing one or more SystemNames in my data pulls that I usually see in other RETS implementations. What should I do to get access to them?
A: The MLS determines what SystemNames are available for each vendor. If you feel you are missing one or more SystemNames after viewing the data returned in the Server response of a GetMetadata transaction, please contact the MLS to see if they would be willing to add it to your Metadata Profile.
Q: Is there a way to pull more than one photo or all available photos for a listing in one query?
A: There are a two ways to specify in your GetObject request that you would like all pictures for a listing.
The first method is to determine the total number of pictures affiliated with a listing, and in the GetObject request format your ID value like <ListingRid>:1:2:3:n to retrieve the 1st, 2nd, 3rd through nth picture for the listing specified by the <ListingRid> value. In this case n represents the last picture for the listing.
The second method, and perhaps easier, is to format your ID value like <ListingRid>:*. In this instance you are requesting that the Server return all pictures for the listing specified by the <ListingRid> value.
Q: I use a specific time value in my query and am not getting back the records I am expecting to get back. What is wrong?
A: Keep in mind that unless you specify a time zone offset relative to UTC, a RETS Server will interpret datetime values as UTC (see Section 7.7.2 of the RETS specification for more information on this). The records within the Server response will be returned representing the MLS’s local time.
Q: Why does my session time out?
A: Rapattoni’s RETS Servers are configured to permit 30 minutes of inactivity before deactivating a session. This can occur if:
- The Server took more than 30 minutes to send a response
- You waited more than 30 minutes to start another transaction
Your session can also be deactivated if, while you have one active session, you perform another successful Login transaction. In this scenario, the first session would be deactivated and the second session would now be your active session id.
When your session becomes inactive, you will need to perform another successful Login transaction in order to obtain a new active session.