Hotpads Scraper — US Apartments & Homes for Rent
Pricing
from $1.00 / 1,000 rental listing extracteds
Hotpads Scraper — US Apartments & Homes for Rent
Scrape Hotpads US rental listings by location, coordinates or URL — rent ranges, beds, baths, square footage, availability and building amenities. Enrich any listing with unit-level pricing, schools and neighborhood detail, plus built-in market KPIs and an HTML report.
Pricing
from $1.00 / 1,000 rental listing extracteds
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Hotpads Scraper — US Apartments & Homes for Rent + Market KPIs 🏡
🎉 Pull every US rental listing with rent ranges, beds/baths, amenities and unit-level pricing — in one run
Built for rental investors, leasing teams, relocation services and rent-market analysts who need structured, analysis-ready data
📋 Overview
Scrape apartments and homes for rent from Hotpads across the United States — search a whole metro or drill into a single building, and get clean, structured rental data every time. Hotpads is a major US rental-listings portal, and this actor turns it into an on-demand rentals data feed.
Why professionals choose this Hotpads scraper:
- ✅ Rentals-first data model: rent ranges, bed/bath/sqft ranges, availability dates, building amenities and management company — the fields leasing and investing teams actually need.
- ⚡ 6 lookup modes, one actor: search by location, coordinates or URL; enrich any listing by ID or URL; and resolve locations with autocomplete.
- 🎯 Unit-level enrichment: one detail lookup returns per-model pricing, full amenity lists, nearby schools, neighborhood info and leasing contact.
- 💰 Pay-per-result pricing: you're only charged for rows that land in your dataset — cheaper than monthly flat-rate rental tools.
- 💎 Powerful rent filters: filter by price range, beds, baths, property type (apartment, house, condo, townhome, room) and pet policy, then sort by newest, price or distance.
- ✨ Built-in market KPIs + HTML report: median rent, rent-per-sqft distribution and city / state breakdowns on every run.
✨ Features
- 🔎 Search by location: city/state, neighborhood, ZIP or free text, fully paginated.
- 🌐 Search by coordinates: lat/long + radius for map-bounded rental farming.
- 🔗 Search by URL: paste any Hotpads search URL and collect every matching rental.
- 🏢 Detail by ID or URL: unit-level pricing, amenities, schools, neighborhood, photos and leasing contact.
- 🔤 Location autocomplete: resolve a partial place name to clean cities, neighborhoods and ZIPs.
- 💲 Rent range capture: low and high monthly rent plus a formatted display range per building.
- 🛏️ Bed / bath / sqft ranges: full min–max specs for multi-unit buildings.
- 🐾 Rent filters: price, beds, baths, property type and pet-friendly (dog / cat) filters.
- 📊 Market KPIs: median rent, rent-per-sqft distribution and city / state tallies, computed automatically.
- 📄 HTML report: a shareable run summary saved to the key-value store.
🎬 Quick Start
Pick an operation, give it a location (or coordinates / URL), and run. Results stream straight into your Apify dataset as structured JSON.
curl -X POST "https://api.apify.com/v2/acts/sian.agency~hotpads-property-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"operation": "searchByLocation", "location": "New York, NY"}'
🚀 Getting Started (3 Simple Steps)
Step 1: Choose an operation
Pick searchByLocation, searchByCoordinates, searchByUrl, detailsById, detailsByUrl or autocomplete.
Step 2: Provide the target
Enter a location, coordinates, or a Hotpads URL — plus any rent, bed/bath, property-type or pet filters you want.
Step 3: Run and export
Start the run and export the results as JSON, CSV or Excel directly from the dataset.
That's it! In under a minute, you'll have:
- A structured feed of US rental listings
- Rent ranges, beds/baths, amenities and availability per building
- Ready-to-analyze data for pricing, sourcing or lead generation
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| operation | string | Yes | searchByLocation, searchByCoordinates, searchByUrl, detailsById, detailsByUrl or autocomplete |
| location | string | No | City/state, neighborhood, ZIP or free text (searchByLocation) |
| input | string | No | Partial location text (autocomplete) |
| latitude / longitude | string | No | Search center for searchByCoordinates |
| radius | string | No | Radius in miles around the point (default 1.5) |
| url | string | No | Hotpads search or listing URL (searchByUrl / detailsByUrl) |
| listingId | string | No | Hotpads listing alias, e.g. 403zj7h276rbn (detailsById) |
| sortOrder | string | No | Distance, Newest, Price_Low_to_High, Price_High_to_Low |
| propertyType | string | No | Comma-separated: Apartment, House, Condo, Townhome, Room |
| minPrice / maxPrice | string | No | Monthly rent range filter |
| minBeds / maxBeds | string | No | Bedroom range (use 0 for studio) |
| minBaths / maxBaths | string | No | Bathroom range |
| petsAllowed | string | No | dog, cat, or both comma-separated |
| maxResults | integer | No | Max rows to collect (FREE tier capped at 25) |
Example — search a metro with rent + bed filters:
{"operation": "searchByLocation","location": "Jersey City, NJ","minPrice": "2000","maxPrice": "4000","minBeds": "1","propertyType": "Apartment,Condo","sortOrder": "Price_Low_to_High","maxResults": 100}
Example — enrich a single listing:
{"operation": "detailsById","listingId": "403zj7h276rbn"}
📤 Output
Results are saved to the Apify dataset. Search rows carry the core rental fields; detail rows add unit-level enrichment:
| Field | Type | Description |
|---|---|---|
| listingId | string | Hotpads listing alias |
| listingName | string | Building or listing name |
| url | string | Full Hotpads listing URL |
| address | object | Street, city, state, ZIP |
| location | object | Latitude and longitude |
| rent | object | Low / high monthly rent + display range |
| specs | object | Bed / bath / sqft ranges (low–high) |
| availability | object | Activated and last-updated timestamps |
| amenities | array | Building and unit amenities |
| media | object | Photo count and gallery |
| company | string | Management company |
| flags | object | Student / senior / military housing |
| pricing / units | object / array | Detail only — unit-level pricing matrix |
| schools | array | Detail only — nearby schools with ratings |
| contact | object | Detail only — leasing company, agent, phone, website |
Example row (search):
{"rowType": "rental","listingId": "403zj7h276rbn","buildingId": "1wfsvd7","listingName": "Hudson House East","url": "https://www.hotpads.com/hudson-house-east-jersey-city-nj-07310-1wfsvd7/pad","listingType": "rental","address": { "street": "315 15th St", "city": "Jersey City", "state": "NJ", "zip": "07310" },"location": { "latitude": 40.7325, "longitude": -74.0464 },"rent": { "priceLow": 3625, "priceHigh": 8420, "display": "$3,625 - $8,420" },"specs": { "bedsLow": 0, "bedsHigh": 3, "bathsLow": 1, "bathsHigh": 3, "sqftLow": 676, "sqftHigh": 1826 },"availability": { "activatedAt": "2026-04-17T00:49:08.753Z", "updatedAt": "2026-06-26T21:50:03.163Z" },"amenities": ["Fitness Center", "Swimming Pool", "Concierge", "Elevator"],"media": { "photoCount": 26 },"company": "RXR","flags": { "studentHousing": false, "seniorHousing": false, "militaryHousing": false }}
💼 Use Cases & Examples
1. Rental market analysis
Analysts benchmarking rents across a metro.
Input: searchByLocation for a city + maxResults. Output: rent ranges and rent-per-sqft across hundreds of buildings. Use: median-rent and pricing-trend dashboards.
2. Rental investor sourcing
Investors screening multifamily and single-family rentals.
Input: searchByCoordinates around a target radius with bed/price filters. Output: unit mix, rent and amenities per building. Use: shortlist properties by yield potential.
3. Leasing & property management intelligence
Leasing teams tracking competitor pricing and concessions.
Input: searchByLocation filtered to Apartment. Output: rents, specials flag and amenities. Use: price your units against the local comp set.
4. Relocation & corporate housing
Relocation services building move-in shortlists.
Input: searchByLocation with petsAllowed and bed filters. Output: matching furnished and pet-friendly rentals. Use: curated options for relocating employees.
5. Lead generation for proptech
Sales teams targeting property managers and operators.
Input: detailsById on shortlisted buildings. Output: leasing contact, company and website. Use: enriched outreach lists.
6. Deep listing enrichment
Teams that need the full picture on one building.
Input: detailsByUrl on a Hotpads listing. Output: per-model pricing, full amenities, schools and neighborhood. Use: underwriting and due diligence.
7. Location resolution
Pipelines that start from messy place names.
Input: autocomplete with a partial string. Output: clean cities, neighborhoods and ZIPs. Use: normalize inputs before a bulk search.
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/hotpads-property-scraper').call({operation: 'searchByLocation',location: 'New York, NY',maxResults: 100});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/hotpads-property-scraper').call(run_input={'operation': 'searchByLocation', 'location': 'New York, NY', 'maxResults': 100})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~hotpads-property-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"operation": "searchByLocation", "location": "New York, NY"}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: Schedule or webhook
- HTTP Request: Call the actor API
- Process: Handle JSON rental rows
- Action: Save to a sheet/CRM, notify, or feed a pricing model
📊 Performance & Pricing
FREE Tier (Try It Now)
- 25 rental rows per run — full feature access, same data quality
- No credit card required
- Perfect for testing and small projects
PAID Tier (Production Ready)
- Unlimited rows per run with deep pagination
- Enriched detail lookups unlocked
- Pay-per-result: only charged for rows that land in your dataset
💰 Transparent pay-per-result pricing — a low per-listing headline plus optional unit-level enrichment, so you only pay for the depth you use.
❓ Frequently Asked Questions
Q: How many rentals can I collect? A: FREE tier: 25 rows per run. PAID tier: unlimited, with deep pagination.
Q: Does it cover for-sale homes too? A: No — Hotpads is a rentals portal, so this actor returns apartments and homes for rent.
Q: Can I filter by rent, beds and pets?
A: Yes — price range, bed range (use 0 for studio), bath range, property type and pet policy are all supported.
Q: What output formats are available? A: JSON, CSV and Excel — export directly from the Apify dataset.
Q: How do I get unit-level pricing and schools?
A: Use detailsById or detailsByUrl — detail rows include the per-unit pricing matrix, amenities, schools and neighborhood.
Q: Is this legal? A: Yes — we only extract publicly available data. See the legal section below.
🐛 Troubleshooting
No rows returned from a search
- Broaden the
location(tryCity, ST) or relax rent/bed filters. - Increase
maxResultsfor more pages.
A detail lookup returns nothing
- Confirm the
listingIdis the alias from a search row (e.g.403zj7h276rbn), or use the full listingurlwithdetailsByUrl.
Filters seem ignored
propertyTypevalues areApartment,House,Condo,Townhome,Room(case-sensitive, comma-separated).
Run hit the FREE cap
- FREE runs stop at 25 rows — upgrade to a paying Apify plan for unlimited results and enrichment.
⚠️ Trademark Disclaimer
Hotpads® is a trademark of its respective owner. This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Hotpads or its parent company. It accesses only publicly available information and is intended for lawful data-analysis purposes. All product names, logos and brands are the property of their respective owners.
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the actor's Console Issues tab
- Check the SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools