App builder

Turn your IDX feed into an MLS real estate app
with each MLS’s display rules in one place.

Connect the licensed feed you already have and Netiva’s AI builds search pages for the listings your feed allows — synced on a schedule, credited to each listing firm and yours to export.

Starter prompt

Build an MLS real estate web app for a brokerage in two MLSs, with IDX access to both through the RESO Web API. Keep each MLS’s endpoint, disclaimer, allowed statuses and refresh interval in an MLS sources collection. Every hour, sync listings changed since the last run, matched per MLS by listing key, skip any the seller withheld from internet display, hide the street address when address display is off and remove listings that leave the feed. Search and detail pages show the listing firm and its phone, plus that MLS’s disclaimer and the last refresh time. Log each sync run and email the broker when one fails.

Build it in Netiva Paste the prompt into a new workspace and adjust it to your business.
Overview

Who this MLS real estate app is for

Many MLS members show listings through an IDX vendor’s search pages that don’t match the rest of their site and can’t be changed much. Running your own display is allowed, but it comes with duties: refresh the data as often as your MLS requires, name the listing firm on every listing, hide addresses sellers withheld and drop listings that leave the feed. An MLS real estate app built with Netiva connects to the IDX or RESO Web API feed you’re already licensed for and keeps each MLS’s display rules in one place your broker can review.

Key features

What your MLS real estate app can do

  • Scheduled feed sync

    The app calls your MLS or data vendor’s API with a key stored securely and runs as often as you set for each MLS, pulling only listings changed since the last run — so you can keep the interval inside the refresh window your MLS requires.

    • Incremental pulls based on each listing’s modification timestamp
    • Listings that drop out of the feed removed on the next run
    • A log of every run with counts of updated and removed listings
    • An email to the broker when a run fails or is overdue
  • Display rules for each MLS

    Each MLS you belong to gets one record holding its disclaimer, logo, allowed statuses and refresh interval. Search and detail pages read from it, so a rule change is an edit in the grid, not a rebuild.

    • Listing firm and its phone or email on every card and detail page
    • The MLS notice and last refresh time under every result list
    • Seller opt-outs honored for the whole listing or just the address
    • Showing instructions and other broker-only fields kept off pages
  • MLS-wide search on your domain

    Result and listing pages render from the synced listings, on your own domain and under your brokerage’s name, so buyers who search from your site stay on it.

    • Filters for city, ZIP code, MLS area, price, beds and property type
    • Direct lookup by MLS number
    • Your office’s listings in a featured row above MLS-wide results
    • Results sorted by list date or price across every MLS you’re licensed for
  • Area pages with a wording check

    Neighborhood and ZIP code pages pull current listings by objective criteria under copy your team writes. The collection assistant can draft it, and nothing is published until a signed-in reviewer approves it.

    • Criteria limited to location, price, property type and status
    • Draft, in review, approved and published states
    • The reviewer’s name saved from their sign-in
    • Copy about homes, streets and amenities, not who should live there
Data model

The collections behind it

Netiva keeps your records in built-in collections. Here’s a starting structure — the agent adapts it to your prompt, and you can change it any time.

MLS sources

One record per MLS you’re licensed with, holding the connection details and the display rules it sets.

  • Name (required) The MLS’s name as it should appear on listings Text
  • API endpoint (required) RESO Web API or vendor URL; the key is stored as a secret, not here Text
  • Refresh interval (required) Hours between syncs; no longer than your MLS allows (NAR’s policy: 12) Number
  • Allowed statuses (required) Active, Active Under Contract, Pending, Closed — as your MLS permits Text
  • Disclaimer (required) The MLS’s required notice, shown with every result list and listing Paragraph
  • MLS logo Only if the MLS asks for it Image
  • Primary counties Where this MLS’s record wins when a home is in two MLSs Text
  • Last successful sync Date & time

Listings

Listings mirrored from the feed; add city, ZIP code, beds, property type, MLS area and the listing photos your license lets you display.

  • Listing key (required) RESO ListingKey — unique within one MLS, so the sync matches on MLS source plus this key Text
  • MLS number (required) RESO ListingId, the number agents and buyers look up Text
  • MLS source (required) Relation to MLS sources
  • Status (required) RESO StandardStatus: Active, Active Under Contract, Pending, Closed… Text
  • List price (required) Number
  • Listing office (required) Office name plus the phone or email it provides; shown on every display Text
  • Address display (required) Yes or No from InternetAddressDisplayYN; No hides the street address Text
  • Modified at (required) ModificationTimestamp from the feed; drives incremental syncs Date & time

Sync runs

A record of every scheduled pull, so you can see when each MLS’s data was last refreshed.

  • MLS source (required) Relation to MLS sources
  • Started at (required) Date & time
  • Finished at Date & time
  • Result (required) Succeeded, Partial or Failed Text
  • Listings updated Number
  • Listings removed Left the feed or moved to a status the MLS doesn’t allow Number
  • Skipped as withheld Seller opted out of internet display Number
  • Error details Paragraph

Area pages

Agent-written pages for neighborhoods and ZIP codes, each listing the current homes that match its criteria.

  • Title (required) Text
  • ZIP codes or MLS areas (required) Objective location criteria only Text
  • Property types RESO PropertyType values such as Residential, Land or Farm Text
  • Page copy (required) Describes homes, streets and amenities, not the people who live there HTML
  • Cover image Your own photo, not one taken from a listing Image
  • Review status (required) Draft, In review, Approved or Published Text
  • Reviewed by Filled in from the signed-in reviewer Text

Required field. Types are Netiva collection field types.

Screens

Pages and screens to start with

A typical first version. Ask the agent for more, or annotate the preview to change any of them.

  • Home search

    MLS-wide results with filters, the listing firm on every card, and the MLS notice and last refresh time below the list.

    Public
  • Listing detail

    Photos and facts from the feed, the listing firm and its contact, the street address only when the seller allowed it and the source MLS’s notice.

    Public
  • Area page

    Your approved copy about a neighborhood or ZIP code above the current listings that match its criteria, updated with every sync.

    Public
  • Feed health

    Each MLS’s last successful sync, the next scheduled run, recent failures and how many listings were skipped or removed.

    Your team
  • MLS rules

    Each MLS’s disclaimer, logo, allowed statuses, refresh interval and primary counties, editable without touching code.

    Your team
  • Area review

    Area pages waiting for a wording check, with the matching listings previewed beside the draft copy.

    Your team
How it works

From prompt to a live MLS real estate app

  1. Get your feed approved

    Ask your MLS, or the data vendor it works with, for IDX access. Sign the license agreement with your broker’s approval, then collect the API endpoint, the credentials and the list of fields and statuses your license covers.

  2. Describe your MLSs and rules

    Tell the agent which MLSs you belong to, which statuses and fields your license allows and how often to refresh. It drafts the collections, the sync job and the public pages.

  3. Check attribution in the preview

    Open a result list and a listing in the live preview next to your MLS’s IDX rules. Annotate anything missing, such as the listing firm’s phone number, and the agent fixes it.

  4. Notify your MLS and publish

    Tell your MLS you plan to display IDX data and give its staff access to review the site, then publish in one click. Every change is checkpointed if a rule update needs a rollback.

Why Netiva

Netiva vs a traditional build

Building an MLS real estate app with Netiva compared with a traditional build
Criterion With Netiva Traditional build
IDX display rules Attribution, disclaimer and allowed statuses stored per MLS in a collection you can edit Fixed vendor templates, or a developer hard-coding each MLS’s attribution and disclaimer
Feed refresh monitoring A record of every scheduled sync and an email to the broker when a run fails Finding out the feed stalled when a buyer asks about a home that already closed
Getting started Describe what you need in chat and watch it take shape in a live preview Hire developers, or stitch together templates, plugins and a hosting plan
Content and data Built-in collections with nine field types, bound straight to your pages Set up and connect a separate database or CMS
Making changes Ask the agent; every change is checkpointed and reversible File a ticket, wait for a sprint, redeploy
Hosting and domain Global hosting and automatic SSL; connect a custom domain from the Starter plan Buy hosting, then install and renew SSL certificates yourself
Code ownership Clean production code you own and can export Locked into a template, plugin or agency setup
Examples

Ways teams use it

  • A solo agent in one MLS

    With the broker’s consent, the agent runs MLS-wide search on a personal domain that matches the rest of the site, while every listing still names the brokerage that holds it.

  • A brokerage in two overlapping MLSs

    Offices near a county line belong to both MLSs. Each listing carries its source MLS and that MLS’s notice, and homes entered in both appear once, taken from the MLS marked primary for that county.

  • A team that farms three ZIP codes

    The team lead keeps an area page for each ZIP code. The collection assistant drafts first versions, the broker checks the wording and each page lists the homes currently for sale there.

Good to know

Before you build

  • You bring the MLS data

    Netiva doesn’t supply MLS or IDX data. You need a feed through your MLS or its vendor, a signed license and, as an agent, your broker’s consent. Your license also decides whether listings may be stored or must be queried live.

  • Each MLS writes its own IDX rules

    NAR’s IDX policy sets the baseline for REALTOR-affiliated MLSs, and each one writes it into its own rules. Check yours for refresh timing, attribution, allowed statuses and sold data, and recheck when they change. Where sale prices aren’t public, sold prices may be restricted.

  • Fair housing covers your own copy

    Area pages and any text you add are advertising. Describe homes, streets and amenities, not who you think should live there, and avoid phrases like “perfect for young families” or “safe neighborhood.” That holds for a draft the collection assistant wrote as much as for your own.

  • More data behind a sign-in is a VOW

    Showing MLS data to registered clients beyond what IDX allows usually falls under your MLS’s virtual office website (VOW) rules, with a broker-consumer relationship, registration and terms of use. Ask your MLS before you build it.

Compliance note

Netiva doesn’t supply MLS data. Listings come from the IDX or RESO Web API feed you’re licensed for, and your display must follow that MLS’s attribution, refresh and seller opt-out rules. The copy you write around them — area pages, headlines, filters — is advertising under fair housing law. The app keeps the rules and records who approved each page; it doesn’t make either one compliant.

FAQ

Questions about building an MLS real estate app

Does Netiva provide MLS listings or an IDX feed?

No. Netiva builds the web app; the listings come from a feed you’re licensed for through your MLS or its data vendor. Netiva apps can call any REST API with keys stored securely, so you give the agent your RESO Web API or vendor endpoint and it builds the sync job and pages around it. Your license and MLS rules decide what you may show.

What’s the difference between IDX and the RESO Web API?

IDX is the MLS policy that lets participating brokers show each other’s listings on their websites. The RESO Web API is a data transport standard, built on OData, that many MLSs and vendors use to deliver listing data. It replaced RETS, which RESO no longer supports. IDX is the permission; the Web API is one way the data arrives.

How often does an MLS real estate app need to refresh listings?

At least as often as your MLS requires. NAR’s IDX policy says displays must refresh at least every 12 hours, and your MLS may set its own timing. The sync runs as a scheduled job, pulls listings changed since the last run by their modification timestamp and records each run, so you can see when the data was last updated.

Can I show pending and sold listings?

Only what your MLS includes in its IDX feed and lets you display. NAR’s IDX policy covers active, pending and sold data, but where sale prices aren’t publicly available an MLS may restrict showing them, and it may bar expired or withdrawn listings. You store the allowed statuses for each MLS, and the sync removes listings that move outside them.

Can my office’s listings appear above the rest of the MLS?

Yes, in a featured row chosen by listing office, with MLS-wide results below it. For those results, IDX policy lets you pick which listings to show only by objective criteria such as location, list price, property type or type of listing. Other brokers’ listing content can’t be modified, so their remarks and photos appear as the feed delivers them.

Which Netiva plan do I need to run MLS search on my own domain?

You can build and test the app on the free plan, and calling your feed’s REST API works on every plan. Connecting a custom domain needs the Starter plan or higher, and higher plans add capacity and features. Check Netiva’s pricing page for the current plans before you notify your MLS and go live.

Drafted with AI assistance from Netiva’s product pages and reviewed by the Netiva team. Example data models, screens and prompts are illustrative starting points, not customer projects.

Build your MLS real estate app today

Describe it in a sentence and watch Netiva’s agent build it. Free to start — no credit card required.