Apartments Scraper (Cheap)
Pricing
from $3.99 / 1,000 results
Apartments Scraper (Cheap)
Pulls apartment listings from Apartments.com. Point it at a city or neighborhood search URL and it returns prices, floor plans, amenities, and contact details as a structured dataset.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
Data API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Apartments.com Rental Scraper

Pulling rental data off Apartments.com by hand is slow work: every city has hundreds of result pages, the rent only shows up on the card, and the floor plans and amenities sit one click deeper. This scraper does the clicking for you. Point it at a city page, a filtered search, or a single property, and it returns each rental as one clean row with the name, monthly rent, address, phone, amenities, and photos. Pagination is handled on its own, so a single URL can turn into a full city dataset.
What you get
Every rental comes back as one row with a steady set of columns. When a value is missing it returns as null rather than disappearing, so the data stays rectangular for a spreadsheet or database load. The fields fall into a few groups:
- Property and location —
propertyName,fullAddress,streetName,cityName,stateCode,postalCode, plus maplat/lng - Rent and units —
rentMin,rentMax,bedroomPricing, andfloorPlans(beds, baths, square footage, rent range, availability) - Amenities and flags —
amenityListplus quick booleanspetsAllowed,parkingAvailable,poolAvailable,gymAvailable - Contact and media —
contactPhone,propertyWebsite,coverPhoto,photoLinks - Reputation —
starRating,reviewsTotal, and the fulllistingDescription
Quick start
- Open the actor and go to the input form.
- Paste one or more Apartments.com URLs into Apartments.com URLs.
- Flip on Open each rental page if you want coordinates, floor plans, full amenities, and all photos.
- Set a Results limit to cap the run, then press Start and export as JSON, CSV, Excel, or XML.

The scraper accepts:
- City pages:
https://www.apartments.com/austin-tx/ - Filtered searches:
https://www.apartments.com/seattle-wa/2-bedrooms/ - Single property pages:
https://www.apartments.com/the-name-city-st/xyz789/
Use cases
- Rent tracking — watch how asking rents move month to month across a city or neighborhood and re-run on a schedule
- Real estate analysis — compare price-per-sqft, bedroom mix, and amenity profiles across several markets before site visits
- Lead lists — gather leasing phone numbers and property websites for a target city, then export to CSV for outreach
- Market research — break down average rent by bedroom count, pet policy, or ZIP code and join it to census data
- Competitive watch — follow a rival community's pricing and the floor plans it still has available over time
Input
| Field | Type | Required | Description |
|---|---|---|---|
listingUrls | array of strings | Yes | Apartments.com search or property URLs to scrape. City pages, filtered searches, and single property pages all work. |
fetchDetailPages | boolean | No | Open each property page for coordinates, floor plan sqft, full amenities, all photos, rating, and description. Costs one extra credit per rental. Default false. |
withFloorPlans | boolean | No | With detail pages on, attach per-unit floor plan rows. Default false. |
withAmenities | boolean | No | With detail pages on, attach the full amenity list per rental. Default false. |
resultsLimit | integer | No | Stop after this many rentals (up to 1000). Default 40. |
timeoutSeconds | integer | No | Seconds to wait on a single request before giving up. Default 75. |
Example input
{"listingUrls": ["https://www.apartments.com/austin-tx/","https://www.apartments.com/seattle-wa/2-bedrooms/"],"fetchDetailPages": true,"withFloorPlans": true,"withAmenities": true,"resultsLimit": 40,"timeoutSeconds": 75}
Output
Each rental becomes one row, and every field is always present — values the page does not expose come back as null so your dataset stays rectangular.
Example output
{"listingUrl": "https://www.apartments.com/the-quarry-austin-tx/xyz789/","listingId": "xyz789","propertyName": "The Quarry","fullAddress": "2400 E Riverside Dr, Austin, TX 78741","streetName": "2400 E Riverside Dr","cityName": "Austin","stateCode": "TX","postalCode": "78741","lat": 30.23456,"lng": -97.72103,"contactPhone": "(512) 555-0142","propertyWebsite": "https://www.thequarryaustin.com/","listingDescription": "Modern one and two bedroom apartments minutes from downtown Austin...","starRating": 4.2,"reviewsTotal": 58,"rentMin": 1395,"rentMax": 2480,"bedroomPricing": [{ "beds": "Studio", "priceFrom": "$1,395+", "priceFromInt": 1395 },{ "beds": "1 Bed", "priceFrom": "$1,650+", "priceFromInt": 1650 },{ "beds": "2 Beds", "priceFrom": "$2,100+", "priceFromInt": 2100 }],"floorPlans": [{"name": "Studio","beds": "Studio","baths": "1","sqftMin": 480,"sqftMax": 520,"priceMin": 1395,"priceMax": 1480,"available": true},{"name": "2 Bedroom","beds": "2","baths": "2","sqftMin": 980,"sqftMax": 1100,"priceMin": 2100,"priceMax": 2480,"available": true}],"amenityList": ["Pool","Fitness Center","In Unit Washer & Dryer","Covered Parking","Pet Friendly"],"coverPhoto": "https://images1.apartments.com/i2/abcd1234/primary-photo.jpg","photoLinks": ["https://images1.apartments.com/i2/abcd1234/primary-photo.jpg","https://images1.apartments.com/i2/efgh5678/building-photo.jpg"],"petsAllowed": true,"parkingAvailable": true,"poolAvailable": true,"gymAvailable": true,"collectedAt": "2026-06-29T12:00:00.000000+00:00","errorMessage": null}
Output fields
| Field | Type | Description |
|---|---|---|
listingUrl | string | Direct link to the Apartments.com rental page |
listingId | string | The identifier Apartments.com assigns to the rental |
propertyName | string | Name of the apartment community or building |
fullAddress | string | Complete address line shown on the rental |
streetName | string | Street part of the property address |
cityName | string | City the property sits in |
stateCode | string | Two-letter US state abbreviation |
postalCode | string | Postal code for the property |
lat | number | Map latitude for the property |
lng | number | Map longitude for the property |
contactPhone | string | Leasing contact phone for the property |
propertyWebsite | string | Outside website link for the property when one is published |
listingDescription | string | Full write-up text taken from the rental page |
starRating | number | Average renter score from 1 to 5 stars |
reviewsTotal | integer | How many renter reviews the property has |
rentMin | integer | Cheapest monthly rent across the available units |
rentMax | integer | Priciest monthly rent across the available units |
bedroomPricing | array | Starting rent for each bedroom type from the search card |
floorPlans | array | Per-unit floor plan rows, populated when detail pages are opened |
coverPhoto | string | Lead property photo URL grabbed from the search card |
amenityList | array | Amenity labels found on the rental, such as pool, gym, or parking |
photoLinks | array | Collection of property photo URLs |
petsAllowed | boolean | True when the rental notes that pets are welcome |
parkingAvailable | boolean | True when parking shows up in the amenities |
poolAvailable | boolean | True when a pool shows up in the amenities |
gymAvailable | boolean | True when a fitness center or gym shows up in the amenities |
collectedAt | string | ISO 8601 timestamp for when the row was captured |
errorMessage | string | Why a rental failed; null on success |
Tips for best results
- Try a few URLs first. Run 10 rentals before committing to a whole city. URL-format and limit issues show up in the first rows.
- Keep detail pages off for a quick pass. Search-card data already gives you name, rent, address, phone, and amenity tags. Turn on Open each rental page only when you need coordinates, floor plans, or all photos, since it costs an extra credit per rental.
- Use
resultsLimitto control spend. Big cities run to hundreds of result pages at roughly 40 rentals each, so set a cap while you tune your pipeline. - Expect some null rents. When a property only shows a contact form,
rentMinandrentMaxcome backnull. That is a data limit, not an error. - Raise
timeoutSecondsif you see timeout errors on large or slow pages.
How can I use Apartments.com rental data?
How can I use the Apartments.com Rental Scraper to build a rent dataset for a city?
Paste a city page such as https://www.apartments.com/austin-tx/ and the scraper walks every result page, returning each rental's name, monthly rent range, address, and amenities as one row. Group by ZIP code or bedroom count to chart asking rents and supply, then re-run on a schedule to track how the market moves.
How can I scrape Apartments.com floor plans and amenities for a property?
Drop a single property URL into listingUrls and turn on Open each rental page with withFloorPlans and withAmenities. You get per-unit beds, baths, square footage, and rent ranges in floorPlans, the complete amenityList, plus coordinates and every photo — the full picture for one community in a single row.
How can I pull leasing contact details from Apartments.com for outreach?
Run a city or filtered search and the scraper returns contactPhone and propertyWebsite for each rental alongside the property name and address. Export to CSV, filter for the rentals that fit your criteria, and you have a ready outreach list without copying numbers off pages by hand.
Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. 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
Questions, feature requests, or a field you'd like added? Reach out at data.apify@proton.me and we'll get back to you.