ParseForge Scrapers

HotPads Rentals Scraper - Apartments & Houses

parseforge/hotpads-rentals-scraper

Real estate

Scrape apartments and houses for rent on HotPads across 69 rental categories. Rows carry the rent, bedroom range, full address, units available, promotion tag and leasing phone, with optional bathrooms, square footage, unit level rents, amenities, photos, pet policy, schools and fees.

Run this scraper See the API call
Total runs
61
Bookmarked
0
Last modified
2 days ago

This scraper was last updated on .

What does the HotPads Rentals Scraper - Apartments & Houses return?

ParseForge

HotPads Scraper: Apartments and Houses for Rent Data

Pull every apartment and house for rent on HotPads, market by market: 32,392 rentals in Austin alone on 8 September 2026, 40 listings per search page, 69 rental categories. Every row carries the building name, the full street address, the asking rent, the bedroom range, how many units are free right now, the promotion tag, the verified flag, the leasing phone number and the photo. No login, no API key, no HotPads account. Exports to CSV, JSON, Excel and XML.

HotPads has no public API, and its listing pages sit behind PerimeterX, which answers a plain HTTP request with a 403 and a captcha page. Copying rents by hand out of a browser is the usual alternative, and it stops being possible somewhere around the second page. This actor clears the shield with a real browser, then reads HotPads' own server rendered markup, so a market that takes a day to transcribe comes back as a spreadsheet in minutes.

Who uses it What they scrape HotPads for
Multifamily owners and operators Live competitor rents, concessions and unit level availability in their submarket
Real estate investors Rent comps and gross yield inputs before they underwrite a building
Proptech and rental platforms Listing inventory, photos and amenities to seed or refresh a marketplace
Property managers Which nearby buildings are running a free rent offer and at what price
Market researchers and journalists Median rent by city against the national median, and how inventory moved in 30 days

What it does

  • 🏒 Core listing fields. Name, HotPads URL, listing ID, property type, street address, city, state, ZIP, asking rent, whether it is a starting price, bedroom range, studio flag, units available, promotion tag, verified flag, leasing phone, photo and 3D tour links. 33 fields before a single optional block.
  • πŸ—ΊοΈ 69 verified rental categories. Apartments, houses, condos, townhomes, duplexes, rooms, sublets, student and senior housing, studio through 4 bedroom, pet friendly, furnished, loft, by owner, with pool, gym, parking, laundry, gated entry, air conditioning or heating, and price bands from under $500 to under $3,000. Every one was measured against the HotPads result count before it was published.
  • πŸ“ Any US market. Type austin-tx, Austin, TX or Austin Texas and all three resolve to the same HotPads market page. Neighbourhood, county, ZIP and university pages go in as URLs.
  • πŸ”Ž Listing page enrichment. Bathrooms, square footage, the low and high of the rent range, the description, the neighbourhood, the special offer text and when HotPads last updated the listing.
  • πŸ›οΈ Unit level data. Every available unit with its number, rent, previous rent when it dropped, move in date and the floor plan beds, baths and square feet. One Austin building returned 19 units.
  • 🏊 Amenities, photos, pet policy, fees, manager, schools. Each is its own opt in block: the full amenity list, every photo at 1200px, the dog and cat rules with deposits and weight limits, the estimated move in cost, the management company with its office hours, and the assigned schools with grades, distance and rating.
  • πŸ“Š Computed market row. One extra row per market with the HotPads median rent, the national median it is compared against, the live inventory and its 30 day move. Austin on 8 September 2026: $1,538 against a national $1,469, 4.7% above, inventory up 0.20%.
  • 🧹 No empty columns. Fields HotPads never publishes on a surface were dropped rather than shipped as permanent nulls. Withheld values come back as Not Disclosed, inapplicable ones as N/A, booleans as Yes or No.

What you can do with HotPads data

Price a building against its real competitors. Pull every apartment inside a ZIP with units and floor plans switched on, and you have each competitor's rent per unit type, square footage and move in date. That is the rent comp set an operator normally pays a data vendor for, rebuilt from the public listings on demand.

Find the concessions before your prospects do. The promotion tag comes back on the search row for free: Special Offer, Price Drop, 1 Month Free, 10 Weeks Free, $500 Off. Filter on it and you have a live list of every building in a market currently buying occupancy, with the exact wording of the offer from the listing page.

Underwrite a market in an afternoon. The market summary row gives the median rent, the national comparison and the 30 day inventory move for each city and category you scrape. Run it across twenty markets and you have a rent index nobody had to type.

Feed a rental search product. 33 base fields plus photos, amenities, coordinates and available units is enough to populate listing cards, map pins and filters. Rerun the same input daily and diff on listingId to track what came on market, what changed price and what disappeared.

Why choose this scraper

What you get
Gets past PerimeterX HotPads answers plain HTTP with a 403 captcha page on every listing path. This actor clears it with a real browser and rotates the exit node when a session gets burnt, up to 12 times.
Reads the source, not a guess Rows come from HotPads' own schema.org markup and server rendered cards, so a redeployed CSS class does not silently empty a column.
Filters that actually filter All 69 categories were measured against the HotPads result count. Four that returned the unfiltered total were dropped rather than shipped as decoration.
Pay for what you take 16 separate events. The headline row is $0.007. Amenities, photos, units, schools, pet policy and the rest are billed only when they came back with data.
Cheap bandwidth, so cheap rows After the first page clears, everything but the document is blocked. 24 fully enriched listings plus a market row moved 6.7 MB of residential proxy.
Free plan preview 10 rows on a free Apify account, with the same fields as a paid run.

How it compares

There are eight HotPads actors on the Apify Store. Most of them return one flat row type at $0.003 per item and stop at the search card, which means no bathrooms, no square footage, no unit level rents and no amenities. one-api/hotpads-scraper and tangerine_loom/Hotpads-Scraper both sit at $0.003 with two events; hello.datawizards/hotpads-urls-script charges $0.008 per item plus a $0.05 start fee. This actor is more than double the cheapest of them on the headline row, and the difference buys the listing page: 63 fields instead of a card, 69 measured category filters instead of a free text search, and a market summary row that none of them produce. If all you need is a name and an asking rent, the $0.003 actors are the better buy and this README will not pretend otherwise.

Actor Price per row Events Listing page data Category filters
parseforge/hotpads-rentals-scraper $0.007 16 Units, amenities, photos, pets, fees, schools, manager 69 measured
one-api/hotpads-scraper $0.003 2 No No
tangerine_loom/Hotpads-Scraper $0.003 2 No No
hello.datawizards/hotpads-urls-script $0.008 plus $0.05 start 2 No No
sian.agency/hotpads-property-scraper Not published 4 Partial No

What a rental listing looks like

One unedited row from the verified run of 8 September 2026, trimmed only where a long array repeats itself:

{
  "rowType": "rental-listing",
  "listingId": "23vd5xk",
  "name": "The Vaughan",
  "url": "https://hotpads.com/the-vaughan-austin-tx-78754-23vd5xk/pad",
  "propertyType": "Apartment building",
  "streetAddress": "12601 Innovar Cir",
  "city": "Austin",
  "state": "TX",
  "zipCode": "78754",
  "country": "US",
  "fullAddress": "12601 Innovar Cir, Austin, TX 78754",
  "priceText": "$1,486+ /mo",
  "priceMin": 1486,
  "priceIsStartingAt": "Yes",
  "priceCurrency": "USD",
  "isTotalPrice": "Yes",
  "bedsText": "1 - 3 beds",
  "bedsMin": 1,
  "bedsMax": 3,
  "isStudio": "No",
  "unitsAvailable": 32,
  "listingTag": "New Today",
  "isVerified": "Yes",
  "phone": "(737) 345-4353",
  "photoUrl": "https://photos.zillowstatic.com/fp/66a07a554e987c954667bc6db19595c4-rentals_medium_500_500.webp",
  "tourCount": 5,
  "tourUrls": ["https://viewer.tourbuilder.com/?themeId=631a1e44d8f0fe1df521d8db&tour=633349d46578507ebe66749f"],
  "searchLocation": "austin-tx",
  "searchCategory": "apartments-for-rent",
  "searchUrl": "https://hotpads.com/austin-tx/apartments-for-rent",
  "pageNumber": 1,
  "positionOnPage": 1,
  "detailUrl": "https://hotpads.com/the-vaughan-austin-tx-78754-23vd5xk/pad",
  "propertyTypeDetailed": "Apartments",
  "priceRangeText": "$1,486 - $2,171/mo",
  "priceLow": 1486,
  "priceHigh": 2171,
  "bedsMinDetail": 1,
  "bedsMaxDetail": 3,
  "bathsMin": 1,
  "bathsMax": 2,
  "sqftMin": 815,
  "sqftMax": 1439,
  "lastUpdatedText": "Updated 2 hours ago",
  "specialOffer": "Lease today and receive up to 12 weeks FREE base rent! *Minimum lease term applies. Other costs and fees excluded.",
  "neighborhood": "Pioneer Crossing",
  "description": "Apartments Near EastVillage - Move In TODAY! You are sure to fall in love with the The Vaughan apartment homes.",
  "latitude": 30.379540250531,
  "longitude": -97.627589084926,
  "amenities": ["Bicycle Storage", "Club House", "EV Charging Stations", "Fitness Center", "Pet Park", "Swimming Pool", "Year Built: 2022"],
  "amenityCount": 26,
  "photos": ["https://photos.zillowstatic.com/fp/66a07a554e987c954667bc6db19595c4-rentals_large_1200_1200.webp"],
  "photoCount": 5,
  "units": [
    { "unit": "2303", "price": 1486, "previousPrice": null, "isNew": "No", "availableFrom": "Now", "floorPlan": "1 Bed β€’ 1 bath β€’ 824 sqft", "beds": 1, "baths": 1, "sqft": 824 },
    { "unit": "6411", "price": 1490, "previousPrice": null, "isNew": "Yes", "availableFrom": "11/12/2026", "floorPlan": "1 Bed β€’ 1 bath β€’ 824 sqft", "beds": 1, "baths": 1, "sqft": 824 }
  ],
  "unitCount": 19,
  "petPolicy": [
    { "petType": "Dogs", "allowed": "Yes", "deposit": 250, "oneTimeFee": 350, "monthlyFee": 25, "numberAllowed": 2, "weightLimitLbs": 100, "notes": "We welcome 2 pets per apartment, there is a $350 pet fee and a $250 pet deposit." }
  ],
  "propertyManager": {
    "managerName": "Greystar",
    "managerPhone": "(737) 345-4353",
    "officeHours": ["Sunday 1:00 PM to 5:00 PM", "Monday 9:00 AM to 6:00 PM"],
    "websiteUrl": "https://hotpads.com/renter-hub/clickRedirect?alias=451tgvdperfpf&r=HotPads&mobileFriendly=true"
  },
  "nearbySchools": [
    { "name": "Pioneer Crossing Elementary School", "type": "Public", "grades": "PK - 5", "distanceMiles": 2.1, "rating": 2, "district": "Manor Independent School District" }
  ],
  "demand": { "viewsText": "Viewed 3 times this past week.", "contactText": "No one has contacted this listing." },
  "scrapedAt": "2026-09-08T17:45:58.148Z"
}

The market summary row is a second row type, flagged with "rowType": "market-summary":

{
  "rowType": "market-summary",
  "market": "Austin, TX Apartments for Rent",
  "searchLocation": "austin-tx",
  "searchCategory": "apartments-for-rent",
  "listingsAvailable": 32392,
  "medianRent": 1538,
  "nationalMedianRent": 1469,
  "medianVsNationalPct": 4.7,
  "inventoryChange30dPct": 0.2
}

Configure the run

Give it one or more markets and a category, and it paginates until it hits your row limit. Locations take the HotPads slug or a plain city and state. Everything past the base row is a checkbox that is off until you tick it, and each one is billed only when it returned something.

Every apartment in Austin, headline fields only:

{
  "searchLocations": ["austin-tx"],
  "category": "apartments-for-rent",
  "maxItems": 1000,
  "maxPagesPerSearch": 25
}

Rent comps across three Texas markets, with units, square footage, amenities and coordinates:

{
  "searchLocations": ["Austin, TX", "Dallas, TX", "Houston, TX"],
  "category": "2-bedroom-apartments-for-rent",
  "maxItems": 3000,
  "includeDetails": true,
  "includeUnits": true,
  "includeAmenities": true,
  "includeGeo": true,
  "includeMarketSummary": true
}

Every building in a market currently running a concession, with the offer text and the leasing contact:

{
  "searchLocations": ["denver-co"],
  "category": "apartments-for-rent",
  "listingTagFilter": "Free",
  "minPrice": 1200,
  "maxPrice": 2500,
  "maxItems": 500,
  "includeDetails": true,
  "includeContact": true,
  "includeFees": true
}

Free users

Free Apify accounts get 10 rows per run as a preview, with exactly the same fields a paid run returns. Every filter, category and optional block works on the free plan; only the row count is capped. Paid plans go to 1,000,000 rows per run. Upgrade here.

Run it

  1. Create a free Apify account. It comes with $5 of platform credit, which is enough for roughly 680 headline rows.
  2. Open the actor, type your market into Locations and pick a Rental category.
  3. Set Max Items, tick any listing page blocks you want, and press Start.
  4. Download the dataset as CSV, JSON, Excel or XML, or pull it from the API at https://api.apify.com/v2/datasets/{datasetId}/items.

Use with AI agents (MCP)

claude mcp add apify --transport http https://mcp.apify.com -H "Authorization: Bearer YOUR_APIFY_TOKEN"

Then ask your agent in plain language:

  • "Get me every 2 bedroom apartment for rent in Denver under $2,000, with square footage and amenities."
  • "Which buildings in Austin are running a free rent concession right now, and what is the offer?"
  • "Compare the median rent in Austin, Dallas and Houston against the national median."

Troubleshooting

No results at all. The market slug is probably wrong. HotPads addresses a city as city-state, so austin-tx, not austin or texas. Typing Austin, TX works too. If a category returns nothing for a small market, that category genuinely has no inventory there: sublets in Austin had 15 listings on 8 September 2026 and several categories have single digits.

Fewer rows than I asked for. Three causes, in order of likelihood. You are on a free plan, which caps a run at 10 rows. Your filters removed rows after the page was read, which is what minPrice, maxPrice, minBeds, maxBeds, listingTagFilter, verifiedOnly and withPhoneOnly do. Or maxPagesPerSearch ran out: HotPads returns 40 listings per page, so 25 pages is 1,000 listings per market and you need to raise it for more.

A field came back empty. Not Disclosed means HotPads does not publish it for that listing, and N/A means it does not apply. Bathrooms, square footage, amenities, units and schools only exist on the listing page, so they stay empty unless Open each listing page is ticked. costs is genuinely absent on most listings: 14 of 24 in the verified run published a fee breakdown, and petPolicy 23 of 24.

The run is slow. A search page is one browser navigation and yields 40 rows; a listing page is one more navigation each. The verified run did 24 fully enriched listings plus a market row in 96 seconds, about 16 rows a minute once the browser is up. Headline rows alone are far faster: 10 rows came back in 30 seconds, and one page load yields 40. Untick blocks you do not need.

The log says it rotated the exit node. That is PerimeterX blocking a residential IP, and the actor handling it. It retries the same URL on a fresh exit up to 12 times per run. A handful of rotations in a long run is normal and costs you nothing extra.

FAQ

Question Answer
Do I need a HotPads account or an API key? No. Everything it reads is public and anonymous. HotPads has no public API.
How many rentals are there per market? Austin had 32,392 apartment rentals on 8 September 2026. Big metros run into the tens of thousands; small markets and narrow categories are much smaller.
How many listings does one search page return? 40, and the actor follows the next page link until your row limit or page limit stops it.
Can I scrape a neighbourhood, ZIP or county? Yes. Paste the HotPads URL into the HotPads URLs field; the location plus category pair only covers city level pages.
Which filters run on HotPads and which run here? The rental category runs on HotPads and changes the result count. Rent, bedrooms, tag, verified and phone are applied to the row after the page is read. The "under $X" categories are a source side price filter.
Why are bathrooms and square footage empty? They are not on the search card. Tick Open each listing page.
Does it return individual units or just the building? Both. The row is the building; tick Available units and floor plans for each unit with its own rent, size and move in date.
How fresh is the data? It is read live at run time. Listings carry lastUpdatedText from HotPads, which was "Updated 2 hours ago" on the sample row.
Can I run it on a schedule? Yes. Use Apify Schedules and diff on listingId between runs to track new listings, price changes and removals.
Why is it more expensive than the other HotPads actors? They return the search card only. This one opens the listing page for bathrooms, square footage, unit level rents, amenities, pet policy, fees, schools and the manager, and it is priced per block so you pay for the ones you tick.
Is scraping HotPads legal? It collects only public listing data, no logins and no personal accounts. You are responsible for how you use it, including GDPR, CCPA and PIPL obligations where they apply.

Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

Disclaimer: this is an unofficial tool and is not affiliated with, endorsed by or connected to HotPads or Zillow Group. It collects only publicly available listing data, with no login and no access to private accounts. You are responsible for using the output in line with GDPR, CCPA, PIPL and any other regulation that applies to you.

What input does the HotPads Rentals Scraper - Apartments & Houses accept?

FieldTypeWhat it doesDefault
searchLocations array US markets to scrape, one per line. Accepts the HotPads slug (austin-tx), the city and state (Austin, TX) or the spelled out state (Austin Texas); all three resolve to the same market page. ["austin-tx"]
category string (69 options) Which HotPads category page to paginate for every location. Each value is a real HotPads URL segment and applies the filter on the source side, so the row counts change with it. apartments-for-rent
startUrls array Optional. Paste HotPads search URLs to scrape them exactly as given, including neighbourhood, county, zip and university pages that the location plus category pair cannot express. When set, the locations above are still scraped as well. not set
maxItems integer Free users: limited to 10 items (preview). Paid users: up to 1,000,000. 10
maxPagesPerSearch integer How deep to paginate each location and category pair. HotPads returns 40 listings per page, so 25 pages is 1,000 listings per market. 25
minPrice integer Drop listings whose starting rent is below this many US dollars per month. not set
maxPrice integer Drop listings whose starting rent is above this many US dollars per month. not set
minBeds integer Keep listings that offer at least this many bedrooms. Studios count as 0. not set
maxBeds integer Keep listings whose smallest floor plan is at most this many bedrooms. Studios count as 0. not set
listingTagFilter string Keep only listings carrying a promotion tag that contains this text, for example "Price Drop", "New Today", "Special Offer" or "Month Free". not set
verifiedOnly boolean Keep only listings HotPads marks as Verified. false
withPhoneOnly boolean Keep only listings that publish a leasing phone number on the search card. false
includeMarketSummary boolean Add one extra row per market with the HotPads median rent, the national median it is compared against, the live inventory count and its 30 day move. Read from page one of the search; it is not on later pages. false
includeDetails boolean Open every listing page to add bathrooms, square footage, the low and high of the rent range, the property description, the neighbourhood, the special offer text and when HotPads last updated it. Required by every block below, and it costs one extra page load per listing. false
includeUnits boolean Add every currently available unit: unit number, rent, previous rent when it dropped, availability date, and the floor plan bedrooms, bathrooms and square footage. false
includeAmenities boolean Add the full building amenity list as HotPads publishes it, typically 10 to 30 entries covering parking, pets, security, pool, gym and year built. false
includePhotoGallery boolean Add every listing photo URL at 1200px, not just the thumbnail carried on the search row. false
includeGeo boolean Add the latitude and longitude of the building. false
includePetPolicy boolean Add the dog and cat policy: allowed or not, deposit, one time fee, monthly fee, how many pets and the weight limit. false
includeFees boolean Add the estimated total move in cost, the monthly rent and fees range and the one time fees total. false
includeContact boolean Add the management company, its phone number, the office hours by day and the outbound website link. false
includeSchools boolean Add the assigned school district and the nearby schools with type, grade range, distance in miles and GreatSchools rating. false
includeDemand boolean Add how many times the listing was viewed in the past week and how many renters have contacted it. false
includeFaq boolean Add the question and answer pairs HotPads publishes on the listing page, including the unit counts and starting rents per bedroom count. false
includeSimilar boolean Add the comparable rentals HotPads shows on the listing page, each with its name and city. false
proxyConfiguration object Proxy used for every browser session. Leave the default unless you have a reason to change it. {"useApifyProxy":true,"apifyProxyGroups"

How much does the HotPads Rentals Scraper - Apartments & Houses cost?

from $8.90 per 1,000 results

Charged forWhat it isPrice each
Actor Start Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). $0.00445 to $0.005
Rental listing One rental from a HotPads search page: name, URL, property type, full address, rent, bedroom range, units available, promotion tag, verified flag, leasing phone, photo and 3D tour links. $0.00623 to $0.007
Search page scanned One HotPads search page paginated, which is up to 40 listings. Charged once per page that produced at least one row you kept. $0.0089 to $0.01
Market summary row One extra row per market with the HotPads median rent, the national median, the live inventory count and its 30 day move. Only charged when HotPads published those numbers. $0.0089 to $0.01
Listing page opened One listing page loaded and parsed, adding bathrooms, square footage, the rent range, the description, the neighbourhood, the special offer and the last update time. Every block below reads this same page. $0.00534 to $0.006
Units and floor plans Every available unit in the building: unit number, rent, previous rent when it dropped, availability date and the floor plan beds, baths and square feet. $0.00356 to $0.004
Amenities The full published amenity list for the building, typically 10 to 30 entries. $0.00267 to $0.003
Photo gallery Every listing photo URL at 1200px, not just the search thumbnail. $0.00267 to $0.003
Property manager The management company, its phone number, office hours by day and the outbound website link. $0.00356 to $0.004
Pet policy Dog and cat policy: allowed or not, deposit, one time fee, monthly fee, how many pets and the weight limit. $0.00267 to $0.003
Costs and fees Estimated total move in cost, the monthly rent and fees range and the one time fees total. Charged only for listings that publish them. $0.00267 to $0.003
Nearby schools The assigned school district and nearby schools with type, grade range, distance in miles and GreatSchools rating. $0.00267 to $0.003
Listing FAQ The question and answer pairs HotPads publishes on the listing page, including unit counts and starting rents per bedroom count. $0.00267 to $0.003
Coordinates Latitude and longitude of the building. $0.00178 to $0.002
Demand signals How many times the listing was viewed in the past week and how many renters have contacted it. $0.00178 to $0.002
Similar rentals The comparable rentals HotPads shows on the listing page, each with its name and city. $0.00178 to $0.002

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the HotPads Rentals Scraper - Apartments & Houses API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST Β· run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~hotpads-rentals-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchLocations": [
      "austin-tx"
    ],
    "category": "apartments-for-rent",
    "maxItems": 10,
    "maxPagesPerSearch": 25,
    "verifiedOnly": false
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "searchLocations": [
    "austin-tx"
  ],
  "category": "apartments-for-rent",
  "maxItems": 10,
  "maxPagesPerSearch": 25,
  "verifiedOnly": false
}

What do users say about the HotPads Rentals Scraper - Apartments & Houses?

No reviews yet. Be the first.

How do I report an issue with the HotPads Rentals Scraper - Apartments & Houses?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run HotPads Rentals Scraper - Apartments & Houses on Apify All scrapers