The best free source at the moment is Oodle.com's API - http://developer.oodle.com/oodle-api. It will give you both for sale and for rent homes.
You can see what their listings look like here: http://realestate.oodle.com/
The MLS' don't typically give their data out. The big rental sites (rent.com, apartments.com, etc.) don't have an API, but do give out data feeds if you contact them and work out a business relationship with them.