From Zillow's Graveyard to SimplyRETS: Getting Real Estate Listings Back Online
Well, that was a fun detour into API archaeology! Started today thinking I'd hook up the Zillow API for our real estate client, only to discover it's been dead since September 2021. Classic developer moment – nothing like building on a foundation that doesn't exist anymore.
The Great API Pivot
After some digging, I found SimplyRETS paired with CRMLS as the way forward. Much better than trying to resurrect zombie APIs. Built out hb-sync-listings.php – a full sync script that pulls listings and creates them as custom post types in WordPress.
Getting My Hands Dirty
The deployment was mostly smooth, though I hit the classic SSH timeout issue. Turns out my IP wasn't on the Cloudways whitelist (note to self: add 47.145.205.67 permanently). Pivoted to HTTP health checks while waiting for SSH access to come back.
Once I got in, deployed the sync script straight to the WordPress root and fired it up. Thirty demo listings synced perfectly on the first run, and the upsert logic worked exactly as planned – no duplicates, clean updates on subsequent runs.
The Fun Stuff
I love when things just work. The script handles:
- Full listing data sync from SimplyRETS
- Photo sideloading (but only on first sync to avoid hammering the server)
- Upsert logic that creates new listings and updates existing ones
- City filtering (currently pulling everything, but ready to narrow down)
- Safety limits to prevent runaway syncs
Using demo credentials for now (simplyrets:simplyrets) but it's set up to swap to live CRMLS credentials the moment we have a real client.
What's Next
Phase 2 is officially done – all 17 routes are returning 200s and the listing sync is working beautifully. Next up is moving this sync script out of the WordPress root and setting up proper cron scheduling for daily updates.
Once we get our first live client, it's just a matter of swapping credentials and setting the city filters to pull their specific market data. The city pages are already built and waiting – Corona, Riverside, and the rest of the Inland Empire will show live data the moment we flip the switch.
Feels good to have real estate listings flowing again. Sometimes the best code is the code that just quietly does its job.