Trestle hands you a RESO Web API feed for each MLS you are approved for. We sync it into your WordPress, Laravel or custom site, and keep it current every 2 to 3 hours.
POST /oidc/connect/token client_credentialsGET /Property?replication=true@odata.nextLink$filter=ModificationTimestamp gt {last}Media ordered by OrderTrestle delivers the data. Getting it into your own site, with solds, rosters, photos and the board's display rules, is the part nobody sells. We ran Trestle feeds on a multi MLS platform we built and ran from 2018 to 2025.
Trestle is a real estate data distribution platform run by Cotality, the company formerly known as CoreLogic. It collects listing and membership data from MLSs, maps it to the RESO Data Dictionary, and hands it to approved technology providers and brokers through one API.
Trestle's own FAQ says it carries data from over 90 multiple listing organizations across North America. Its own documentation lists RESO certification for both the Data Dictionary and the Web API. Data comes through the RESO Web API, and a RETS interface is still offered for older applications.
What sets it apart is the licensing workflow. Trestle runs the contract between you and the MLS through its dashboard, with e-signing and billing in one place, though Cotality is not a party to the licence itself.
Trestle handles the paperwork, but the MLS decides. You, or the developer working for you, request a connection through the Trestle dashboard and the MLS approves it.
Register as a technology provider, or as a broker if you are licensing your own data. The account holds your contracts, credentials and billing.
From the dashboard, add a connection to your MLS and pick the feed type, such as IDX or IDX Plus. The feed type sets which statuses you receive: an IDX feed has no solds, IDX Plus has some.
Trestle sends an e-sign contract to every party. MLSs often want a broker or agent to ratify it, and some ask for a regular report of which members use the product.
Once approved, you get a client ID and secret. They are tied to one product and feed type, so an IDX feed and an IDX Plus feed need two sets.
Trestle offers a sample feed to build against. The sync is pointed at the live connection once the contract is active.
Trestle documents its WebAPI in detail. These are the parts that shape how a sync is built.
01Property, Member, Office, OpenHouse and Media, plus CustomProperty, PropertyRooms, PropertyUnitTypes, Teams and TeamMembers. Related records can come in the same request through $expand.
02The default page is 10 records and $top goes up to 1,000. @odata.nextLink gives the next page, so the client does not have to track $skip itself.
03Adding replication=true switches to a replication endpoint built for large sets, past one million records. It cannot skip, so a failed run starts again from the beginning.
04Records are tracked on ModificationTimestamp, which also changes when Trestle remaps a field. Photos are tracked on PhotosChangeTimestamp, a field on the Property record.
05Changes do not tell you what left the feed. Trestle's guide says to pull every ListingKey and remove the records that are missing, which is the job of a daily purge.
06Each photo has a public MediaURL with its own quota, separate from API queries, so photo downloads do not eat into listing pulls.
07Limits are set per hour with a per minute burst, and reported in response headers. Going over returns a 429, and Trestle recommends waiting longer before each retry.
Things that only show up once a feed has run for a few months. We learned them on a multi MLS platform we built and ran from 2018 to 2025.
Tokens are cached and refreshed on expiry, so a long full pull does not fail halfway through.
Full pulls go through the replication endpoint. Regular runs use a filtered query on ModificationTimestamp.
One set of Trestle credentials can cover several MLSs you are approved for, and each MLS still has its own field quirks. Adding another is the same code, plus a small filter class for that MLS's fields.
Listings marked not for internet display are never stored, so they can't leak onto a page.
The token lasts 8 hours, so it is cached in the database and refreshed before it runs out, never fetched on a page load. The sync runs from a server cron job rather than WP-Cron, because a long replication pull should not depend on site traffic. Listings land in their own tables, and pages query those.
The sync is a set of queued jobs on the scheduler: one for changes, one for photos keyed on PhotosChangeTimestamp, one for the purge. The token sits in the cache with its expiry. Quota headers are read on each response, and a 429 puts the job back on the queue with a delay.
Any stack that can make HTTPS calls and run a scheduled task will do. The sync writes into one listing schema in your database, and your pages read that. Trestle's MediaURL quota is separate, so photo downloads can run in their own worker without slowing listing updates.
Your listings never go blank. The new sync runs beside whatever feeds the site today, and we only switch when the two match.
We check your Trestle access, your platform and what the site needs to show.
It fills its own tables while your current listings stay up.
Counts, statuses, photos and rosters checked against the feed.
Pages read from the new sync. The old plugin or script is removed.
Many MLSs hand their data to more than one platform, so you may be offered Trestle and another route for the same board. The data is mapped to the same RESO standard either way. What differs is the cost per connection, the paperwork, and the limits on each request.
Trestle fits when you want several MLSs under one account and one billing setup. If your MLS charges less through another route, or you only need one board, that route may cost less. The audit compares what your MLS offers before anything is built.
Your site's address, what it runs on, and which MLS or feed you have access to.
Access, fields, photos, rosters, and how your platform stores listings.
What syncs, how often, what shows where, and a fixed price for the build.
If you go ahead, the $499 comes off the integration.
We are an independent developer. We are not affiliated with, or certified by, any MLS or data provider named on this page.
Send the site's address and the feed you have access to. The audit gives you a written plan and a fixed quote.