MLS data is the backbone of every real estate application. Listing prices, days on market, property photos, agent details. If you’re building a property search tool, a CRM, or an investment analysis platform, you need this data.

Getting access is the hard part. There are 580+ MLSs in the United States. Each one has its own licensing process, its own data format, and its own rules about how you can display the data. Some take days to approve. Some take months.

This guide covers every path to MLS listing data in 2026: direct RESO Web API access, aggregators, IDX providers, and REST API alternatives that skip the licensing entirely.

What is an MLS API?

An MLS (Multiple Listing Service) is a database that real estate agents use to share property listings. When an agent lists a home for sale, the listing goes into the local MLS. Other agents search the MLS to find properties for their buyers.

An MLS API is the programmatic interface to that database. Instead of searching through a web portal, you make HTTP requests and get structured data back.

The problem is that “MLS API” isn’t one thing. There are hundreds of MLSs, and the path to accessing each one depends on who you are and what you’re building.

What are the ways to access MLS data?

There are four paths. Each one has different requirements, costs, and data coverage.

Path 1: Direct RESO Web API access

The RESO (Real Estate Standards Organization) Web API is the industry standard. It replaced the older RETS protocol, which was an XML-based system from the late 1990s. RESO is no longer updating RETS, and most MLSs are actively migrating to the Web API.

The RESO Web API uses RESTful architecture with JSON responses, OAuth 2.0 authentication, and standardized field names from the RESO Data Dictionary.

To use it, you need a data license from the specific MLS you want to access. That means:

  1. Apply to the MLS as a technology vendor
  2. Sign a data license agreement
  3. Get approved (days to months depending on the MLS)
  4. Pay monthly licensing fees ($50 to $500 per MLS)
  5. Build to their specific implementation of the RESO standard

A typical RESO Web API request looks like this:

GET https://api.mymls.com/reso/odata/Property?$filter=StandardStatus eq 'Active'
&$select=ListPrice,BedroomsTotal,BathroomsTotal,LivingArea
Authorization: Bearer {oauth_token}

The response comes back as OData-formatted JSON with standardized field names like ListPrice, BedroomsTotal, and StandardStatus.

The upside is that you get the freshest data directly from the source. The downside is that you need a separate license for every MLS you want to cover. Building a nationwide product means 580+ separate agreements.

Path 2: Aggregators

Aggregators hold data licenses with multiple MLSs and expose a unified API. You sign one agreement with the aggregator instead of 580 separate MLS agreements.

The major aggregators:

Bridge Interactive is Zillow’s data platform. It aggregates MLS feeds into a normalized RESO Web API. You apply at bridgeinteractive.com, and approval requires MLS affiliation or a technology vendor agreement. Pricing starts around $500 per month for MLS-wide feeds.

Spark API by FBS gives developers access to MLS data including listings, saved searches, and market statistics. API access costs $50 per month per MLS connection. You need MLS membership or broker sponsorship.

Trestle by CoreLogic aggregates data from 300+ MLSs into a single RESO-compliant API. Enterprise pricing. You talk to a sales rep.

Aggregators solve the scale problem. One integration covers multiple markets. But they still require MLS affiliation or vendor agreements, and pricing adds up as you add markets.

Path 3: IDX providers

IDX (Internet Data Exchange) is a policy framework that lets agents display each other’s listings on their websites. IDX providers handle the MLS data licensing and give you a frontend widget, WordPress plugin, or API to display listings.

SimplyRETS provides a developer-friendly REST API and WordPress plugins for agents and brokers who already have MLS access. You pull your own approved MLS data through a modern API. Pricing is per-MLS subscription.

Diverse Solutions, iHomefinder, and IDX Broker offer similar services. They handle the data licensing and compliance, and you build on top of their API or embed their widgets.

IDX providers are the fastest path to displaying listings on a website. The trade-off is that you’re limited to IDX display rules. You typically can’t store the data, use it for analytics, or build products that compete with the MLS.

Path 4: Third-party REST APIs (no MLS license needed)

If you need property and listing data without MLS licensing, third-party REST APIs provide an alternative path. These APIs source property data independently and return it through standard REST endpoints.

Zillapi returns 300+ fields per property including listing status, price, days on market, listing agent details, photos, Zestimates, tax records, and price history. No MLS affiliation required. No approval process.

import requests, os
r = requests.get(
"https://api.zillapi.com/v1/properties/by-address",
params={
"address": "17 Zelma Dr, Greenville, SC 29617",
"fields": "price,homeStatus,daysOnZillow,listingAgent,bedrooms,bathrooms,livingArea,zestimate,photos",
},
headers={"Authorization": f"Bearer {os.environ['ZILLAPI_KEY']}"},
)
data = r.json()["data"]
print(f"Address: {data['address']['streetAddress']}")
print(f"Status: {data.get('homeStatus', 'N/A')}")
print(f"Price: ${data.get('price', 0):,}")
print(f"Days on Market: {data.get('daysOnZillow', 'N/A')}")
print(f"Beds/Baths: {data.get('bedrooms')}/{data.get('bathrooms')}")
print(f"Sqft: {data.get('livingArea', 0):,}")
print(f"Zestimate: ${data.get('zestimate', 0):,}")
print(f"Photos: {len(data.get('photos', []))} images")

One API call. One credit ($0.005). No MLS license. No approval wait.

The trade-off is that this data doesn’t come directly from the MLS feed. It comes from property records, public data, and Zillow’s own data pipeline. For most development use cases (property search apps, investment analysis, CRM enrichment, market reports), this covers what you need. For IDX-compliant listing display on a brokerage site, you still need an MLS-licensed solution.

How do these paths compare?

FeatureRESO Web API (Direct)AggregatorIDX ProviderREST API (Zillapi)
MLS license neededYes (per MLS)Yes (via aggregator)Yes (via provider)No
Approval timeDays to monthsDays to weeksDays60 seconds
Monthly cost$50-500/MLS$50-500/MLS$30-200/MLS$5 for 1,000 calls
Data freshnessReal-timeNear real-timeNear real-timeDaily updates
CoverageSingle MLSMultiple MLSsSingle MLSNationwide
ZestimatesNoNoNoYes
Tax recordsNoNoNoYes
Price historyLimitedLimitedNoYes
PhotosYesYesYesYes
Best forMLS-affiliated appsMulti-market platformsAgent websitesDevelopers and analytics

The right path depends on what you’re building and whether you have MLS affiliation.

When should I use an MLS-licensed API?

You need a direct MLS connection if your product requires IDX compliance. That means displaying active listings on a brokerage website with proper attribution, MLS branding, and listing office credit. MLSs have strict rules about how listings are displayed, and violating them can result in losing your data license.

Brokerage websites, IDX search tools, and apps built for licensed agents typically need this path.

When should I skip the MLS and use a REST API?

Most developers building property data products don’t need a direct MLS connection. If you’re building any of these, a REST API covers your data needs:

The most common case is investment analysis. Tools that calculate yield, cap rate, and cash flow need Zestimates, rent estimates, tax records, and price history. One API call returns all of that.

Property search apps come next. You get listing status, price, photos, and agent details without MLS compliance overhead.

Then there’s CRM enrichment. When a lead enters your pipeline, one API call per address fills in every property field automatically.

Analytics dashboards and market reports aggregate pricing trends across neighborhoods. Search endpoints return bulk data by area.

And appraisers use the comps data. Search for recently sold properties, calculate price per square foot, and build valuations from actual sale prices.

For these use cases, spending $500+ per month on MLS licensing doesn’t make sense when a $5 API plan covers the same data.

How do I search for listings through the API?

The search endpoint returns properties matching your criteria within a geographic area:

r = requests.post(
"https://api.zillapi.com/v1/search",
json={
"bbox": {
"north": 34.90,
"south": 34.80,
"east": -82.35,
"west": -82.45,
},
"listingStatus": "FOR_SALE",
"homeType": ["SINGLE_FAMILY"],
"minPrice": 200000,
"maxPrice": 400000,
"minBeds": 3,
},
headers={"Authorization": f"Bearer {os.environ['ZILLAPI_KEY']}"},
)
listings = r.json()["data"]
print(f"Found {len(listings)} active listings\n")
for listing in listings[:5]:
addr = listing["address"]["streetAddress"]
price = listing.get("price", 0)
beds = listing.get("bedrooms", "?")
baths = listing.get("bathrooms", "?")
sqft = listing.get("livingArea", 0)
print(f"{addr} - ${price:,} - {beds}bd/{baths}ba - {sqft:,} sqft")

One search call costs 1 credit. You can filter by listing status (FOR_SALE, RECENTLY_SOLD, FOR_RENT), home type, price range, beds, baths, and geographic bounding box.

For listing alerts, run this search on a daily schedule and compare results against previous runs to find new listings. See the agents guide for the complete listing alert workflow.

How much does MLS API access cost?

The cost gap between MLS-licensed APIs and REST alternatives is significant:

PathSetup costMonthly costPer-call costCoverage
Direct RESO (1 MLS)$0-1,000$50-500Included1 MLS
Aggregator (1 MLS)$0-500$50-200Included1 MLS
IDX provider$0-200$30-200Included1 MLS
Zillapi (free tier)$0$0$0.005Nationwide
Zillapi (monthly)$0$5$0.005Nationwide
Zillapi (annual)$0$4.50/mo$0.0045Nationwide

A developer building a property search app that covers 5 MLS markets would pay $250 to $2,500 per month for MLS-licensed access. The same developer could use Zillapi for $5 per month and cover every market in the country.

No credit card needed for the free tier. 100 property lookups for $0.

How do I get started?

If you need MLS-licensed data for IDX compliance, start with Bridge Interactive or Spark API. Apply through their developer portals and expect a multi-day approval process.

If you need property and listing data for development, analytics, or any non-IDX use case, go to zillapi.com. Sign up with your email. Get 100 free credits. Make your first API call in under 60 seconds.

For the full property field reference, see the property data API guide. For getting your API key, follow the step-by-step walkthrough. For Python code examples, see the Python tutorial. For comparable sales and CMA workflows, see the comps API guide.

Frequently asked questions

Is there a free MLS API?

No MLS offers a truly free API. Every MLS charges licensing fees, typically $50 to $500 per month per MLS connection. However, you can access property listing data without MLS licensing through third-party REST APIs like Zillapi, which returns listing status, price, photos, and 300+ fields for $0.005 per call. The free tier gives 100 credits at signup with no credit card required.

What is the RESO Web API?

The RESO Web API is the industry standard for accessing MLS data. It replaced the older RETS protocol. It uses RESTful architecture with JSON responses, OAuth authentication, and standardized field names from the RESO Data Dictionary. You need a data license from each individual MLS to use it. There are 580+ MLSs in the U.S., and each one has its own licensing process.

How much does MLS API access cost?

Direct MLS data licenses cost $50 to $500 per month per MLS, plus setup fees. Aggregators like Bridge Interactive and Spark API charge $50 to $200 per month per MLS connection. IDX providers like SimplyRETS charge per-MLS subscription fees. Third-party REST APIs like Zillapi cost $5 per month for 1,000 property lookups with no MLS license required.

Can I access MLS data without being a real estate agent?

Yes, but not through the MLS directly. MLSs require broker or agent membership, or an approved technology vendor agreement. Developers without MLS affiliation can access listing data through third-party REST APIs that source data independently. Zillapi returns listing status, price, photos, listing agent details, and property data for any U.S. property without MLS membership.

What is the difference between RETS and RESO Web API?

RETS is the older XML-based protocol that MLSs used since the late 1990s. It is now deprecated. The RESO Web API is its replacement. It uses JSON instead of XML, OAuth instead of basic auth, real-time queries instead of batch downloads, and standardized field names across all MLSs. Any new MLS integration should use the RESO Web API exclusively.

Can I get MLS listing data through a REST API without a license?

Yes. Third-party APIs return property and listing data without requiring an MLS data license. Zillapi returns listing status, price, days on market, listing agent information, photos, and 300+ other property fields through a standard REST endpoint. One API call costs 1 credit ($0.005). No MLS affiliation, no approval process, no monthly MLS fees.