MLS data infrastructure
Every market.One endpoint.
Plat normalizes every MLS feed you are licensed for into one RESO schema, and enforces each market's rules on every request.
Available markets
Florida, California and Texas.
Three of the most in-demand housing markets in the country are available now. Need somewhere else? Name it in your request.
The integration tax
The standard is open. Access is not.
RESO publishes the schema but hands out no data. Approval comes from each MLS, credentials come from whichever vendor that MLS runs, and the two are separate errands. In every market.
Who it is for
Built for the teams that touch listing data.
Each licence tier unlocks a different product. Plat serves all three from the same endpoint and enforces the difference for you.
Listing search your compliance team can sign off on.
- Only the fields your IDX licence allows, on every response
- Scoped to the markets your brokerage belongs to
- Radius, polygon and fuzzy address search built in
Portals and CRMs that show clients the full record.
- Close prices and history under VOW, withheld under IDX automatically
- One schema across every market you add
- Sandbox keys while your licences are pending
Valuation and underwriting on complete listing history.
- Every price cut and status change recorded as an event
- The raw upstream value kept beside every field
- Comparables by radius or drawn boundary
Product
Everything between the MLS and your app.
Licensing, normalization and serving in one place, so the data layer under your product is something you configure instead of something you maintain.
Listings APILive
One OData 4.01 endpoint over every market you are licensed for, with RESO field names.
Licence engineLive
IDX, VOW and BBO rules applied to every row on the way out, expanded rows included.
NormalizationLive
Every feed mapped to the RESO Data Dictionary, with the raw value kept beside it.
SandboxLive
Invented listings on the production endpoints, so you build before licences clear.
Change feedSoon
Price cuts and status flips as queryable events.
MediaSoon
Photos deduplicated and re-hosted, never hotlinked.
Listings API
Preview a live query.
OData 4.01 filters over RESO field names, radius and polygon search, and fuzzy matching for half-remembered addresses. This is the production parser, running in your browser against sample listings.
Read the query reference- OData 4.01 filters
- Radius and polygon search
- Fuzzy address match
- RESO field names
- $select, $expand, $orderby
| ListingKey | Address | Status | ListPrice | Beds |
|---|---|---|---|---|
| SAMPLE-0002 | 2214 Barton Springs Rd | Active | $1,185,000 | 4 |
| SAMPLE-0012 | 2601 Barton Hills Dr | Active | $979,000 | 4 |
| SAMPLE-0005 | 4312 Avenue F | Active | $895,000 | 3 |
| SAMPLE-0001 | 1104 W Lynn St | Active | $749,000 | 3 |
| SAMPLE-0007 | 2508 E Cesar Chavez St | Active | $572,000 | 2 |
| SAMPLE-0003 | 1711 S Congress Ave | Active | $525,000 | 1 |
| SAMPLE-0013 | 3415 S Lamar Blvd | Active | $459,000 | 1 |
| SAMPLE-0023 | 2410 Guadalupe St | Active | $399,000 | 1 |
| SAMPLE-0021 | 1611 Riverside Dr | Active | $355,000 | 1 |
Sample data: invented listings on real Austin street names. JSON shows the first three rows as an IDX key receives them.
Licence engine
Every licence, enforced.
Whether a field may be shown depends on how it was licensed. Plat resolves that on every request and never returns a field your key does not cover, including on expanded rows.
See the field rulesInternet Data Exchange
Public search and listing pages. Close prices, buyer-side agents and every platform field are withheld.
8 of 15 fields returned for this listing
| Field | Value | Under IDX |
|---|---|---|
| ListingKey | SAMPLE-0008 | Returned |
| StandardStatus | Closed | Returned |
| UnparsedAddress | 1402 Holly St, Austin, TX 78702 | Returned |
| ListPrice | $499,000 | Returned |
| ClosePrice | Withheld | |
| CloseDate | Withheld | |
| ListAgentFullName | Jordan Lee | Returned |
| BuyerAgentFullName | Withheld | |
| ListOfficeName | Capitol View Properties | Returned |
| BedroomsTotal | 2 | Returned |
| LivingArea | 960 | Returned |
| plat_source | BBO only | |
| plat_geohash | BBO only | |
| plat_ingestedAt | BBO only | |
| plat_raw | BBO only |
Normalization
Built from the feed up.
Feeds disagree about status codes, number formats and which fields exist at all. Plat maps each one to the RESO Data Dictionary and keeps the raw value beside it. A code it cannot map with confidence stays unmapped instead of guessed.
How replication worksHow it works
Live in four steps.
You build while the licences clear. Nothing about your integration changes when a market goes live.
- 01
Request access
Tell us who you are, what you are building and which markets you need. It takes about three minutes.
- 02
Build on the sandbox
Sandbox keys return invented listings on the production endpoints and schema, so the integration is done before any licence clears.
- 03
We file the paperwork
Plat prepares the data licence applications for each market you need and follows them through to approval.
- 04
Markets switch on
As each MLS approves, its listings appear on the same endpoint under the same schema. No code changes.
Request access
Give us the whole picture.
Licensing turns on who you are, which markets you need and what the data will do. Tell us all of it up front and there are fewer round trips between you and live data.
- Five short steps, about three minutes.
- Your answers are saved in this browser until you send them.
- One request per browser, so nothing gets sent twice by accident.
- A confirmation lands in your inbox as soon as you send.
Every market. One credential.
Build once. Switch markets on as they clear.