MLSImport is a WordPress plugin that brings listings from your own MLS into your own website as real WordPress posts. Nothing is embedded from an outside system, and the listings are not ours: they come from your MLS account, through API credentials issued to you.
This page covers what the plugin does, what it cannot do, and how the parts of a working setup fit together.
What MLSImport does
The plugin does five jobs, and only these five.
- Connects your site to your MLS over the RESO Web API, using credentials you supply.
- Filters the feed down to the listings you want, by city, county, price range, property type, status, agent, office, or listing ID.
- Imports matching listings as property posts in your WordPress database.
- Syncs those posts every hour so price, status, description, and photo changes follow the MLS.
- Removes listings that have left the MLS, on a separate daily pass.
What MLSImport does not do
- It is not a listing source. MLSImport owns no data and resells none. Every listing on your site came from the MLS you have access to.
- It does not grant MLS membership or API access. Your MLS or its data platform issues those to you or your brokerage.
- It does not design your site. Property pages, search forms, maps, and contact forms belong to your theme.
- It does not put the whole MLS on your site in one action. Listings arrive through import tasks you define, in batches your server can handle.
The four things a working setup needs
- MLS membership with RESO Web API access. You are an agent, broker, or office in an MLS that offers a RESO Web API feed.
- Your own API credentials. A client ID and secret, or a server token, depending on which platform your MLS runs on.
- A theme MLSImport can write into. WpResidence, Houzez, Real Homes, and Wpestate have dedicated support. Standalone (any theme) mode covers every other theme.
- At least one import task. An import task is the saved set of filters that decides which listings land on your site.
How a listing reaches your site
- You save your MLS credentials in the plugin. MLSImport tests them against your MLS and reports whether the connection works.
- You create an import task and set its filters, for example
Miamias the city and450000as the minimum price. - You run the task. Your site asks the MLSImport service for listings matching those filters.
- The service queries your MLS with your credentials and returns the matching listings in RESO format.
- The plugin writes each listing as a property post, mapping RESO fields onto the meta keys your theme reads.
- Your theme displays those posts through its normal templates, search, and widgets.
Every listing carries a unique MLS identifier. On the next run, a listing already on your site is updated rather than created a second time, which is what keeps duplicates out.
Set your fields in MLS Import Settings under the Select Import fields tab before your first import. Field configuration applies to newly imported properties, so listings imported before you chose your fields will not carry the ones you add later.
What happens to listing photos
MLSImport creates a media library record for each photo, but that record points at the image URL on the MLS image source. No image file is copied onto your server.
Two consequences follow. Your disk use and backup size stay close to what they were before the import, even with thousands of listings. And when a listing leaves the MLS, its images stop loading, because they were never yours to keep.
What keeps listings current
Sync is the hourly pass. It asks the MLS what changed since the last run and applies those changes to the posts you already have, then adds listings that have started matching your filters.
Reconciliation is the daily pass. It looks for listings that are gone from the MLS, or that have moved to a status you chose not to keep, and removes them. Sync and reconciliation are separate and are not interchangeable.
Both run on WordPress cron by default. WordPress cron only fires when someone visits the site, so a quiet site can drift. A real server cron job removes that dependency.
Do not edit an import task after you have run it. Changing the filters of a task that already imported listings can break syncing for those listings. Create a new task with the new filters instead.
Where your theme fits
MLSImport handles the data and your theme handles the presentation. The plugin decides which listings exist on your site and what values their fields carry. The theme decides what a property page looks like, how search behaves, and where listings appear.
That split is why theme choice matters. WpResidence, Houzez, Real Homes, and Wpestate each store property data in their own meta keys, and MLSImport has an adapter for each. If you run any other theme, choose Standalone (any theme) and the plugin supplies its own property templates, search, and archives instead of writing into a host theme.
Frequently asked questions
Can I connect two MLSs to the same website?
No. One WordPress install connects to one MLS account. Running two feeds means two separate installs on two domains, each with its own MLSImport subscription.
Can I keep properties I entered by hand alongside imported ones?
Yes. Manual properties and imported properties are the same post type and use the same templates, search, and widgets. MLSImport marks the posts and images it created, so its sync and removal passes leave your own entries alone.
Can I import an entire MLS in one task?
No, and it is not a filter limitation. Both your MLS and your hosting process listings in limited batches, so large regions have to be split across several import tasks. Some servers handle a few thousand listings per task and others a few hundred, so test with a small task first.
Does the plugin work without an MLSImport subscription?
No. The plugin authenticates against your MLSImport account before it can reach your MLS, so an active subscription has to exist first. The subscription starts with a 30 day free trial.
Related
- How MLS websites work: import vs live IDX
- Requirements before you buy
- Why a compatible theme (or Standalone mode) is needed
- The Setup Wizard, step by step
If anything here does not match what you see on your site, open a support ticket from your MLSImport account and include your MLS name.