🏒 Apartments.com Scraper avatar

🏒 Apartments.com Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
🏒 Apartments.com Scraper

🏒 Apartments.com Scraper

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

Scraply

Scraply

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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

FieldTypeRequiredDefaultDescription
startUrlsarrayβœ…β€“One or more Apartments.com URLs β€” listing pages or search/map pages
maxItemsinteger❌50Cap on how many properties to scrape (0 = unlimited)
requestDelaynumber❌1.0Base delay between requests in seconds (random jitter added)
maxRetriesPerRequestinteger❌4Retries before giving up on a single page
proxyConfigurationobject❌directOptional 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

FieldTypeDescription
idstringApartments.com listing slug (7-char ID)
propertyNamestringBuilding / community name
urlstringCanonical listing URL
breadcrumbsarray<string>Geographic trail from state down to property
lastUpdatedstringListing's last-updated timestamp (US format)
location.fullAddressstringFull address one-liner
location.streetAddressstringStreet line only
location.citystringCity
location.statestringFull state name
location.neighborhoodstringNeighborhood (last meaningful breadcrumb)
location.postalCodestringZIP / postal code
coordinates.latitudenumberLatitude in decimal degrees
coordinates.longitudenumberLongitude in decimal degrees
rent.minintegerMinimum monthly rent in USD
rent.maxintegerMaximum monthly rent in USD
ratingnumberPublic rating, when present
isVerifiedbooleanWhether Apartments.com flags it as Verified
transportation[]arrayNearby 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)

  1. Log in to Apify Console β†’ Actors.
  2. Open the Apartments.com Scraper actor.
  3. Paste one or more Apartments.com URLs into Apartments.com URLs.
  4. (Optional) Tweak maxItems, requestDelay, or override the proxy.
  5. Click Start.
  6. Watch results stream into the Dataset tab in real time.
  7. 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.

EventDescription
result-itemCharged 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.

  • 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.