To build a property listing site with WordPress, import your listing feeds — typically XML from an MLS, franchise, or portal export — into a property custom post type with Ingestics, and let the Advanced Sync Engine keep prices and statuses current. Listings are the use case where updating matters as much as importing: a site showing sold homes at old prices is worse than no site. That makes this a Pro-tier workflow at its core.

Where does property listing data come from?

Real-estate data arrives as structured feeds more often than public APIs:

  • XML feeds — the industry default: MLS/IDX exports, franchise feeds, portal syndication formats. Ingestics parses XML on every tier; the format details are in the XML import guide.
  • JSON APIs — some portals and CRMs expose REST endpoints, often with API-key or OAuth2 auth (OAuth2 client credentials from Lite; authorization-code refresh on Pro).
  • CSV/XLSX exports — agency back-office exports, handled by Lite’s File Import with sample mapping previews.

Confirm you are licensed to display the feed — IDX/MLS data comes with display rules — and find each listing’s unique ID field. That ID drives everything below.

How do you set up the property post type?

Create a property custom post type (with your theme or a CPT plugin), then set it as the provider’s destination — per-provider post type is a Lite feature. Listings get their own archive, templates, and search, separate from blog posts.

Property facts belong in post meta, not prose: price, bedrooms, bathrooms, area, location, status. Pro’s Advanced Field Mapper writes source fields into post meta or ACF fields, which is what makes theme-level filtering (“3+ beds under $500k”) possible.

How do you map listing fields?

Typical XML listing mapping:

  • Address / headline → post title
  • Description → content
  • Price, beds, baths, area, coordinates → ACF/meta fields (Pro)
  • Listing photos → featured image, sideloaded; Pro fallback media covers photo-less listings
  • Listing ID → the sync key
  • Suburb/region → category or taxonomy (Lite dynamic category mapping; Pro keyword-to-taxonomy rules)

Run the first import in Draft mode and inspect a dozen listings closely — price formatting and image quality are where feeds surprise you.

How do you keep listings synchronized, not just imported?

This is the heart of the build. Listings change constantly: price drops, under-offer, sold, withdrawn. Pro’s Advanced Sync Engine handles it:

  • Match by external ID — each fetch matches feed items to existing posts by the listing ID (or source URL/slug/custom meta).
  • Update in place — changed prices and statuses update the existing post; no duplicates.
  • Skip unchanged items — untouched listings cost nothing, keeping large-feed fetches fast.
  • No-change previews — see what a sync would do before it does it.

Without sync (Free/Lite), duplicate detection prevents re-imports but edits do not flow through — acceptable for a static showcase, not for live inventory.

How do you handle sold and withdrawn listings?

Map the feed’s status field to meta and let your templates badge or hide non-active listings. Items that leave the feed are not auto-deleted — deliberate, so your site never mass-deletes on a feed glitch. Retire delisted properties on an editorial pass, or filter archives to status = active. Business adds advanced lifecycle policies for automated aging rules at scale.

How do you fetch large feeds and multiple agencies?

Lite’s page/offset pagination walks large result sets; Pro adds cursor pagination and exponential retry for flaky endpoints. For a multi-agency portal, one provider per agency feed keeps mappings and attribution separate — Pro’s 25 providers cover a regional portal; Business is unlimited with a rate-limit budget queue.

Schedule daily syncs on Lite cron; Pro custom frequencies suit portals that promise fresher data.

Sync on the listing ID, never the address. Addresses get reformatted between feed versions and re-listings reuse them; the feed’s unique listing ID is the only stable identity for update matching.

How do you display the listings?

The property post type’s archive and single templates carry the main UX, driven by the meta fields you mapped. Lite’s grid layout and [auto_api_feed] shortcode cover “Latest listings” sections; Pro adds Elementor and Bricks support for page-built portals. Details in the documentation.

Which Ingestics tier does this build need?

  • Free — parse the XML feed, map basics, manual fetch. A proof, not a portal.
  • Lite — property post type, File Import, pagination, scheduled fetches, display output.
  • Pro — the real requirement: Advanced Sync Engine, ACF field mapping, cursor pagination, fallback media.
  • Business — lifecycle policies, unlimited agency feeds, rate-limit budgets.

The sibling build is the job board from APIs — same CPT-plus-sync pattern, different vertical. More automated publishing workflows are on the use cases hub.

Build a listings site that updates itself

Prove your feed mapping free with Ingestics, then let the Pro sync engine keep every price and status current.

See Pricing
Can WordPress import MLS or XML property feeds?
Yes. Ingestics parses XML feeds on every tier and maps listing fields to a property custom post type. Confirm your IDX/MLS display license for the feed first.
How do price changes reach my site?
Pro’s Advanced Sync Engine matches each feed item to its existing post by listing ID and updates price and status in place — no duplicate listings.
What happens to sold or withdrawn properties?
Map the status field to post meta and badge or hide non-active listings in templates. Posts are never auto-deleted when items leave the feed, so a feed glitch cannot wipe your site.
Can I aggregate listings from several agencies?
Yes — one provider per agency feed, each with its own mapping and attribution. Pro supports 25 providers; Business is unlimited.