Zillow is one of those targets where pagination caps bite early, so slicing queries by geography or price band is usually more practical than pushing page numbers. Listing status also changes faster than most other fields, which is a good reason to store it with a timestamp. I work with AllyHub, and our Zillow Scraper supports permitted public-data research: https://allyhub.com/tools/zillow-scraper. How do you handle listings that are relisted with a new ID?