Trestle’s RETS is based on and compliant with the RETS 1.8 specification and the RESO Data Dictionary standard. Although the RETS specification is no longer being updated by RESO, Trestle continues to provide data access via RETS for customers who do not wish to or cannot switch to WebAPI.
Libraries and Tools
RETS is a very mature protocol, and as such, there are many libraries and tools that you can use. The information provided on the rest of this page will help you get started if you've never used RETS before or if you're trying to modify an existing RETS client to work with Trestle.
CoreLogic offers RETS Connector as an easy tool to help you get up and running, pulling bulk RETS data easily and quickly.
Trestle RETS offers two forms of authentication: basic authentication and OAuth2.
Trestle does NOT support digest authentication
Per RETS standard, Trestle provides a login endpoint. This endpoint provides some details in the returned data about the RETS service; however, Trestle is session-less, which means that you do not need to authenticate at the login endpoint before using the other RETS end points (Search, GetObject, etc.).
GET /trestle/odata/Property?$top=1000 HTTP/1.1 Host: api-prod.corelogic.com Authorization: Basic Y2xpZW50X2lkX2dvZXNfaGVyZTpjbGllbnRfc2VjcmV0X2dvZXNfaGVyZQ==
HttpClient client = new HttpClient(); var userpwd = Encoding.ASCII.GetBytes("client_id:client_secret"); client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue( "Basic", Convert.ToBase64String(userpwd));)
CredentialsProvider provider = new BasicCredentialsProvider(); UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("client_id", "client_secret"); provider.setCredentials(AuthScope.ANY, credentials); HttpClient client = HttpClientBuilder.create() .setDefaultCredentialsProvider(provider) .build();
<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_USERPWD, "client_id:client_secret"); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
For most RETS clients, using basic authentication will be as simple as setting an option to use basic instead of digest authentication. For compatability purposes, you can still make a request to the login endpoint if needed.
Trestle also provides the ability to use RETS with an OAuth2 bearer token. This token is obtained in the same way as described for WebAPI. The only difference is that instead of passing
api for the
scope parameter, you will pass
If you pass
scope=api you will get a
400 Bad Request error
Searching Trestle via RETS is much like searching any other RETS provider. There are a couple of things to keep in mind. When browsing the RESO Metadata, note that the resource name is both the
Class in a RETS search, so a search for properties will require
SearchType=Property&Class=Property. Trestle does not segment properties by property type in RETS.
The other thing to keep in mind is that the default number of records returned is 10 and the maximum you can return in one query is 1,000 (
Limit=1000). We highly recommend using
Limit=1000 to get the most records at once.