Hotpads Scraper avatar

Hotpads Scraper

Pricing

Pay per usage

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

Pay per usage

Rating

5.0

(1)

Developer

wallace

wallace

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

a day ago

Last modified

Share

HotPads.com Rental Listings Scraper

Extract structured rental listing data from HotPads.com — prices, unit details, amenities, agent contacts, photos, and more — without writing a single line of code. Works for apartments, houses, condos, townhouses, and rooms across any US city or neighbourhood.

Try it on any HotPads search URL: apartments, houses, condos, or filtered searches by price, beds, or neighbourhood.

What does HotPads Scraper do?

HotPads Scraper loads HotPads.com search result pages and, optionally, visits each listing's detail page to extract the full data. It outputs one dataset row per listing — apartment buildings include a nested units array with every available unit's price, sqft, beds, baths, and availability date.

Run it on Apify's infrastructure with automatic proxy rotation, scheduling, API access, and integrations to Google Sheets, Airtable, Make, Zapier, and hundreds of other tools.

Why use HotPads Scraper?

  • Real estate market research — track rent prices across neighbourhoods over time
  • Investment analysis — compare rental yields and vacancy rates by area
  • Relocation research — gather listings across multiple cities for comparison
  • Property management — monitor competitor pricing and availability
  • Lead generation — build contact lists of landlords and property managers
  • Academic research — compile rental market datasets for housing studies

How to use HotPads Scraper

  1. Find a search URL on HotPads.com — navigate to any city, filter by property type, price range, or beds, then copy the URL from your browser (e.g. https://hotpads.com/san-francisco-ca/apartments-for-rent?orderBy=score)
  2. Open this Actor and click Try for free
  3. Paste the URL into the Start URLs field
  4. Set your limits — use Max Items to cap results and Max Pages to control how many search pages to follow
  5. Choose a mode — enable Include Details (default) to visit each listing page and get the full dataset — descriptions, per-unit breakdowns, lease terms, fees, pet deposits, and all search-page fields. Disable it for fast mode — search-page data only, ~10× faster, no detail page visits
  6. Click Start and wait for results to appear in the Output tab
  7. Download in JSON, CSV, Excel, or HTML — or connect via API

Input

FieldTypeDefaultDescription
Start URLsURL listOne or more HotPads search page URLs
Max Itemsinteger0 (unlimited)Stop after this many listings (0 = scrape all)
Max Pagesinteger40Search result pages to follow per URL (max 40 — HotPads hard cap)
Include DetailsbooleantrueWhen true (default): visits each listing's detail page — returns the full dataset including description, per-unit breakdown, fees, lease terms, and all search-page fields. When false (fast mode): uses search page data only — ~10× faster, fewer compute units, no detail page visits
Proxy ConfigurationproxyApify Residential USProxy settings — residential proxies are required to avoid blocks

Example input:

{
"startUrls": [{ "url": "https://hotpads.com/san-francisco-ca/apartments-for-rent?orderBy=score" }],
"maxItems": 100,
"maxPages": 3,
"includeDetails": true
}

Output

Results appear in the Output tab. You can download the dataset in JSON, CSV, Excel, or HTML format.

Apartment building (includeDetails: true)

One row per building with a units array containing every available unit:

{
"url": "https://hotpads.com/nema-san-francisco-ca-94103-247tudg/pad",
"display_name": "NEMA",
"street_address": "8 10th St",
"city": "San Francisco",
"state": "CA",
"zip": "94103",
"neighborhood": "South of Market",
"latitude": 37.7761933,
"longitude": -122.4174695,
"property_type": "large",
"listing_type": "rental",
"is_apartment_building": true,
"price_min": 3605,
"price_max": 8091,
"price_display": "$3,605 - $8,091",
"bedrooms_min": 0,
"bedrooms_max": 2,
"bathrooms_min": 1,
"bathrooms_max": 2,
"sqft_min": 463,
"sqft_max": 1482,
"description": "San Francisco's original lifestyle pioneer...",
"lease_terms": "12",
"total_units_in_building": 754,
"special_offers": "Move-in incentives available on select residences.",
"pet_policy": "Cats and Dogs Allowed",
"laundry": "In Unit, Shared",
"parking": "Garage, Detached Garage",
"gym": true,
"pool": true,
"security": "Doorman, Gated Entry",
"dishwasher": true,
"listed_by_name": "NEMA Leasing Agent",
"listed_by_company": "CH Management Services LLC",
"listed_by_phone": "1-707-368-5750",
"posted_date": "2018-08-08T15:37:28.458Z",
"updated_date": "2026-05-06T12:05:50.052Z",
"listing_source": "hotpads.com",
"units": [
{
"unit_number": "0829",
"floorplan_name": "SA1",
"floorplan_id": "fp-sa1",
"beds": 0,
"baths": 1,
"sqft": 476,
"price": 3605,
"availability_date": null,
"is_new_unit": false,
"has_price_dropped": true,
"price_drop": 145
}
]
}

Single-unit listing (house, condo, townhouse, room)

{
"url": "https://hotpads.com/1559-pershing-dr-a-san-francisco-ca-94129-xyz/pad",
"display_name": "1559 Pershing Dr #A",
"unit": "A",
"street_address": "1559 Pershing Dr",
"city": "San Francisco",
"state": "CA",
"zip": "94129",
"neighborhood": "Presidio",
"property_type": "townhouse",
"listing_type": "rental",
"is_apartment_building": false,
"price": 4950,
"bedrooms": 2,
"bathrooms": 1,
"sqft": 835,
"availability_date": "2026-05-08",
"pet_policy": "Cats and Dogs Allowed",
"laundry": "Washer/Dryer Hookups",
"parking": "Off Street",
"dishwasher": true,
"listed_by_name": "Baker Beach Apartment Homes",
"listed_by_company": "The Presidio Residences",
"posted_date": "2026-05-06T11:40:39.784Z",
"listing_source": "hotpads.com",
"units": null
}

Data fields

All fields below are present in both modes unless marked. Detail mode (includeDetails: true) is a strict superset — it returns every fast-mode field plus the detail-only fields.

FieldTypeModeDescription
urlstringbothDirect link to the HotPads listing
display_namestringbothListing name or address
street_addressstringbothStreet address
citystringbothCity
statestringbothState abbreviation (e.g. "CA")
zipstringbothZIP code
neighborhoodstringbothNeighbourhood name
latitude / longitudenumberbothGPS coordinates
property_typestringboth"large", "house", "condo", "townhouse", etc.
listing_typestringboth"rental" or "room"
unitstringbothUnit identifier for single-unit listings (e.g. "A", "302") — null for apartment buildings
is_apartment_buildingbooleanbothtrue for multi-unit buildings
pricenumberbothMonthly rent — single-unit listings only
price_min / price_maxnumberbothPrice range — apartment buildings only
price_displaystringbothFormatted price string (e.g. "$3,605 - $8,091")
bedrooms / bathrooms / sqftnumberbothSingle-unit dimensions
bedrooms_min/max / bathrooms_min/max / sqft_min/maxnumberbothRange — apartment buildings
availability_datestringbothAvailable from date (ISO 8601) or null = available now
unit_countnumberbothCurrently available units in this building
rental_application_statusstringboth"accepted", "undecided", or "unaccepted"
student_housingbooleanbothListing is targeted at student renters
senior_housingbooleanbothAge-restricted senior housing
military_housingbooleanbothMilitary housing
income_restrictedbooleanbothIncome-restricted / affordable housing
has_special_offersbooleanbothListing has active move-in promotions
special_offer_labelstringbothShort offer text e.g. "1 month free"
price_drop_countnumberbothNumber of recent price drops on this listing
new_unit_countnumberbothNumber of newly added units
room_is_furnishedbooleanbothRoom listing is furnished (room listings only)
has_private_bathbooleanbothRoom has private bathroom (room listings only)
updated_displaystringbothLast updated — human-readable e.g. "2h", "3 days ago"
pet_policystringbothPet policy summary e.g. "Cats and Dogs Allowed"
laundrystringbothe.g. "In Unit", "In Unit, Shared"
parkingstringbothe.g. "Garage", "Off Street"
hvacstringbothe.g. "Central A/C"
gym / poolbooleanbothOn-site gym / pool
securitystringbothe.g. "Doorman, Gated Entry"
dishwasherbooleanbothDishwasher available
has_3d_tourbooleanboth3D virtual tour available
photosstring[]bothArray of photo URLs
photo_countnumberbothTotal photo count
listed_by_namestringbothAgent or landlord name
listed_by_companystringbothProperty management company
listed_by_phonestringbothContact phone number
is_broker_listingbooleanbothListed by a broker
posted_datestringbothOriginal listing date (ISO 8601)
listing_sourcestringbothAlways "hotpads.com"
descriptionstringdetail onlyFull listing description
lease_termsstringdetail onlyLease length and terms
fees_and_depositsarraydetail onlyFee/deposit objects if provided
total_units_in_buildingnumberdetail onlyTotal units in building (apartment buildings)
websitestringdetail onlyProperty management website
special_offersstringdetail onlyFull move-in offer text
cat_allowed / dog_allowedbooleandetail onlyPer-pet-type allowance
cat_deposit / dog_depositnumberdetail onlyPet deposit amount
updated_datestringdetail onlyLast updated — ISO 8601 timestamp
nearby_schoolsarraydetail onlyNearby schools — each has name (string) and type ("primaryschool", "middleschool", "highschool", "mixedschool")
unitsarraydetail onlyAvailable units — apartment buildings only

How much does it cost to scrape HotPads?

This actor is currently free to use. You only pay for Apify platform compute and proxy usage from your own account credits.

Apify offers a free tier with $5 of platform credits per month. With residential proxies enabled, typical costs are:

ListingsModeEstimated platform cost
100Fast~$0.05
100Detail~$0.50
1,000Fast~$0.20
1,000Detail~$3–5

Fast mode (includeDetails: false) is ~10× cheaper since it skips detail page visits — ideal for large-scale price monitoring where description and per-unit breakdowns are not needed.

To control costs: set maxItems to cap results and maxPages to limit search depth.

Tips

  • Multiple neighbourhoods: add several search URLs to the Start URLs field — the scraper will process them all in one run
  • Property type filtering: use HotPads's own filters in the URL — houses-for-rent, condos-for-rent, rooms-for-rent all work
  • Price range filtering: filter on HotPads first (e.g. ?price=2000-4000) to target the listings you need
  • Keep data fresh: use Apify's built-in scheduler to run the actor daily or weekly and maintain an up-to-date dataset
  • Large cities: HotPads caps at 40 pages × 40 listings = 1,600 results per search URL. For dense markets like NYC or SF, filter by neighbourhood or price band to stay within the window

FAQ, disclaimers, and support

Is scraping HotPads legal? This actor collects publicly available listing data for personal or business research. Always comply with HotPads's Terms of Service and applicable data protection laws in your jurisdiction. Do not use this tool to harvest personal data without a lawful basis.

Some fields are null — why? HotPads does not always provide every field for every listing. A null value means the data was not available on the page, not that the scraper failed.

The scraper got blocked — what should I do? Ensure the proxy is set to Apify Residential US proxies. Avoid very high concurrency settings. If blocks persist, try reducing maxConcurrency or contact support.

Can you build a custom version? Yes — open an issue on the Issues tab or contact us directly for a custom data extraction solution tailored to your needs.