import requests, json, re headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124 Safari/537.36", "Accept": "application/json, text/plain, */*", "Accept-Language": "en-US,en;q=0.9", "Referer": "https://www.redfin.com/", } # Redfin city region IDs for Florida coastal cities FL_CITY_IDS = { "Vero Beach": 19073, "Sebastian": 16461, "Stuart": 16992, "Jensen Beach": 9058, "Fort Pierce": 7528, "Port St. Lucie": 15348, "Melbourne": 12007, "Cocoa Beach": 5401, "Cocoa": 5400, "Titusville": 18427, "Daytona Beach": 5866, "Ormond Beach": 14428, "New Smyrna Beach": 13473, "Palm Coast": 14706, "St. Augustine": 16629, "Jacksonville": 9009, "Jacksonville Beach": 9004, "Atlantic Beach": 2075, "Neptune Beach": 13437, "Fernandina Beach": 7082, } print("=== Testing Redfin with Florida region IDs ===\n") total_found = 0 for city, region_id in list(FL_CITY_IDS.items())[:5]: try: url = (f"https://www.redfin.com/stingray/api/gis?" f"al=1&market=florida®ion_id={region_id}®ion_type=6" f"&status=9&uipt=1,2,3,4&max_price=230000&num_homes=10&start=0&v=8") r = requests.get(url, headers=headers, timeout=15) data = json.loads(r.text.replace("{}&&", "")) homes = data.get("payload", {}).get("homes", []) print(f"{city} (id={region_id}): {len(homes)} homes found") for h in homes[:2]: price = h.get("price", {}).get("value", 0) addr = h.get("streetLine", {}).get("value", "?") hcity = h.get("city", "?") state = h.get("state", "?") beds = h.get("beds", "?") sqft = h.get("sqFt", {}).get("value", "?") status = h.get("mlsStatus", "?") print(f" ${price:,} | {addr}, {hcity}, {state} | {beds}bd | {sqft}sqft | {status}") total_found += len(homes) except Exception as e: print(f"{city}: ERROR {e}") print(f"\nTotal found in 5 cities: {total_found}")