The short answer
RETS is the old way to pull MLS data and the RESO Web API is its replacement. RESO says RETS has been deprecated and is no longer supported, and MLSs are switching it off. If you still run a RETS integration, plan the move now: authentication, queries, field names and media handling all change, but the overall job, copying listings into your own database and keeping them current, stays the same.
What each standard is
RETS (Real Estate Transaction Standard) is a legacy real estate data standard based on XML. Its last release was 1.9: RESO announced in 2017 that the RETS Workgroup had completed its final release and would be retired, and it discontinued certifying RETS in 2018.
The RESO Web API is, in RESO's words, the modern way to transport data in the real estate industry. It is built on a general web standard rather than a real-estate-specific one: RESO uses the OData V4 standard specification. It is paired with the RESO Data Dictionary, which defines standard resources, fields and lookups; the current certified version is Data Dictionary 2.0, with 1,745 fields and 3,683 lookups.
What changes for a developer
| RETS | RESO Web API | |
|---|---|---|
| Session and auth | A Login transaction; a successful login establishes a cookie that keeps the session alive | OAuth2 bearer tokens and client credentials, over TLS 1.2 or above |
| Queries | DMQL, name-value pair conditions passed in the request URL | OData query options such as $filter, $select and $top |
| Field names | Specific to each MLS; ARMLS notes that RETS field names are not human-readable and apply only to one MLS | RESO Data Dictionary names, shared across MLSs that have adopted them |
| Response format | Tab-delimited (COMPACT) or XML | JSON for data, XML for metadata |
| Paging | Limit and offset parameters, set by each server | Server-driven paging with @odata.nextLink |
| Photos | GetObject, which can return several images in one multi-part (MIME) response | A Media resource with a URL per image; download rules vary by platform (below) |
| Incremental updates | A DMQL filter on the modification timestamp, which returns only records modified since a given time | A $filter on ModificationTimestamp; RESO calls timestamp polling the current state of the art and has ratified an event-log alternative |
The replication pattern itself carries over. RESO describes it the same way for the Web API: replicators initially pull an entire data set, and then continually request the most recent changes. What you rewrite is the transport and the field mapping, not the idea.
The platforms differ more than the standard suggests
“RESO Web API” describes the interface, but each delivery platform publishes its own limits. Two examples from their documentation:
| MLS Grid | Trestle (Cotality) | |
|---|---|---|
| Auth | A simplified OAuth 2 scheme with long-term tokens | OAuth2 client credentials; a token is good for up to 8 hours |
| Access model | Replication only: “We do not support real time data access at this time” | Queries, plus a replication endpoint for more than 1,000,000 records |
| Page size | At most 5,000 records per request | A maximum of 1,000 records per query |
| Rate limits | No more than 2 requests per second, with hourly and daily caps | 7,200 queries per hour and 180 per minute as the baseline |
| Incremental updates | Query using the greatest ModificationTimestamp in your local database; a MlgCanView flag tells you whether to keep a record | Filter on ModificationTimestamp; removed listings need a reconciliation process |
| Media | “You must maintain your own copy of all media files” | Photos are fetched individually from media URLs |
So a migration is not finished when the code speaks OData. Page sizes, rate limits, how deletions are signaled and whether you must host photos yourself all come from the platform your MLS uses, and they shape the sync job.
How far along the industry is
RESO tracks the transition publicly. Its leaderboard says at least 90% of MLSs in the industry have RESO-certified Web API services, and that MLS feeds converted to Web API now cover 62.4% of U.S. subscribers. The gap between those two numbers is the point: most MLSs offer the Web API, but many data consumers are still on RETS feeds. RESO also notes that NAR MLS policy requires compliance with RESO's most recent standards.
Shutdown dates are set by each MLS. Examples from their own pages:
- ARMLS (Arizona): RETS shutoff on December 15, 2023.
- RLCAR (Florida): RETS shutoff on March 31, 2024.
- Metro MLS (Wisconsin): says RETS will be sunset soon, without a date.
- Trestle: continues to provide data access via RETS for customers who do not wish to or cannot switch, and publishes no end date.
If your MLS has not announced a date, ask. An MLS that still serves RETS is not obliged to keep doing so, and notice periods vary.
A migration checklist
- List every RETS feed you consume and, for each, whether the MLS offers the Web API directly or through a platform such as MLS Grid, Trestle or Bridge.
- Check your license. A new feed type can mean a new agreement. Our guide on how to get MLS data access covers the license types and approval steps.
- Map fields from each MLS's RETS names to Data Dictionary names. Expect local fields that have no standard equivalent and decide where they go.
- Rewrite authentication and the query layer for OAuth2 and OData, then the paging loop for
@odata.nextLink. - Rebuild incremental sync around ModificationTimestamp and the platform's way of signaling removed listings.
- Decide where photos live. If the platform requires you to host media, add storage and a download queue that respects its rate limits.
- Run both feeds side by side and compare record counts and a sample of listings before you switch.
- Keep your downstream schema stable where you can, so search and listing pages do not change on the same day as the feed.
We have built pipelines of this kind: our real estate SaaS case study describes a rebuilt MLS sync engine with delta detection, retry logic and per-feed error isolation, and the W3|re case study a pipeline that unifies four MLS systems. Fees for the feeds themselves are in our MLS and IDX cost guide.
Frequently Asked Questions
Is RETS still supported?
Not by RESO, which says RETS has been deprecated and is no longer supported and discontinued certifying it in 2018. Individual MLSs and platforms decide when to switch their RETS servers off, and some still run them.
What is the difference between RETS and the RESO Web API?
RETS is a real-estate-specific, XML-based standard with its own login transaction and query language. The RESO Web API is built on general web standards: RESO uses the OData V4 standard specification with OAuth2 bearer tokens and client credentials and JSON responses.
When will my MLS turn off RETS?
Each MLS sets its own date. ARMLS, for example, set its RETS shutoff for December 15, 2023, and RLCAR for March 31, 2024. Ask your MLS or its data platform directly; many have not published a date.
Do field names change when moving from RETS to the Web API?
Usually, yes. RETS field names were specific to each MLS, while the Web API is paired with the RESO Data Dictionary, whose current certified version is Data Dictionary 2.0, with 1,745 fields and 3,683 lookups. Plan a field-by-field mapping for every MLS you consume.
Can I still replicate MLS data into my own database with the Web API?
Yes. RESO describes the pattern for the Web API: replicators initially pull an entire data set, and then continually request the most recent data changes. Some platforms are replication-only; MLS Grid says it does not support real time data access at this time.
Standards, platform limits and shutdown dates were taken from the linked pages on October 9, 2026. Platform limits change, so check the current documentation before you size a sync job.
