I interned for Redfin last summer. This is a really interesting space, and most people don't realize that Zillow/Trulia are operating drastically different businesses from Redfin. Some background: The US real estate industry is broken up into regions (e.g. SF bay area, Orange County, Lake Tahoe, etc.). In order for a brokerage [1] to operate in a region, it needs to employ agents specifically licensed in that region,…
You don't need to be a brokerage to get access to the MLS feed. Each MLS has their own policies for how you can display the data, what logos, size and text needs to be shown on the page with their listings though. Which means it unrealistic to build Zillow/Trulia site off of MLS data. Placester builds them for individual real estate agents which is significantly easier for keeping the MLS happy.
Some MLS's are great and will give you access to the data without much hassle, others are not and you have to pay a lot of money. Even once you get access, you will get almost no technical help or useful documentation on integrating with them. Since MLS's are almost never related, you still need to talk to 300+ different companies in order to get coverage of the US.
There is a standard that most MLS's follow for their data, which is called RETS [1]. I would say about 80% of MLS's use RETS, the problem with RETS is that it's a standard in the same sense that CSS was a standard 10 years ago. The original library I wrote for RETS [2] is open sourced, and is littered with examples [3], [4] and [5] (to name a few), of inconsistencies across RETS servers.
If you can work through all of that, you're golden. It took us about 1.5-2 years to get the experience of seeing how MLS's work in order to simplify the integration process down to 1-2 days, with RETS typically requiring no (or minimal) engineering work.
[1] http://en.wikipedia.org/wiki/Real_Estate_Transaction_Standar... [2] https://github.com/zanker/ruby-rets [3] https://github.com/zanker/ruby-rets/blob/master/lib/rets/htt... [4] https://github.com/zanker/ruby-rets/blob/master/lib/rets/htt... [5] https://github.com/zanker/ruby-rets/blob/master/lib/rets/htt...