Hotpads Scraper avatar

Hotpads Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Hotpads Scraper

Hotpads Scraper

Scrape rental listings from HotPads.com. Extract price, beds, baths, address, photos, amenities, pet policy, nearby schools and more. Supports apartments, houses, condos and rooms across any US city. Fast mode or full detail mode.

Pricing

from $3.00 / 1,000 results

Rating

5.0

(1)

Developer

wallace

wallace

Maintained by Community

Actor stats

0

Bookmarked

31

Total users

8

Monthly active users

2 days ago

Last modified

Share

Scrape rental listings from HotPads.com — rent, beds, baths, square footage, address, coordinates, photos, amenities, pet policies, nearby schools and per-unit availability — for any US city, neighborhood or ZIP code. Type a location like "Austin, TX" (or paste a HotPads URL), press start, and get a clean spreadsheet of every listing in the area — even in cities with more listings than HotPads shows for one search.

What does HotPads Scraper do?

HotPads Scraper turns HotPads.com rental searches into structured data. Give it locations — cities, boroughs, neighborhoods or ZIP codes — with optional filters (rent, beds, baths, pets, property type, posted date), or paste HotPads search URLs. It walks every result page and returns one row per listing with plain-English columns you can open directly in Excel, Google Sheets, or load through the API.

  • Complete coverage of big cities. HotPads shows at most 99 pages (3,960 listings) for one search. When a search is bigger — New York has ~9,800 rentals — the scraper automatically splits it into rent ranges and collects them all, removing duplicates.
  • All rental types by default. HotPads' "Apartments" category means apartment buildings only; in New York it returns ~100 results versus ~9,800 for all rentals. The default search covers houses, condos, townhomes, duplexes and rooms too.

It runs in two modes:

  • Fast mode (default) reads everything the search pages carry: rent, beds, baths, sqft, full address, coordinates, photos, unit counts, price drops and a contact phone. Roughly 200 listings in 20 seconds.
  • Detail mode additionally opens each listing page for the full description, complete amenity list, pet policies and fees, lease terms, office hours, nearby schools, popularity stats, and a per-unit breakdown of every available apartment in a building.

Running on Apify means you also get scheduling, a REST API, webhooks, integrations with Make, Zapier, Google Sheets and Slack, automatic proxy rotation, and run monitoring — without maintaining any of it yourself.

Why use HotPads Scraper?

  • Rental market research — track asking rents, price drops and availability across neighborhoods over time.
  • Lead generation — build lists of property managers and landlords with contact phone numbers.
  • Competitive analysis — see how comparable buildings price, what they offer, and how long they sit on the market.
  • Real estate investment — evaluate rental yields by area with square footage, bed/bath mix and per-unit pricing.
  • Relocation and tenant search — filter thousands of listings offline instead of clicking through pages.
  • Academic and policy research — assemble reproducible housing datasets with coordinates and timestamps.

How to use HotPads Scraper

  1. Open this Actor and click Try for free.
  2. Enter one or more locations — e.g. Austin, TX, Brooklyn, NY or 10001, one per line.
  3. Add filters if you want — rent range, bedrooms, bathrooms, pets, property type, posted within, sort order.
  4. Set Max Items to cap how many listings you save (and pay for). Leave it at 0 to collect every listing.
  5. Choose a mode — leave Scrape Detail Pages off for a fast, cheap run, or switch it on for descriptions, amenities and per-unit pricing.
  6. Click Start, then download from the Output tab as JSON, CSV, Excel or HTML — or pull it through the API.

Prefer HotPads' own filters? Apply them on hotpads.com and paste the URL into Start URLs instead — it is used exactly as given. Listing URLs (ending in /pad) are scraped directly.

How the scraper gets every listing in a big city

HotPads shows at most 99 result pages (3,960 listings) for any single search. When a search holds more than that, the scraper splits it into rent ranges ($1,000–$1,499, $1,500–$1,999 and so on, narrowing further where needed) and runs each range as its own search, so every listing is reachable. Buildings that appear in two neighbouring ranges are saved once. This happens automatically when Max Search Pages is left at 99; turn off Split large searches to disable it.

Input

FieldTypeDefaultDescription
Locationstext list—Cities, boroughs, neighborhoods or ZIP codes, e.g. Austin, TX, Brooklyn, NY, 10001. Unrecognised spellings are looked up through HotPads' own area search
Start URLsURL list—HotPads search or listing URLs, used as given. Use this, Locations, or both
Max Itemsinteger0 (unlimited)Stop after this many listings across the whole run
Scrape Detail PagesbooleanfalseOff: search-page data only, ~10× faster and cheaper. On: opens every listing for description, amenities, pets, schools and per-unit pricing
Property typeselectAll rentalsAll rentals, apartment buildings, houses, condos, townhomes or rooms (applies to Locations)
Min / Max rentinteger—Monthly rent range (applies to Locations)
Min / Max bedrooms, Min bathroomsinteger—0 bedrooms includes studios (applies to Locations)
Pets allowedselectAnyCats, dogs, or both (applies to Locations)
Posted withinselectAny timeLast hour, 24 hours, 7 days or 30 days — ideal for scheduled runs (applies to Locations)
Sort byselectRelevanceNewest, lowest rent or highest rent first — matters when Max Items stops the run early
Max Search Pagesinteger99Result pages to follow per search (99 is HotPads' own cap)
Split large searchesbooleantrueSplit searches bigger than 3,960 listings into rent ranges to collect them all
Block ImagesbooleanfalseSkips downloading listing photos to cut proxy bandwidth. Photo URLs are still extracted. Note it does not make runs faster — measured slightly slower — so leave it off unless bandwidth is what you are optimizing
Proxy ConfigurationproxyApify Residential (US)Residential proxies are required. HotPads blocks datacenter IPs outright

Example input:

{
"locations": ["Austin, TX", "Brooklyn, NY"],
"propertyType": "all",
"maxPrice": 3000,
"minBeds": 1,
"sortBy": "newest",
"maxItems": 500,
"includeDetails": false
}

Output

One row per listing. Download as JSON, CSV, Excel or HTML.

{
"url": "https://hotpads.com/33-8th-at-trinity-place-san-francisco-ca-94103-23y7253/pad",
"name": "33 8th at Trinity Place",
"property_type": "Apartment building",
"rent": 4114,
"rent_max": 6341,
"rent_display": "$4,114 – $6,341",
"bedrooms": 0,
"bedrooms_max": 2,
"bathrooms": 1,
"sqft": 382,
"sqft_max": 685,
"full_address": "33 8th St, San Francisco, CA 94103",
"address": "33 8th St",
"city": "San Francisco",
"state": "CA",
"zip": "94103",
"latitude": 37.77844882678356,
"longitude": -122.41362422704697,
"units_available": 15,
"price_drops": 7,
"contact_phone": "1-707-847-4228",
"photos": ["https://photos.zillowstatic.com/fp/01ae778a92392c6dcf1a5755615b23d2-rentals_medium_500_500.webp"],
"photo_count": 12,
"listed_date": "2023-07-27T12:33:33.979Z",
"updated_date": "2026-08-20T12:30:31.416Z",
"scraped_at": "2026-08-20T20:33:07.112Z",
"source": "hotpads.com"
}

How ranges work

Most listings quote a single figure, so rent, bedrooms, bathrooms and sqft hold that value and the matching _max column stays empty. When a building spans a range — a 15-unit building from studios to 2-beds — rent holds the starting figure and rent_max the top of the range. rent_display gives the formatted version for reports.

Data dictionary

Returned in both modes

ColumnTypeDescription
urlstringListing page URL
namestringBuilding or listing name
property_typestringApartment building, House, Condo, Townhouse, Room for rent
rentnumberMonthly rent, or the starting rent for a range
rent_maxnumberTop of the rent range, empty when there is a single price
rent_displaystringFormatted rent, e.g. $4,114 – $6,341
bedrooms, bedrooms_maxnumberBedroom count (0 means studio)
bathrooms, bathrooms_maxnumberBathroom count
sqft, sqft_maxnumberInterior square footage
full_addressstringSingle-line address, ready for geocoding or a CRM
address, city, state, zipstringAddress components
latitude, longitudenumberCoordinates
unitstringUnit number, when the listing is a specific unit
units_availablenumberUnits currently available in the building
new_units, price_dropsnumberRecently added units, and units whose price dropped
accepting_applicationsbooleanWhether the landlord takes applications; empty when unstated
special_offerstringPromotion text, e.g. one month free
has_3d_tourbooleanWhether a 3D tour exists
contact_phonestringListing contact number
photosarrayPhoto URLs
photo_countnumberNumber of photos
listed_date, updated_datedateWhen the listing appeared and last changed
scraped_atdateWhen this row was collected
sourcestringAlways hotpads.com

Added by detail mode

ColumnTypeDescription
descriptionstringFull listing description
neighborhoodstringNeighborhood name
available_datestringSoonest move-in date
amenities, unit_amenitiesarrayBuilding and in-unit amenity lists
laundry, parking, securitystringe.g. In Unit, Yes
air_conditioning, gym, pool, dishwasher, furnishedbooleanAmenity flags
pets_allowedstringe.g. Cats and Dogs Allowed
cat_allowed, dog_allowedbooleanPer-species permission
cat_deposit, dog_deposit, cat_monthly_fee, dog_monthly_feenumberPet costs
pet_restrictionsstringBreed or size restrictions
lease_terms, office_hoursstringLease lengths offered, leasing office hours
fees_and_depositsarrayFees and deposits
total_units_in_buildingnumberTotal units in the building
unitsarrayPer-unit rows: unit number, floorplan, beds, baths, sqft, rent, availability, price drop
schoolsarrayNearby schools with name, type, rating, grades and distance
views_count, favorites_count, inquiries_countnumberPopularity on HotPads
contact_name, contact_companystringLeasing contact and company
is_broker_listingbooleanWhether a broker listed it
websitestringProperty website
student_housing, senior_housing, military_housingbooleanHousing program flags

Search pages do not carry amenity, school or description data, so those columns are omitted in fast mode rather than returned empty. Turn on detail mode to populate them.

How much does it cost to scrape HotPads?

This Actor is pay per result: $0.003 per listing saved, plus a negligible start fee. The Apify platform usage of your run — compute and residential proxy traffic — is billed to your Apify account at your plan's rates. Proxy traffic is the main part: about 1–2 MB per results page of 40 listings in fast mode, and one page per listing in detail mode.

RunListingsResult cost
Quick sample20$0.06
One results page40$0.12
Austin, TX — all rentals~4,400~$13
New York, NY — all rentals~9,800~$29

Detail mode returns the same number of rows, so the result cost is identical — it takes longer and uses more proxy bandwidth, since it opens a page per listing. If a listing page cannot be loaded after every retry, its search-result row is saved instead, so the listing still reaches your dataset.

Keeping costs down: set Max Items on exploratory runs, add rent or bedroom filters, leave detail mode off unless you need descriptions or amenities, and schedule incremental runs with Posted within: Last 24 hours instead of re-scraping whole cities. The run also stops by itself when it reaches the maximum cost you set for it.

Tips and advanced usage

  • Filter before you scrape. Rent, bedroom and property-type filters mean fewer paid rows.
  • Multiple cities in one run. Add several locations or Start URLs; each is searched independently and duplicates across them are removed.
  • Track new listings. Schedule a daily run with Posted within: Last 24 hours and Sort by: Newest first to collect only what is new.
  • Spot price changes. Weekly runs joined on url with updated_date and price_drops show how asking rents move.
  • Deduplicate on url. It is stable per listing and is the natural key for joining runs over time.
  • Residential proxies are not optional. HotPads is behind PerimeterX and refuses datacenter IPs immediately.

Migrating from version 2

Version 3 renames the output columns to plain English, decodes HotPads' internal codes, and drops columns that were always empty. If you have a pipeline built on v2 field names:

v2v3
display_namename
price_min / price_maxrent / rent_max
price_displayrent_display
bedrooms_min / bedrooms_maxbedrooms / bedrooms_max
bathrooms_min, sqft_minbathrooms, sqft
street_addressaddress (plus the new full_address)
property_type: "large"property_type: "Apartment building"
rental_application_status: "accepted"accepting_applications: true
is_apartment_buildingfolded into property_type
listed_by_phone / listed_by_name / listed_by_companycontact_phone / contact_name / contact_company
posted_datelisted_date
listing_sourcesource
hvacair_conditioning
unit_countunits_available
pet_policypets_allowed

FAQ

Is scraping HotPads legal? This Actor collects only publicly available listing information — no login, no personal accounts. Public data collection is broadly lawful, but how you use the data is your responsibility, particularly for contact details, which are subject to privacy and marketing rules such as GDPR and CCPA. Review HotPads' Terms of Use and take your own legal advice for commercial use.

Why do I need residential proxies? HotPads sits behind PerimeterX, which blocks datacenter IP ranges on sight. The default Apify Residential (US) configuration works out of the box.

Why do I see "Blocked … retrying" in the log? HotPads' anti-bot system refuses a share of fresh proxy IPs. The Actor retries each page on a new IP (up to eight times), so these warnings are normal and rarely cost a listing. The run log states exactly why anything was skipped.

A location was not found — what now? The Actor first tries HotPads' URL for the name you typed, then HotPads' own area search, and tells you in the log what it matched ("Brooklyn, NY" is "Brooklyn, New York, NY"). If nothing matches, it suggests close names. You can always open the area on hotpads.com and paste its URL into Start URLs.

Can I get every listing in a big city? Yes. Searches with more than 3,960 listings are split into rent ranges automatically, so a full New York run returns ~9,800 listings rather than stopping at HotPads' page limit.

My search returned no listings. The run finishes successfully with a message saying HotPads had no matches — try a wider area or fewer filters.

Some detail columns are empty on a few listings. HotPads occasionally serves a detail page that omits part of its data. Those rows still carry everything from the search result — rent, address, coordinates, photos and contact — so the row remains usable.

Support

Found a bug or need a field that is missing? Open an issue on the Issues tab and include the run ID and input you used. Requests for related scrapers or custom real estate data pipelines are welcome.

Disclaimer

This Actor is not affiliated with, endorsed by, or connected to HotPads or Zillow Group. It collects publicly accessible information only. You are responsible for ensuring your use complies with applicable laws and with HotPads' Terms of Use.