Apartments.com Scraper - Rentals, Prices & Leads avatar

Apartments.com Scraper - Rentals, Prices & Leads

Pricing

from $2.70 / 1,000 rental listings

Go to Apify Store
Apartments.com Scraper - Rentals, Prices & Leads

Apartments.com Scraper - Rentals, Prices & Leads

Scrape Apartments.com by city: rent prices, floor plans with per-unit rents, beds/baths/sqft, amenities, pet policy, ratings & reviews, walk score, photos, the leasing-office phone and the property-management company. Turn every property into a B2B lead. No login, no key, no browser.

Pricing

from $2.70 / 1,000 rental listings

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

10

Total users

4

Monthly active users

31 minutes ago

Last modified

Share

Apartments.com Scraper - Rentals, Prices & Property Management Leads

Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by CoStar Group, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "Apartments.com" is referenced only to describe the publicly available website this Actor collects data from.

Extract complete Apartments.com rental data for any US city or ZIP code: base rent and total monthly price (with required fees), every floor plan and every available unit with its rent and move-in date, fees and pet policy, ratings & resident reviews, walk / transit / bike / sound scores, nearby schools, photos and the leasing-office phone, plus the field most scrapers leave empty: the property-management company behind each property, with its Apartments.com profile and the property's own website. Every record is a ready-to-use B2B lead, scored 0–100.

No login and no API key. The actor reads Apartments.com through Apify Proxy with a real browser engine that gets past Apartments.com's bot protection, starting on the shared datacenter pool and switching to residential IPs on its own when needed.

Why this Apartments.com scraper?

Most Apartments.com scrapers return the search card and stop. This actor merges the search results, the full property page and the page's own structured data into one rich record, and it surfaces the management company as a contactable lead, with a built-in new-listing / rent-drop monitor.

DataTypical scrapersThis actor
Property name, full address, neighborhood, county, geopartial✅
Base rent and total monthly price incl. required fees❌✅
Every floor plan with rent range, beds, baths, sqft, units available❌✅
Every available unit with its number, rent and move-in date❌✅
Leasing-office phone, office hours, languagespartial✅
Property-management company + its Apartments.com profile❌✅
Property's own website + management emails & socials❌✅ opt-in emails
Fees (application, deposits, monthly fees), pet policy, lease options, utilitiespartial✅
Ratings, review count and recent resident reviews❌✅
Walk / transit / bike / drive scores and Soundscore❌✅
Nearby schools, nearest transit stop and airport❌✅
Neighborhood vs city average rent by bedroom count❌✅
Move-in specials, year built, unit count, verified-listing badgepartial✅
Photos, video tours and 3D tourspartial✅
Lead score (0–100) per property❌✅
New-listing & rent-drop monitor❌✅

What you get

GroupFields
Identity & locationpropertyId, propertyName, url, propertyType, streetAddress, city, state, zip, fullAddress, neighborhood, county, market, latitude, longitude
Contact & leadphone, managementCompany, managementCompanyUrl, managementCompanyLogo, propertyWebsite, officeHours, contactLanguages, leadScore, opt-in contactEmails, contactPhones, socialLinks
PricerentMin, rentMax (base rent), totalMonthlyPriceMin, totalMonthlyPriceMax (with required monthly fees), requiredMonthlyFees, priceText, pricesByBedroom, hasSpecials, deals, dealsExpireAt
Size & availabilitybedsMin/bedsMax, bedText, bathsMin/bathsMax, sqftMin/sqftMax, floorPlanCount, floorPlans[], units[], availableUnitCount, availabilityText, leaseTermMonths, leaseOptions, shortTermLease
Fees & policiesfees, feesDetailed[] (category, amount, monthly/one-time, refundable), petFriendly, petPolicy, utilitiesIncluded, parking
Property factsyearBuilt, yearRenovated, totalUnits, stories, furnishedAvailable, verifiedListing, advertisingTier, forRentByOwner, specialty, listingUpdatedAt, description
Amenitiesamenities, communityAmenities, unitFeatures, uniqueFeatures
Reviewsrating, reviewCount, reviews[] (author, rating, date, title, text)
NeighborhoodwalkScore, transitScore, bikeScore, driveScore, soundScore, nearestTransit, nearestAirport, schools, schoolDetails[], marketRents
Mediaphotos, photoCount, hasVideoTour, videoTourUrls, has3DTour, virtualTourUrl
Run contextsearchLocation, searchUrl, searchPosition, scrapedAt, monitor monitorReason / previousRentMin

Use cases

  • B2B lead generation - property-management companies and leasing offices buy proptech, maintenance, insurance, accounting, smart-home, staffing and marketing services. Export them with phone, website and (opt-in) email, ranked by leadScore.
  • Rental market & pricing intelligence - track base rents, total monthly prices with fees, concessions, availability and floor-plan mix by city, neighborhood and property type.
  • Rent-drop & new-listing alerts - schedule the actor in monitor mode to capture only properties that are new or whose rent changed.
  • Competitive research - see which management companies run which properties, their ratings, fees and amenities, across any market.
  • Relocation & renter tools - feed apps and dashboards with units, move-in dates, walk/transit scores, schools and commute anchors.

How to use

  1. Sign up for Apify - the free plan is enough to try this actor.
  2. Open the Apartments.com Scraper, add one or more locations as City, ST (e.g. Austin, TX) or a ZIP code, choose property types, and click Start.
  3. Watch results stream into the dataset table. Switch between the Properties, Leads, Pricing & availability and Location & scores views.
  4. Export as JSON, CSV, Excel, XML or RSS - or pull results programmatically via the Apify API.

Input

{
"locations": ["Austin, TX", "Denver, CO"],
"propertyTypes": ["apartments"],
"maxResults": 100,
"includeListingDetails": true,
"enrichContactEmails": false,
"monitorMode": false
}
  • locations - US cities as City, ST (e.g. Austin, TX) or a 5-digit ZIP code. Each location is searched for every selected property type.
  • propertyTypes - apartments (default), houses, condos, townhomes.
  • startUrls - Apartments.com results pages (including Apartments.com's own filter URLs such as https://www.apartments.com/austin-tx/2-bedrooms/) or single property pages. urlsFromFile imports a pasted list or a linked .txt/.csv/Google Sheet.
  • maxResults - total properties per run (default 100; 0 = no limit, up to 5,000). With several searches the limit is shared fairly between them. maxResultsPerSearch sets a hard cap per search.
  • includeListingDetails (default true) - open each property page for floor plans, units, fees, the management company, website, reviews, scores, schools and all photos. Turn it off for a fast list of search results.
  • minPrice / maxPrice / minBeds / maxBeds / petFriendlyOnly - filters, checked on every property before it is saved and billed.
  • enrichContactEmails (default false) - read the property's own website (home + contact/about, max 3 pages) for management emails, phones and social profiles. Apartments.com never shows emails.
  • monitorMode (default false) - return only properties that are new or whose rent changed since earlier runs (tagged monitorReason).
  • proxyConfiguration - Apify Proxy (US) by default: shared datacenter first, residential automatically if needed.

Output

One record per property (type: "property"), shortened:

{
"type": "property",
"propertyId": "40n18nj",
"propertyName": "Edison Austin",
"url": "https://www.apartments.com/edison-austin-austin-tx/40n18nj/",
"propertyType": "apartments",
"streetAddress": "4711 E Riverside Dr",
"city": "Austin",
"state": "TX",
"zip": "78741",
"neighborhood": "East Riverside-Oltorf",
"county": "Travis County",
"latitude": 30.23105,
"longitude": -97.71876,
"phone": "(737) 377-3852",
"managementCompany": "The Connor Group",
"managementCompanyUrl": "https://www.apartments.com/pmc/the-connor-group/x0kznmn/",
"propertyWebsite": "https://edisonaustin.com/",
"rentMin": 1295,
"rentMax": 2895,
"totalMonthlyPriceMin": 1541,
"totalMonthlyPriceMax": 3141,
"requiredMonthlyFees": 245,
"bedText": "Studio - 2 Beds",
"bathsMin": 1,
"bathsMax": 2,
"sqftMin": 509,
"sqftMax": 1429,
"floorPlanCount": 25,
"floorPlans": [
{ "name": "E2", "beds": 0, "baths": 1, "sqft": 509, "rent": 1295, "rentMax": 1295, "totalMonthlyPriceMin": 1541, "availableUnits": 6, "availability": "Available Now", "leaseTermMonths": 12 }
],
"units": [
{ "unitNumber": "2315", "floorPlan": "E2", "beds": 0, "baths": 1, "sqft": 509, "rent": 1295, "totalMonthlyPrice": 1541, "availability": "Available Now" }
],
"availableUnitCount": 12,
"fees": ["Application Fee: $100", "Parking Garage (Per Adult): $50/mo", "Pet Fee: $500"],
"petFriendly": true,
"hasSpecials": true,
"deals": "Move-in Special: ...",
"yearBuilt": 2019,
"totalUnits": 354,
"rating": 1.8,
"reviewCount": 10,
"walkScore": 70,
"transitScore": 60,
"soundScore": 72,
"nearestAirport": { "name": "Austin-Bergstrom International", "distanceMiles": 8.1, "minutes": 19, "mode": "drive" },
"schools": ["Baty Elementary School"],
"officeHours": "Mon-Fri 11:00 AM-6:00 PM; Sat 10:00 AM-5:00 PM",
"photoCount": 26,
"leadScore": 86,
"searchLocation": "Austin, TX",
"scrapedAt": "2026-10-08T04:19:57.944Z"
}

Good to know

  • Base rent vs total monthly price. In states where landlords must show required monthly fees, Apartments.com advertises a total monthly price. You get both: rentMin/rentMax is the base rent, totalMonthlyPriceMin/totalMonthlyPriceMax adds the required monthly fees.
  • Property type matters. Apartment communities carry the richest data (floor plans, many units, fees, office hours, the management company). Individually listed condos and houses (often "For Rent By Owner") are single units: they have one unit and no floor-plan breakdown, management company or leasing office.
  • Only what the property published. Ratings and reviews exist only for reviewed properties, specials only while a property runs one, and the property website only when the property links one. A blank field means the property did not publish it.
  • Emails never come from Apartments.com. With enrichContactEmails on, the actor reads the property's own public website.
  • Monitor mode scans every results page of each search so properties that already existed are never reported as new. Its first run sets the baseline.

How much does it cost to scrape Apartments.com?

This Actor uses Apify's pay-per-event pricing with no monthly rental: you pay for the results it delivers and, from 22 October 2026, a small fee when a run starts. The events it can charge are:

  • Rental listing - One rental property from the search results: name, address & geo, leasing-office phone, management company, rent range, total monthly price and prices by bedroom, beds/baths/sqft, card amenities, specials, a photo and a 0-100 lead score.
  • Full property detail - Per property when 'Include full property details' is on (one extra page): description, every floor plan and available unit with rent, sqft and move-in date, fees, lease terms, pet policy, all amenities, schools, transit, walk scores, office hours, ratings & reviews where published, website and photos.
  • Enriched management contact - Per property whose own website yields an email or social profile, when 'Enrich management contact emails' is on: emails, phones and social links read from its home, contact and about pages (max 3). Nothing is charged when none are found.
  • Actor Start - From 22 October 2026: charged once when a run starts, one event per GB of run memory (runs use 2 GB by default).

The current price of each event is shown on the Pricing tab of this page. Set a maximum total charge on the run if you want a hard cap on spend, and use the input limits to control how much the Actor fetches.

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/apartments-com-scraper').call({
locations: ['Austin, TX'],
propertyTypes: ['apartments'],
maxResults: 100,
includeListingDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} properties & leads`);

Integrate with any app

Connect the dataset to 5,000+ apps - no code required:

  • Make - multi-step automation scenarios.
  • Zapier - push new property-management leads straight into your CRM.
  • Slack - get notified when a monitored city gets new listings or rent drops.
  • Google Drive / Sheets - auto-export every run to a spreadsheet.
  • Airbyte - pipe results into your data warehouse.
  • GitHub - trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server - ask your assistant to "find apartments in Austin under $2,000 and list the management companies" and let it run the scraper for you.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready: AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402: an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server, with no account and no API key.
  • Skyfire: agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Build a complete real-estate & property lead-gen stack:

Tips

  • Keep includeListingDetails on for the management company, floor plans, units, fees and scores - it is the difference between a listing and a lead.
  • Management leads: use the Leads view, and turn on enrichContactEmails to read each property's own website for a contact email.
  • Several cities in one run: add them all to locations; maxResults is shared fairly so every city gets its part.
  • Apartments.com's own filters (beds, price, keywords) work too: run a search on Apartments.com, copy the URL and paste it into startUrls.
  • Recurring monitoring: combine Schedules with monitorMode, one monitor store name per monitored search.
  • Proxies: keep the default. The actor switches from datacenter to residential IPs by itself when Apartments.com asks for it, and says so in the log.

FAQ

How do I scrape Apartments.com for a specific city? Put it in locations as City, ST (e.g. Austin, TX) or a ZIP code, or paste a city URL like https://www.apartments.com/austin-tx/ into startUrls. Combine with property types and filters to narrow.

Does it work without an API key or login? Yes. This actor extracts the same data a visitor sees on public Apartments.com pages - no key or login needed.

What is the difference between rent and total monthly price? rentMin/rentMax is the base rent. totalMonthlyPriceMin/totalMonthlyPriceMax adds the required monthly fees Apartments.com lists for the property (parking, tech packages, admin fees and similar).

Where do the emails come from? Never from Apartments.com (it does not publish emails). With enrichContactEmails on, the actor visits the property's own public website and extracts publicly listed contact emails.

Can I export to Google Sheets, CSV, or Excel? Yes - one click in the dataset view, or automatically on every run via the Google Drive integration.

How do I monitor new listings or rent drops? Create a Schedule, turn on monitorMode, and optionally add a webhook to push new properties into your CRM as they appear.

What happens if I run it with no input? It scrapes a small sample (10 properties in Austin, TX) so you can see the output.

A field is empty - why? The property did not publish it (for example no reviews yet, no specials right now, or no website link). Fields are blank only when the data does not exist on the page.

Is scraping Apartments.com legal? This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws (e.g. GDPR/CCPA for personal data) and Apartments.com's terms.

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by CoStar Group, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

"Apartments.com" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official Apartments.com product, is not authorised or certified by CoStar Group, Inc., and does not distribute Apartments.com software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome - this actor is actively maintained.