Apartments.com Scraper — Rentals, Prices & Reviews | 20$/mo
Pricing
$20.00/month + usage
Apartments.com Scraper — Rentals, Prices & Reviews | 20$/mo
Extract rental listings from Apartments.com with 94+ fields: pricing, scores, reviews, amenities, photos, emails, and contacts. Filter by location, price range & property type. No browser — fast HTTP. Perfect for real estate research & lead generation.
Pricing
$20.00/month + usage
Rating
0.0
(0)
Developer
Ilya
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
Apartments.com Scraper — Rental Listings, Scores, Reviews & Email Contacts
Extract every detail from apartments.com listings — pricing, walk/transit/bike/drive/sound scores, renter reviews, floor plans, fees, amenities, schools, photos, and contact emails scraped directly from property websites.
Pricing
| Plan | Price | Best For | Link |
|---|---|---|---|
| Pay per result | $2 / 1,000 results | One-time analysis, small batches | Apartments Scraper |
| Monthly subscription | $20 / month | Regular monitoring, unlimited usage | Apartments Scraper Usage |
Both plans have identical functionality — choose the one that fits your workflow.
What data do you get?
Each listing returns 94+ structured fields organized into clean, nested JSON:
| Category | Fields |
|---|---|
| Property | Name, type, listing ID, description, year built, total units, stories |
| Address | Street, city, state, ZIP, county, neighborhood, DMA, full formatted address |
| Pricing | Min/max rent, currency |
| Location | Latitude, longitude |
| Scores | Walk Score, Transit Score, Bike Score, Drive Score, Sound Score + text labels ("Very Walkable", "Exceptional Public Transit") |
| Rating & Reviews | Aggregate rating (value, count), individual reviews with author name, date, and full text |
| Contact | Phone number, property website URL, emails extracted from the property website, languages spoken |
| Units / Rentals | Up to 74 fields per unit — rent, beds, baths, sqft, deposit, lease terms, availability date, interior amenities |
| Models / Floor Plans | Model name, rent range, beds, baths, sqft range, available units count |
| Fees | Pet fees, parking fees, general fees — each with name and dollar amount. Lease terms. |
| Amenities | Grouped by category: Community Amenities, Apartment Features |
| Schools | Name, rating (1-10), public/private, type (Elementary/Middle/High), link |
| Transportation | Nearby stations, terminals, subway stops |
| Points of Interest | Parks, shopping centers, hospitals, museums, libraries |
| Photos | All image URLs from the listing |
| Media Counts | Photos, videos, virtual tours, total images |
| Breadcrumb | Full geo hierarchy (State > County > City > Neighborhood) |
| FAQ | Questions and answers from the listing page |
| Office Hours | Today's hours (open/close) + full weekly schedule |
| Flags | 15+ boolean flags: has3DTour, hasVideo, hasRentSpecials, petsAllowed, hasApplyNow, etc. |
Who is this for?
- Real estate investors — Compare rental pricing, scores, and fees across markets to find undervalued opportunities
- Property managers — Monitor competitor listings, track rent changes, analyze amenity offerings
- Relocation services — Get walk/transit/bike scores, schools, transportation for client recommendations
- Lead generation agencies — Extract property management emails and phone numbers for outreach campaigns
- Market researchers — Bulk data on rent trends, vacancy rates, property types across US cities
- Data analysts — Clean, structured JSON/CSV ready for dashboards, spreadsheets, and BI tools
- Rental aggregators — Build your own rental search platform with comprehensive listing data
How to use
Step 1: Get your search URL
- Go to apartments.com
- Search any location — city, ZIP code, neighborhood
- Apply any filters you need — price range, bedrooms, pet-friendly, property type
- Copy the URL from your browser
That's it. The URL contains all your filters. Examples:
| What you want | URL |
|---|---|
| Apartments in New York | https://www.apartments.com/apartments/new-york-ny/ |
| 2-bed under $3,000 in Chicago | https://www.apartments.com/2-bedrooms-under-3000/chicago-il/ |
| Pet-friendly in Miami | https://www.apartments.com/pet-friendly/miami-fl/ |
| Condos in San Francisco | https://www.apartments.com/condos/san-francisco-ca/ |
| Houses in Austin | https://www.apartments.com/houses/austin-tx/ |
Step 2: Configure the scraper
| Parameter | Description | Default |
|---|---|---|
| Search URLs | One or more apartments.com search URLs. You can scrape multiple cities in a single run. | required |
| Max Pages | How many search pages to scrape per URL. Each page has ~40 listings. Max 18 pages (~720 listings). Set 0 for all. | 2 |
| Max Items | How many listings to get full details for. Set 0 for all. | 10 |
| Include Details | Fetch full property pages (scores, reviews, fees, units). If false, returns only search results — much faster. | true |
| Extract Emails | Visit each property's external website and extract contact emails. Unique lead generation feature. | true |
| Concurrency | Parallel requests (1-20). Higher = faster, but may trigger more blocks. | 10 |
| Proxy | Apify Proxy config. Residential US proxies are pre-configured and strongly recommended — the site uses Akamai Bot Manager. | Residential US |
Step 3: Run and export
Click Start and wait. Results appear in the Dataset tab as structured JSON. Export to:
- JSON — for APIs and applications
- CSV / Excel — for spreadsheets and data analysis
- Direct API — integrate into your workflow via Apify API
Output example
{"url": "https://www.apartments.com/the-max-new-york-ny/abc123/","listingId": "abc123","name": "The Max","propertyType": "Apartment","address": {"full": "100 W 57th St, New York, NY, 10019","street": "100 W 57th St","city": "New York","state": "NY","zip": "10019","neighborhood": "Midtown West","county": "New York County"},"location": {"latitude": 40.7648,"longitude": -73.9798},"pricing": {"min": 3200,"max": 8500,"currency": "USD"},"contact": {"phone": "+1-212-555-0100","propertyWebsite": "https://www.themax.com","emails": ["leasing@themax.com", "info@themaxapts.com"],"languages": ["English", "Spanish"]},"scores": {"walkScore": 98,"transitScore": 100,"driveScore": 45,"bikeScore": 82,"soundScore": 70,"walkScoreLabel": "Walker's Paradise","transitScoreLabel": "Rider's Paradise"},"rating": {"value": 4.5,"count": 12},"reviews": [{"author": "Sarah M.","date": "2025-11-15","text": "Amazing location, responsive management..."}],"models": [{"name": "1 Bedroom / 1 Bathroom","rentMin": 3200,"rentMax": 4100,"beds": 1,"baths": 1.0,"sqftMin": 550,"sqftMax": 720}],"fees": {"pet": [{"name": "Monthly Pet Fee", "amount": "$75 / mo"}],"parking": [{"name": "Garage", "amount": "$350 / mo"}],"general": [{"name": "Application Fee", "amount": "$50"}],"lease": ["12 - 14 Month Leases"],"propertyInfo": {"yearBuilt": 2019, "totalUnits": 230, "stories": 42}},"amenities": {"Community Amenities": ["Pool", "Fitness Center", "Rooftop Terrace", "Doorman", "Concierge"],"Apartment Features": ["Washer/Dryer", "Dishwasher", "Hardwood Floors", "Walk-In Closets"]},"schools": [{"name": "PS 111", "rating": 8, "type": "Elementary School", "visibility": "Public"}],"faq": [{"question": "Is parking available?", "answer": "Yes, garage parking is available for $350/month."}],"officeHours": {"today": {"open": "09:00", "close": "18:00", "isClosed": false}},"media": {"photos": ["https://images1.apartments.com/i2/..."],"photoCount": 45,"videoCount": 2,"virtualTourCount": 3},"breadcrumb": [{"name": "New York", "url": "https://www.apartments.com/ny/"},{"name": "New York County", "url": "https://www.apartments.com/new-york-county-ny/"},{"name": "New York", "url": "https://www.apartments.com/new-york-ny/"}]}
What makes this scraper different?
Compared to other apartments.com scrapers on Apify:
| Feature | Others | This scraper |
|---|---|---|
| Email extraction from property websites | No | Yes |
| Drive Score | No | Yes |
| Score labels ("Very Walkable") | No | Yes |
| Full review texts with author & date | No | Yes |
| FAQ from listing | No | Yes |
| Office hours | No | Yes |
| Lease terms | No | Yes |
| Year built, units, stories | No | Yes |
| Property website URL | No | Yes |
| Languages spoken | No | Yes |
| Amenities by category | 1 scraper | Yes |
| Async concurrency (10 parallel) | Varies | Yes |
| Search-only mode (no details) | No | Yes |
| Native async TLS (primp) | No | Yes (fastest) |
How it works (technical)
- Search phase — Fetches search result pages and extracts listing URLs with pagination
- Detail phase — Visits each listing page and extracts data from:
startup.init()JavaScript object (94+ fields)- Schema.org JSON-LD (
@graphwith Product, BreadcrumbList, FAQPage) - HTML elements (scores, amenities, fees, schools, transportation)
- Email phase (optional) — Follows the property website link and extracts validated emails with strict filtering (junk domains, placeholder addresses, file extensions excluded)
The scraper uses primp — a TLS client that generates browser-identical fingerprints, bypassing Akamai Bot Manager without Playwright or Selenium overhead. Each request gets a unique proxy session ID for IP rotation.
Tips for best results
- Use Residential US proxies (pre-configured). Datacenter proxies will be blocked by Akamai.
- Start with small runs (
maxPages: 1,maxItems: 5) to verify your setup before scaling. - Multiple cities in one run — add several search URLs to scrape New York, Chicago, and Miami simultaneously.
- Search-only mode — set
includeDetails: falseto quickly grab listing URLs without full details. Great for monitoring new listings. - Concurrency 5-10 is the sweet spot. Going above 15 may increase block rate.
Limits
- apartments.com shows max 18 pages (~720 listings) per search query
- Some listings may not have scores, reviews, or property websites
- Email extraction depends on whether the property website is reachable and contains a contact email
- The site uses Akamai Bot Manager — occasional 403 blocks are expected and handled automatically with session rotation
Support
Having issues or need a custom feature? Contact: africanec@gmail.com
Cost estimate
| Scenario | Pages | Details | Requests | ~Time |
|---|---|---|---|---|
| Quick test | 1 page (40 listings) | 5 details | ~10 | ~30s |
| Single city | 5 pages (200 listings) | 50 details | ~60 | ~3 min |
| Full city scan | 18 pages (720 listings) | All | ~740 | ~15 min |
| Multi-city (5 cities) | 5 pages each | 100 total | ~200 | ~8 min |