The RESO Web API is a standardized way to query MLS (multiple listing service) data — but “standardized” doesn’t mean “open.” Access requires MLS membership or vendor certification, and most individual developers can’t just sign up and start pulling listings. If you need U.S. property data without clearing that gate, there’s a same-day alternative below.
What the RESO Web API actually is
RESO (the Real Estate Standards Organization) is the industry body that defines common data formats for U.S. real estate. Before RESO’s standards existed, every MLS exposed listing data in its own proprietary shape, which meant every integration had to be rebuilt per MLS. RESO fixed that with two linked pieces:
- The RESO Data Dictionary — a shared schema (field names, types, enumerations) for listing data like price, bedrooms, property type, and status, so a “ClosePrice” field means the same thing across participating MLSs.
- The RESO Web API — a standardized, OData-based REST interface that MLSs and vendors implement to expose that data in a consistent query format (filtering, pagination, field selection) instead of each MLS shipping a bespoke API.
In short: RESO doesn’t run a live data feed you can query — it defines the contract that individual MLSs and their vendors implement.
Who can actually get access
This is the part that trips up most developers. The RESO Web API standard is public (the spec, documentation, and certification program are open), but the data behind it is not. To pull real listing data through a RESO Web API endpoint, you generally need one of:
- MLS membership — you’re a licensed real estate professional or brokerage with active MLS access, and your MLS’s vendor supports RESO Web API output.
- Vendor/technology partner status — you’re a software vendor who has gone through your target MLS’s (or MLS’s data platform provider’s) approval process to receive a feed, often with data-use agreements, per-MLS onboarding, and sometimes fees.
- IDX/VOW agreements — for public-facing display of MLS listings, requiring separate broker reciprocity or IDX approval on top of the technical access.
Each MLS runs its own approval process, and there’s no single national MLS — coverage is fragmented across hundreds of regional MLS organizations, each with its own gatekeeping, timelines, and data-use rules. For a solo developer or a small team that just needs U.S. property data, this can mean weeks of paperwork per market before writing a line of integration code.
The honest fit: RESO Web API vs. Zillapi
Be clear about what each one is for.
RESO Web API = the MLS-gated standard. It’s the right path when you specifically need licensed, real-time MLS listing data — active listing status, broker/agent detail tied to an MLS record, IDX display rights — and you (or your client) can clear the membership/vendor approval process.
Zillapi = same-day, Zillow-sourced property data — not a licensed MLS/RESO feed. Zillapi is not a substitute for a RESO Web API connection: it doesn’t require or provide MLS membership, doesn’t carry IDX/VOW display rights, and isn’t the standardized MLS schema. What it does give you is one REST call returning 300+ fields per home — price, Zestimate, photos, schools, tax, price history — across 160M+ U.S. parcels, with no MLS approval process and no waiting period. If your product needs “current property data for homes,” not “a licensed live MLS listing feed,” that’s the gap Zillapi fills. For the closest like-for-like on official access routes, see Zillow API vs Bridge Interactive, and for MLS-specific listing-data context see Zillow API for MLS listings.
How to pull property data today (Zillapi)
No MLS agreement, no per-region onboarding — just an API key to the Zillow API. Base URL: https://api.zillapi.com/v1, authenticated with Authorization: Bearer zk_....
# Single property by its Zillow URL (1 credit per record)curl https://api.zillapi.com/v1/properties/by-url \ -H "Authorization: Bearer $ZILLOW_API_KEY" \ --data-urlencode "url=https://www.zillow.com/homedetails/17-Zelma-Dr-Greenville-SC-29617/11026031_zpid/" -Gimport os, requestsr = requests.get( "https://api.zillapi.com/v1/properties/by-url", params={"url": zillow_url}, headers={"Authorization": f"Bearer {os.environ['ZILLOW_API_KEY']}"}, timeout=60,)r.raise_for_status()print(r.json()["data"]["zpid"])const res = await fetch( `https://api.zillapi.com/v1/properties/by-url?url=${encodeURIComponent(zillowUrl)}`, { headers: { authorization: `Bearer ${process.env.ZILLOW_API_KEY}` } });const { data } = await res.json();console.log(data.zpid, data.address, data.price);Response shape: { "data": { "zpid": "11026031", "address": {...}, "price": 295000, "bedrooms": 3, "zestimate": 305100, "rentZestimate": 1850 }, "request_id": "..." }. Need active-inventory-style browsing instead of a single lookup? POST /v1/listings/for-sale takes a bbox and filters (up to 50 results inline, 1 credit each), and POST /v1/search normalizes filters or accepts a pre-built Zillow URL. Failed calls are free.
RESO Web API vs. Zillapi at a glance
| RESO Web API | Zillapi | |
|---|---|---|
| Access model | MLS membership / vendor approval, per-MLS | Self-serve signup |
| Time to first call | Weeks (per-MLS onboarding) | Minutes |
| Data license | Licensed MLS feed, IDX/VOW rights available | Zillow-sourced, no MLS/IDX rights |
| Coverage | Per-MLS (fragmented, ~500+ MLSs nationally) | 160M+ U.S. parcels, single API |
| Schema | RESO Data Dictionary (standardized across participating MLSs) | Zillapi’s own JSON schema, 300+ fields/home |
| Best for | Licensed live MLS listing data, IDX display | App features, AI agents, per-property lookups |
Get property data today
Skip the MLS approval queue if that’s not what your product needs. Start free — 100 credits, no card and pull your first property record in minutes.
Zillapi is an independent service, not affiliated with, endorsed by, or sponsored by Zillow Group, Inc. “Zillow” and “Zestimate” are trademarks of Zillow Group, Inc. “RESO” is a trademark of the Real Estate Standards Organization. All marks are used here descriptively to refer to those services. See our Trademark & Affiliation page.