π’ Apartments.com Scraper
Pricing
from $3.99 / 1,000 results
π’ Apartments.com Scraper
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
Scraply
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Scrape Apartments.com for clean, structured property data β rent ranges, full addresses, GPS coordinates, neighborhoods, ratings, verification status and nearby transit β from any combination of listing URLs and search/map URLs, in bulk.
β‘οΈ Streams results into the dataset as each property is parsed β no waiting until the end of the run for partial output.
β¨ Why choose this scraper?
- π§ Smart proxy auto-escalation β starts direct (cheapest), automatically falls back to datacenter then residential proxies if Apartments.com pushes back. Once on residential it stays there. You don't have to think about it.
- π Listing URLs and search/map URLs β paste either; the scraper detects which is which and crawls accordingly.
- β‘ Real-time output β every property is pushed to the dataset the moment it's scraped, not at the end. Refresh the run page and watch rows appear.
- π§± Browser TLS impersonation under the hood (chrome / chrome124 / edge101) plus header rotation β survives modern anti-bot edges without the cost of a real browser.
- π Sectioned dataset tabs β Overview, Location, Rent, Transit views built in.
- πΈ Pay per event β you only pay for properties we successfully deliver.
π Key Features
- π·οΈ Property name, ID, canonical URL
- π Full address β street, city, state, postal code, neighborhood
- πΊοΈ Latitude & longitude coordinates
- π° Rent range (min & max in USD)
- β Public rating (when present)
- β Verified-listing flag
- π Last-updated timestamp
- π§ Breadcrumbs trail (state β county β city β neighborhood)
- π Nearby transit stations β name, drive time, distance, transit page URL
π₯ Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | array | β | β | One or more Apartments.com URLs β listing pages or search/map pages |
maxItems | integer | β | 50 | Cap on how many properties to scrape (0 = unlimited) |
requestDelay | number | β | 1.0 | Base delay between requests in seconds (random jitter added) |
maxRetriesPerRequest | integer | β | 4 | Retries before giving up on a single page |
proxyConfiguration | object | β | direct | Optional override of the starting proxy tier |
Example input
{"startUrls": [{ "url": "https://www.apartments.com/brookline-ma/" },{ "url": "https://www.apartments.com/forte-at-1440-beacon-brookline-ma/wqc416h/" }],"maxItems": 50,"requestDelay": 1.0,"proxyConfiguration": { "useApifyProxy": false }}
π€ Output
Each item in the dataset looks like this:
{"id": "wqc416h","propertyName": "Forte at 1440 Beacon","url": "https://www.apartments.com/forte-at-1440-beacon-brookline-ma/wqc416h","breadcrumbs": ["Massachusetts", "Norfolk County", "Brookline", "Forte at 1440 Beacon"],"lastUpdated": "5/13/2026 11:39:31 AM","location": {"fullAddress": "1440 Beacon St, Brookline, MA 02446","state": "Massachusetts","city": "Brookline","neighborhood": "Brookline","postalCode": "02446","streetAddress": "1440 Beacon St"},"coordinates": { "latitude": 42.34098, "longitude": -71.12706 },"rating": null,"isVerified": true,"rent": { "min": 2935, "max": 3818 },"transportation": [{ "name": "Summit Avenue Station", "drive": "1 min", "distance": "0.1 mi","url": "https://www.apartments.com/transit/ma/brookline/summit-avenue-station/rv87tg3/" }]}
Output fields
| Field | Type | Description |
|---|---|---|
id | string | Apartments.com listing slug (7-char ID) |
propertyName | string | Building / community name |
url | string | Canonical listing URL |
breadcrumbs | array<string> | Geographic trail from state down to property |
lastUpdated | string | Listing's last-updated timestamp (US format) |
location.fullAddress | string | Full address one-liner |
location.streetAddress | string | Street line only |
location.city | string | City |
location.state | string | Full state name |
location.neighborhood | string | Neighborhood (last meaningful breadcrumb) |
location.postalCode | string | ZIP / postal code |
coordinates.latitude | number | Latitude in decimal degrees |
coordinates.longitude | number | Longitude in decimal degrees |
rent.min | integer | Minimum monthly rent in USD |
rent.max | integer | Maximum monthly rent in USD |
rating | number | Public rating, when present |
isVerified | boolean | Whether Apartments.com flags it as Verified |
transportation[] | array | Nearby transit β name, drive, distance, optional url |
The dataset has four built-in views β Overview, Location, Rent, Transit β so you can drill into one section at a time without sifting through the full record.
π How to use (Apify Console)
- Log in to Apify Console β Actors.
- Open the Apartments.com Scraper actor.
- Paste one or more Apartments.com URLs into Apartments.com URLs.
- (Optional) Tweak
maxItems,requestDelay, or override the proxy. - Click Start.
- Watch results stream into the Dataset tab in real time.
- When the run finishes, export to JSON, CSV, XLSX, or pipe via API / webhook.
π€ Use via API / MCP
Run synchronously and get all items back in one shot:
curl -X POST \"https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{ "url": "https://www.apartments.com/brookline-ma/" }],"maxItems": 25}'
Or start a run asynchronously and poll for status:
curl -X POST \"https://api.apify.com/v2/acts/<ACTOR_ID>/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{ "url": "https://www.apartments.com/brookline-ma/" }],"maxItems": 25}'
π― Best use cases
- ποΈ Real-estate market research (rent comparisons, neighborhood pricing)
- π§³ Relocation planning (transit access, neighborhoods, ZIP codes)
- π Building portfolio dashboards for investors
- π€ Feeding LLM agents with up-to-date rental data
- πΊοΈ Geo-tagged datasets for analytics / GIS
π° Pricing
This actor uses Pay-Per-Event (PPE) monetization.
| Event | Description |
|---|---|
result-item | Charged once for every property successfully saved to the dataset |
Failed pages cost you nothing. Apify covers the first 5 seconds of compute via the synthetic apify-actor-start event, and the actor exits cleanly when your spend cap is reached β no surprise bills.
β Frequently asked questions
Do I need a proxy? Not to start. The actor begins with a direct connection. If Apartments.com starts blocking, it automatically escalates to datacenter, then residential proxy, and sticks there. You only need to configure proxy manually if you want to start on residential right away (e.g. for known-hot ZIP codes).
Can I scrape an entire city?
Yes. Pass a city search URL (e.g. https://www.apartments.com/brookline-ma/) and the actor will paginate through search results until it hits your maxItems cap or runs out of pages.
Does it work with the map / draw-area URLs?
Yes β URLs with ?bb=β¦ paginate via &page=N and the actor handles that transparently.
What happens mid-run if it crashes?
Every property is push_data'd the moment it's parsed, so a crash leaves a partial dataset rather than an empty one.
Can I get all images / virtual tours? The current build focuses on tabular property data + transit. Image-set and virtual-tour scraping are on the roadmap.
π Support & Feedback
- π Issues: open an issue on the actor's Apify page β Issues tab.
- π¬ Feature requests welcome β message the actor author via Apify Console.
βοΈ Legal & ethics
- Only collects publicly accessible data from Apartments.com.
- You are responsible for legal compliance β GDPR, CCPA, the target site's Terms of Service, and any anti-spam laws that apply to how you use the data.
- The actor honors reasonable rate limits to be a good citizen of the web.