Sync MLS Data To Your Server, For Free

Stop spending your development dollars on syncing MLS data
and start focusing on building your awesome product

Are you a developer? Check out the code and instructions on Github.

Want to chat or get interactive technical support? Join our Discord server!

What is OpenReSync?

Open Real Estate Sync (OpenReSync) is an open source Node.js application that syncs (replicates) MLS data from one or more sources via the RESO Web API (such as Trestle, MLS Grid, or Bridge Interactive) to one or more destinations (MySQL and Solr are supported so far, and it's easy enough to add more), and allows you to see the sync status via a local admin website.

Do you currently use software or a service that syncs MLS data via RETS? OpenReSync is the same idea but uses the newer standard of RESO Web API.

It does the syncing for you, and helps you answer these questions:

  • How closely does my data match the MLS's data?
  • When did the last sync occur and was it successful?
  • What is the most recent record (e.g. listing)?
  • Easy but Powerful

    Works quickly out of the box but heavily customizable

  • No Search Limits

    when you search on your own server

  • It's Free

    (Premium support is available)


"Because of this project we were able to skip ahead a great part of our development. We were going to do this ourselves and then we stumbled on this project. We literally saved a month of development. Maybe more. And we were able to work on what makes us unique. It's running for a month now and keeping the database in sync."

-Albert Gukasian

  • Connect to any number of MLSs via Trestle, MLS Grid, Bridge, and more

  • Sync any number of resources/subresources

    Such as Property, Media, Open House, etc. Connect to any subset using $filter, $select, and $expand, etc.

  • Sync as often as you like

    For example, every 15 minutes, or even every 5 minutes

  • Sync to any number of MySQL or Solr destinations

    Customize exactly what goes into your databases

  • Stats website

    See how closely in sync your data is with the MLS

How It Works

1. Install and configure

2. Run the sync tool

It will take minutes to hours for the first sync (depending on the size of the dataset from your MLS). Subsequent syncs usually take a minute or less (depending on how often you run them).

3. Check the website

View the status and stats in the provided local admin website


You will need:

1. Connection information to MLS (or platform like Trestle, MLS Grid, or Bridge, etc)

You work with each MLS to get these. If you want free trial data, you can visit

2. A server with MySQL and/or Solr databases

3. A developer familiar with Node.js to run the sync tool

Q & A

The industry needs some help to drive innovation. Less time spent reinventing the wheel means innovation elsewhere.

Premium paid support will be available to those who need it at the enterprise level.

It's true that the RESO Web API is generally superior to the older RETS standard, and one reason is it typically allows you to efficiently query the API for specific results that could then e.g. be shown on a website. However, here are a number of use cases to sync the data locally.

In the following list, there are ideas that are beyond what this application does on its own. But you'd have the power to take things another step and accomplish things the RESO Web API can't.

  • Not all platforms support direct querying via the API. For example, MLS Grid only supports replication.
  • Aggregates like "What's the median price?", or "What's the average number of pictures per listing?"
  • Massage data
    • E.g. in Phoenix, Ahwatukee is not a city, but people treat it like one. You could make searches done by your users automatically turn requests for the village (not city) of Ahwatukee into a search for the 3 zip codes representing Ahwatukee.
    • Make your own fields. For example, there is no address field, but you could make your own. This could simplify your code.
  • Full text search, e.g. searching the public remarks field using full stemming. This would likely require an extra destination not currently offered, such as Elastic Search. But the point is that this can't currently be done via RESO Web API.
  • Reference other fields
    • E.g. say I want to do a query to see where ModificationTimestamp != MediaModificationTimestamp on the Media resource. But you can't do such a complex query in RESO Web API.
  • Basically anything the RESO Web API doesn't offer. For example, some platforms offer polygon searches. But you can't e.g. search with a simple centroid and radius. If you build your own API using the data synced by this tool, you could do such a thing.

(If you don't fit into any of the cases listed above, then you will probably be better off querying the MLS platform directly.)

Another advantage of syncing the data and creating your own API is you basically avoid quota limits.

Yes, it just syncs the data. But this is the mission of this project and should be a large chunk of any work needed to produce a project that uses the data. You'll still have work left to do such as field mapping (especially if you use multiple MLS sources and intend to harmonize their data and show it in one place consistently). Of course whether you're allowed to show the data publicly is a legal concern you'll need to talk with each MLS about.

Yes! For example there are users running OpenReSync in production with REBNY (New York),, and RMLS (Portland/Pacific Northwest). Others like Spark haven't been tested yet, but the codebase is set up to add more without too much work.

What if I have questions?

We'd be happy to answer questions! Contact us.