MLS / IDX Resources Nov 2, 2023 · 26 min read

How to Integrate MLS Into a Website

B
Benjamin Levy
Contributor · MLSimport

Last updated: August 19, 2026

To integrate MLS into a website: get authorized MLS access, choose embedded IDX or a native import, connect the approved feed, map the fields, publish the search and listing pages, then follow the MLS display rules. Linking MLS to your website means the same thing, an authorized data feed running on credentials issued to you, not a hyperlink.

That order holds whether you’re an agent, a broker, or the developer building for one. The step that decides everything else is the second one. Pick an embedded IDX display and the listing content lives on a vendor’s servers. Pick a native import and it lands in your own site’s database, on your own domain, under your own permalinks.

The rest of this page covers the route decision, what you need before you connect, the connection sequence, field mapping, publishing, the display rules, and what it costs.

Can someone add an MLS feed to the website I already built?

Yes. A developer or IDX setup specialist can often add approved MLS search and listing pages to the site you have, so ask for an integration quote before you pay for a new website. Tell them your platform, your MLS, your domain, and whether you want the listings stored as pages on your site or shown by a hosted service.

On WordPress, MLS Import adds the listings as property posts, through a supported real estate theme or its Standalone mode on any other theme. Our team offers an onboarding call, and a hired developer can handle the styling and any custom work. On a site that isn’t WordPress, the choices are a hosted IDX embed or a custom build. Either way, hiring someone doesn’t give you the right to the data: your broker and MLS still approve the website feed. Ask for separate prices for setup, software, the MLS, hosting and upkeep, and for a live example on your platform.

How does a developer get MLS data for a client’s website?

Through the client. The feed is approved to the agent or broker whose listings the site shows, so start with them and their MLS. Ask the board for an IDX website feed, its agreement, the approved domain and the data provider. You don’t need to be an MLS member yourself, and RESO, which defines the data format, hands out no public MLS key. Ask the MLS whether you must register as a vendor if you will hold or pass on the feed.

For a WordPress build, MLS Import uses the member’s approved Web API credentials to create the property pages, filters and hourly updates. Before launch, test the approval, a few listings, the required credits and the updates.

Can our brokerage put MLS listings on our own website instead of an iframe?

Yes. MLS Import imports your brokerage’s approved MLS listings into your WordPress database as property posts, so each listing is a page on your own domain instead of a frame from a vendor. Your brokerage gets the MLS approval and credentials. MLS Import connects the feed, maps the fields and keeps the listings in sync every hour.

  • A WordPress site you already have: use Standalone mode for property templates, search and archives on any theme, or the dedicated integration with WpResidence, WpEstate, Houzez or Real Homes.
  • Several MLS markets: since version 7.2, one site can connect up to seven MLSs on a multi-MLS plan. Each MLS approves its own feed. See connecting more than one MLS board to one website.
  • A site on another CMS: run the listing pages on WordPress, and plan with your developer how visitors move between the two parts.

Office and agent MLS ID filters turn one feed into an office site, as MLSImport for brokerages shows. Replacing an iframe you have now? The migration guide covers the new listing pages and the cutover.

The four ways to put MLS listings on a website

Four architectures exist for MLS website integration. They differ on where the listing HTML comes from.

Route Where the data lives Who owns the SEO How it updates Development effort Who it fits
Embedded IDX widget or iframe The vendor’s servers The vendor Live, vendor-managed Lowest: a script tag Sites that need listings shown, not ranked
Hosted IDX, on your subdomain or your root domain Vendor servers; pages served under your hostname Your root domain only if the pages sit there Vendor-managed, 12-hour floor DNS or reverse-proxy setup Branded URL, no SEO ownership
Native import into your own CMS Your database, as content records Your site Hourly by default, via cron Field mapping and filters Pages that build domain equity
Custom app on the RESO Web API Wherever the developer builds it Yours, if built for it Custom polling, 12-hour floor Highest of the four Boards and large brokerages

The embed is the least work of the four, a script tag, and the weakest search asset. AgentFire’s support documentation explains why: IDX data “must be presented exactly as it is provided by the MLS due to compliance requirements,” so the same listing text repeats across every agent site on that feed. Because that content never lived on your site, cancelling typically leaves nothing to migrate.

Hosted IDX means the vendor runs the pages and you point a hostname of yours at them. Usually that hostname is a subdomain, listings.yoursite.com; some vendors serve the same pages on your primary domain instead. The label describes the address bar, not the machine: either way the listing data and the page HTML come off the vendor’s servers, not out of your CMS. BoldTrail, which sells the root-domain version, writes that IDX search results on your own domain “contribute to your site’s SEO. IDX delivered through a subdomain or iframe doesn’t.” NAR Policy Statement 7.58 allows it only while you keep “the ability to add, delete, modify and update information” in the display. Even so, those URLs stay under the vendor’s control.

A native import writes each listing into your own database as a content record. The property page is yours: your domain, your permalinks, your SEO plugin. MLS Import, our plugin, runs this route through the RESO Web API.

If the connection or the cron stops, the listings stay put but the updates don’t. So prices and statuses can go stale. Read import versus live IDX for the contrast.

A custom build costs the most and gives the most control. REBNY finished migrating its Residential Listing Service to the RESO Web API in January 2024, working “with over 100 different technology providers to migrate to one standard,” now serving 581 brokerage firms and 12,000-plus agents. RESO CEO Sam DeBord called it “trailblazing work.” RESO’s Data Dictionary page states the goal: “The time and cost needed to create or onboard innovative products can be greatly reduced.”

Should I use an import plugin or build my own MLS connection with AI-written code?

For most agents and brokerages on WordPress, an import plugin is the better pick. Can AI write the code that connects your website to your MLS API? Yes. Claude or ChatGPT can write code that pulls listings in an afternoon. But writing the code is the cheap part. The hard parts are getting your MLS to approve the feed, following board rules, and keeping listings right every hour for years. AI can’t sign your board’s paperwork, and it won’t notice at 2 a.m. when your listings stop pulling.

An API is the door your MLS opens so a program can read listings. Your MLS gives the key, an API token, to you or your broker, not to the AI and not to any plugin. Code you or an AI wrote and an import plugin both need that approved feed first. Neither one skips the MLS paperwork.

What does an AI-written MLS connection have to handle?

Much more than the first import. A demo that shows 25 homes is easy. A site your buyers trust has to do all of this, every day:

  • Update every hour. Price drops and status changes have to show up fast, or buyers call about homes that already sold.
  • Remove homes that left the MLS, on the schedule your board sets.
  • Handle photos. Thousands of homes means tens of thousands of photos, and copying them all can fill your hosting.
  • Keep the feed login working. The token expires and has to be renewed in code.
  • Work in batches. Big markets have to be pulled in pieces, or your server stops the job part way.
  • Follow board rules: the listing courtesy line, disclaimers, and homes the seller asked to keep off the internet.
  • Keep working when the MLS changes a field.

If you can’t read and fix that code yourself, the AI saved you a week and handed you a job for life.

Import plugin vs. building your own: who does each job

Job Import plugin (MLS Import on WordPress) Your own AI-written code
MLS approval and your API token You and your broker apply You and your broker apply
First listings on your site A few hours after your login arrives After you build and test the code
Logging in to the MLS and pulling listings The plugin does it Code you own and fix
Matching MLS fields to your pages You pick fields in the settings Code you own and fix
Price and status updates Checked every hour A timer job you write and watch
Removing homes that left the MLS A daily check you turn on Code you own and fix
Photos Shown from the MLS photo server, so your disk barely grows You decide and build it
Board rules, like the broker credit and updates at least every 12 hours Courtesy-of fields on the property pages and hourly updates; you still read your board’s rules You build and check them
Pages on your own domain Yes, real WordPress pages Yes, if you build them
Search, map and contact forms Included in Standalone mode, on any theme You build each one
Fixing it when the MLS changes something Our support team, by ticket from your MLS Import account You
Cost $49 a month or $504 a year, after a 30-day free trial with no setup fee, plus hosting and any MLS fee Your time or a developer’s, plus hosting and any MLS fee

Weighing a developer’s quote against a plugin? With MLS Import you don’t pay anyone to build the MLS connection, and setup help comes with the plan. A developer only works on the look of the site, often a few hundred dollars one time, if you need one at all. See what an MLS website really costs.

When does building your own make sense?

When you have a developer on staff, not a one-time freelancer, and you need something a WordPress plugin can’t do:

  • Your site is not WordPress, like an app or a code project from Lovable, Replit, Bolt or v0.
  • You want the data for your own tools, like custom reports, and not only listing pages.
  • You already hold an approved feed, your board lets your own developer hold the API token, and you are ready to own the board rules.

If your site runs on WordPress, or you can move it there, and you want every home as a real page on your domain without owning the update and cleanup code forever, MLS Import is the shorter path.

Can I use AI with MLS Import, or customize it with my own code?

Yes. You don’t have to pick one.

  1. Run it by chatting. Turn on AI assistant access in the plugin, and Claude or ChatGPT can do the setup. You type something like “Add my MLS and import 50 homes in Tampa,” and the AI adds the MLS, makes the import task and starts the import. It needs WordPress 6.9 or newer and a live site on https. See running MLSImport from Claude or ChatGPT.
  2. Let AI write only the custom parts. The plugin handles the MLS connection, the hourly updates and the cleanup. Your code, AI-written or not, adds the extras. Fields follow the RESO naming list, so the price is called ListPrice on every board. The front end has templates you copy into your theme, and hooks where your own code can change what the plugin does, the same way WooCommerce works. There is no public MLS Import API to call from outside WordPress, so that work happens inside WordPress. See MLS Import for developers and the developer reference.
Pro Tip

Before anyone writes a line of code, AI or human, email your board: “Can my own developer hold the API token for my website, or only an approved vendor?” Their answer decides your route.

I built my real estate website with an AI tool. How do I add homes for sale?

You add homes for sale to a site ChatGPT, Claude or another AI tool built the same way as any other site. First, your MLS approves an IDX feed for your website. Then software pulls that feed onto your pages. The AI tool made your pages, but it can’t get you MLS approval. Which software you can use depends on what the AI tool built.

Here is the order:

  1. Ask your MLS for an IDX feed. IDX is the MLS program that lets you show other brokers’ homes on your site. To get one you need MLS access, which in most markets means being an MLS member or working under one. Not an agent? The feed goes to the agent or broker whose listings the site shows, so you run it under their membership. Your broker usually signs. See how to connect your website to your MLS.
  2. Find out what your site runs on. Type yoursite.com/wp-admin into your browser. If a WordPress login page opens, your site is WordPress. If not, look in your AI tool’s account for the platform name, like Wix, Squarespace, or a code project from Lovable, Replit, Bolt or v0.
  3. Pick the route that fits that platform.
What the AI tool built How you add MLS homes Where the listings live
A WordPress site Install a WordPress IDX plugin. MLS Import pulls each home in as a real page on your domain. Your site must let you install plugins. Your own site
Wix, Squarespace or another site builder Paste an IDX vendor’s embed code or app, if your plan allows custom code The vendor’s servers
Code from ChatGPT, Claude, Lovable, Replit, Bolt or v0 Paste an IDX vendor’s embed script, or hire a developer to build on your MLS feed The vendor, or wherever the developer builds it
A separate app or website you want to keep Build the listing section in WordPress and link to it from your site. Your web person sets up WordPress and plans how visitors move between the two parts. Your own WordPress listing pages
Any of these, moved to WordPress Rebuild your pages on WordPress, then add MLS Import Your own site
A few homes you have permission to advertise Add the homes by hand, or use an approved feed to pull your own listings. Ask your MLS what access and fees apply. Your own site

Can I use MLS Import on a site an AI tool built?

Yes, once the site runs on WordPress. MLS Import is our own WordPress plugin, so keep that in mind. It pulls the feed your MLS approved into your WordPress site, checks for changes every hour and, if you turn it on, removes listings that left the MLS in a daily check. Standalone mode brings its own property pages and search, so it works with any WordPress theme, even a plain one an AI tool made. With a custom design, test that its pages match yours. It does not write into a property system your web person built from scratch. Read how Standalone mode works before you plan that part.

  • Price: $49 a month or $504 a year, after a 30-day free trial with no setup fee. That is one of two bills: your MLS charges its own IDX fee, and every board sets a different one, so ask your MLS’s data desk. Hosting, your domain and any web work cost extra. See current MLS Import pricing.
  • Hosting and feeds: see “What you need before you connect an MLS feed” below.
  • What it can’t do: get MLS approval for you. Your broker does that with the board.

Why is adding MLS homes harder than building the website, and why can’t ChatGPT connect my MLS listings?

ChatGPT can write your pages, but it can’t get you into the MLS. Listings belong to your MLS, and your site only gets them through an approved IDX feed: your broker and MLS agree that your site may show the listings, then the MLS issues a login for that use. Until you have it, there is nothing for any code to connect to. After that, your site still has to turn each home’s fields into a clear page, show the right brokerage credit, update prices and status, and remove homes the feed no longer lets you show.

That is why a site can look finished while its search is empty. The design is one job. The approved feed, the field setup and the ongoing updates are the others. Here is what is usually missing:

  1. An approved IDX feed. Being an MLS member doesn’t by itself put listings on your website.
  2. Your broker’s sign-off. Most boards want the broker to sign, even for an agent’s own site.
  3. The login your board gives you. Developers call it an API token. ChatGPT can’t make one up, and code that copies listings from another website breaks board rules.
  4. Software that keeps listings current. Something has to pull new prices and status changes, remove homes that left the MLS, and show the credits and disclaimers your board asks for. On WordPress, MLS Import does this part.
  5. A place to run that software. A page of code from ChatGPT usually has no database to hold thousands of listings and no timer to update them every hour.

ChatGPT is still useful after that. Use it for page copy, area guides and the design around your listings.

Can I use my MLS feed, and MLS Import, on a site built with Wix, Squarespace, Lovable, Replit, Bolt or v0?

Your MLS feed can work on any of them. Your MLS cares about your approval and its display rules, not the tool that made the pages. MLS Import is a WordPress plugin, though, so it can’t install inside Wix, Squarespace or a Lovable or Replit app. Here is what each route in the table above means for you:

  • A vendor’s embed: the homes sit on the vendor’s servers, so Google gives the credit to the vendor, not your site.
  • A developer build on your feed: the most control. You also own every rule your board sets, like removing sold homes on time, plus the broker credit and disclaimers.
  • Move the whole site to WordPress: each home becomes a real page on your domain, and MLS Import keeps it current every hour. Your text and photos come along, but some pages get rebuilt, and your AI tool can help you redo the page text. Point your domain at the WordPress site so the listings sit on your own address.
  • Keep your AI site and add a WordPress listings section: put WordPress on its own address, like homes.yoursite.com, add MLS Import in Standalone mode, and link to it from your menu. Google treats homes.yoursite.com as its own site, so the listing pages build trust there, not on your main pages. If getting found on Google for addresses is the goal, the full move wins. A folder, like yoursite.com/homes/, keeps that trust on your main domain, but your host or a developer has to send that folder to the WordPress server (a “reverse proxy”). Ask them before you pick it.

Our WordPress vs. Wix guide covers what changes when you move a site.

Pro Tip

Before you pay anyone, email your board: “Is an IDX feed approved for my website, and which domain is on it?” The approval waits on paperwork, not on your AI tool. Start it first. See who needs to hold the credentials.

Should I move my AI-built site, and how do I keep my Google traffic?

Move if you want each home on its own page on your domain, like yoursite.com/property/123-main-street, so buyers can find it when they google an address. Move, too, if your AI builder only takes an embed code. Stay if your leads come from referrals, social media or ads and a framed search is fine for you.

If you move, keep your domain and do it in this order:

  1. List every page on your AI-built site and its address.
  2. Build the same pages in WordPress. Keep the same addresses where you can.
  3. Set a 301 redirect (a “this page moved for good” note) for each address that changes.
  4. Turn on MLS Import, run a small test import and check a few homes against your MLS.
  5. Point your domain to the new site.

A short dip in Google after a move is normal. The redirects decide how big it gets. The migration guide covers leads, buyer alerts and old links.

Check these five things before you pay

Check your site, your MLS access and one sample listing before you pay for a full setup. These checks show which work MLS Import handles and which work your broker, board or web person must do.

  1. Ask your site builder: “Is this WordPress, and can I install plugins?”
  2. Ask your MLS: “Can my website get a feed, who signs for it, which homes and fields may we show, and how often must the site refresh?”
  3. Ask MLS Import which platform your MLS uses. Once you have the login, send it to us and we test that it connects.
  4. Have your web person check the server list in the next section.
  5. Run a small test. Open a home on your phone and check the price, photos, listing firm name and contact form. Then check that the hourly updates run.

What you need before you connect an MLS feed

Five things have to be true before an MLS feed for your website works. Miss one and the setup stops dead.

  1. Your MLS offers RESO Web API access. RESO, the standards body, says at least 90% of MLSs in the industry have RESO-certified Web API services (dated 08/19/2026). That leaves markets where the answer is no, and no importer helps there. Ask your MLS before you buy.
  2. Your MLS runs on a supported platform. Trestle, Bridge, Spark, Rapattoni, Paragon, Navica, ConnectMLS and Realtor.ca are in scope, along with several MLSs running their own servers. Our published list of RESO-certified MLSs names the boards by state, checked August 19, 2026. Boards migrate, so the list inside the plugin is what the connection actually reads.
  3. You have your own API credentials, or can request them. The credential goes to the licensed participant. NAR’s Model Board Bylaws, Article XVIII, Section 4, are blunt: “Participants must hold a current, valid real estate broker’s license.” Bright MLS’s Rules add that participation “is on an individual basis and may not be transferred.”
  4. A theme the importer can write into. Either a theme with a dedicated adapter (WpResidence, WpEstate, Houzez, Real Homes) or Standalone mode, which brings its own property templates, search, archives and design settings and works with any WordPress theme. Those four are a deeper integration, not a gate.
  5. A server that can carry the import. WordPress 5.2 or newer, PHP 7.4 or newer, a memory limit of at least 256MB, and a max execution time of 0 or as high as your host allows. For large imports, a VPS beats weak shared hosting.

Our requirements before you buy page carries the list.

How to connect an authorized MLS feed to your site

Linking MLS to your website is five steps, in this order.

Five numbered steps for connecting an MLS feed: get board-issued API credentials, choose a theme adapter or Standalone mode, connect through the RESO Web API, create import tasks and set filters, then run the first import and confirm the hourly sync.

Get your MLS or board-issued API credentials

The credential belongs to the licensed participant, not to the software. Your MLS or board issues it to you, and NAR policy requires the MLS to act on a feed request “within five (5) business days from receipt.” Need more than one MLS feed? Since version 7.2, one site can connect up to seven MLSs on a multi-MLS plan, and each MLS approves its own feed.

Choose your theme setup

You have two options. A theme with a dedicated adapter (WpResidence, WpEstate, Houzez or Real Homes) hands display to templates for property data. Standalone mode supplies its own property templates, search, archives and design settings, and it works with any WordPress theme. Pick Standalone if your theme has no adapter.

Connect through the RESO Web API

MLS Import connects through the RESO Web API. It does not use the older RETS feed format, and it does not scrape public websites. RESO Web API support is long-standing in the plugin, the standard interface rather than a recent addition.

You supply the MLS, the credentials and the endpoint; the plugin does the rest. Our RESO Web API connection details page covers per-platform specifics.

Create import tasks and set filters

One connection can feed several import tasks, so a site need not pull an entire metro’s inventory. Filters target property type, status, city, county, ZIP, price range, agent ID, agency ID and office identifiers. A single-agent site runs one task filtered to that agent’s listings. A brokerage site runs one per office or market.

Run the first import, then confirm the hourly sync

The first import is the heavy one. After that, the default cycle checks the MLS hourly and updates price, status, description, photos and other changed fields, via WordPress or server cron. Confirm it’s firing: removal of stale listings depends on cron working and your delete and status settings. Listing photos aren’t copied into your media library, they’re served from the MLS or its CDN.

Map the MLS fields to your site’s listing fields

Field mapping is the part of MLS integration where the feed meets your templates. It’s configuration, not code.

RESO’s Data Dictionary is “the real estate industry’s universal language for data,” a tree of resources, fields and lookups: more than 1,700 fields and 3,100 lookup values. RESO adds that “adoption of the full Data Dictionary is not expected for most organizations and is not required for certification.” Your job is matching what your MLS publishes to what your template shows.

Take StandardStatus, defined by RESO as “the status of the listing as it reflects the state of the contract between the listing agent and seller,” with values such as Active, Pending, Closed and Withdrawn. RESO’s Data Dictionary Wiki records 94% usage adoption for that field, 325 of 344 reporting organizations, with individual values ranging from 94% for Active down to 2% for Incomplete.

You choose which fields to import, how to label them, and which to mark private. NAR’s IDX policy lets an MLS prohibit display of “confidential information fields intended for cooperating brokers rather than consumers including showing instructions and property security information,” plus seller and occupant contact details and the type of listing agreement. Lockbox codes and internal agent notes don’t belong on a public property page.

Publish the search and listing pages

When you integrate MLS into a website through a native import, the listings become your site’s own content. Property pages are crawlable on your domain, and permalink structure, internal linking and your SEO plugin stay under your control rather than a vendor’s.

The mechanism is worth spelling out, because most explanations stop at “iframes are bad for SEO.” An iframe loads a separate document at the vendor’s own URL: the wrapper page is yours, the listing text lives at an address you don’t control. Subdomain hosting is a softer version of the same problem. Those pages can get indexed, but the credit doesn’t land on your root domain: BoldTrail’s guide describes the traffic going to a different domain or a third-party site.

There’s a second layer. AgentFire’s support documentation notes that IDX property data has to be presented exactly as the MLS provides it, so identical listing text runs across every agent site and search engines treat it as thin content.

On WordPress specifically, MLS and IDX integration in WordPress covers the platform-level steps.

Follow the MLS display rules

Attribution comes first. NAR Policy Statement 7.58 requires that an IDX display “clearly identify the name of the brokerage firm under which they operate in a readily visible color and typeface,” and that it identify “the listing firm, and the email or phone number provided by the listing Participant… not smaller than the median used in the display of listing data.” Build it into the listing template, not a footer.

The disclaimer is a local rule, not a national mandate. NAR lists it among the options an MLS may require: a notice “indicating that the data is deemed reliable but is not guaranteed accurate by the MLS.” Check whether your MLS requires it before copying another site’s wording.

On refresh, NAR sets the floor at twelve hours: “The MLS’s IDX download must be refreshed to accurately reflect all updates and status changes no less frequently than every twelve (12) hours.” The same floor applies to the participant’s own display. Your own MLS’s rules bind; twelve hours is a minimum, not a target.

Removal on status change is another local option. NAR permits MLSs to “prohibit display of expired or withdrawn listings.” Bright MLS’s Rules, revised February 22, 2024, add a separate reporting duty: “all status changes must be submitted to the Bright Service within two calendar days.” The current Handbook page, dated January 1, 2026, carries paragraphs marked “Deleted November 2025.” So don’t treat this text as frozen.

Frequently Asked Questions

How do I connect my website to my MLS as a real estate agent?

Get MLS-approved API credentials in your own name, pick your route, connect the feed, map the fields, publish the pages, follow the display rules. Here’s the verdict most answers skip: if you want listing pages that earn search equity for your own domain, connect through a native RESO Web API import, not an embedded IDX widget. MLS Import, our own plugin, does that.

How do I link MLS to my website?

Linking means one of two things. An embedded display shows MLS data on your page while the content stays on the vendor’s servers. An import copies approved listings into your own site as real content records, which is what MLS Import does. Which you get depends on the route, compared in the four ways to put MLS listings on a website. If you want the pages to rank, pick the import.

How do I add MLS search to my website?

The search page is a template rendered against whatever listing data your route supplies. On an embedded IDX, the vendor’s widget is the search. On a native import, your theme’s property search runs against listings in your own database, through a theme adapter or MLS Import’s Standalone mode, which ships its own search and archives.

What is an IDX feed?

IDX, or Internet Data Exchange, is the permission and display framework that lets an MLS participant show Multiple Listing Service listings on their own site. An IDX feed is the authorized data stream that follows from it. The transport standard carrying it is separate: today, the RESO Web API, the interface MLS Import connects through.

How do I add MLS listings to my website?

It depends on the route. For listings that land as your site’s own content, you need MLS-approved credentials, a supported MLS platform, a theme that accepts the data, and a server sized for it. MLS Import handles the connection and the hourly updates; the section titled “What you need before you connect an MLS feed” lists the gates.

B
About the author
Benjamin Levy
Writes about MLS feeds, IDX compliance, and running real-estate websites on WordPress at scale.
All posts by Benjamin