Apartments Com Scraper
Pricing
from $1.00 / 1,000 results
Apartments Com Scraper
From 1$/1000 results. Scrape Apartments.com listings by city, filter, or direct URL. Extract rent, address, beds, baths, amenities, photos, virtual tours & coordinates. Residential proxy needed for full detail mode.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Alexandre Manguis
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Apartments.com Scraper
From $1 per 1 000 listings — search by city, filter, or paste any Apartments.com URL. No watermark. REST API ready.
Proxy requirements
| Mode | Proxy needed |
|---|---|
Cards only (includeDetails: false) | Not required — search pages are accessible without proxy on most runs |
Full detail (includeDetails: true) | Required — detail pages are heavily protected and will be blocked without a residential proxy |
Default mode is cards only — no proxy needed to get started.
When you enable full detail, use your own residential proxies for reliable results. Datacenter proxies are blocked quickly.
{"proxyConfiguration": {"proxyUrls": ["http://USERNAME:PASSWORD@YOUR-PROXY-HOST:PORT"]}}
What it does
Visit Apartments.com search and listing pages, collect results, and save structured data to a dataset. Two modes — choose the one that fits your workflow:
| Mode | How | Speed |
|---|---|---|
| URL mode | Paste any Apartments.com search, filter, map, or property URL | Fastest |
| Builder mode | Set city, home type, bedrooms, price, pets, amenities in the input form | No URL needed |
Both modes support pagination, detail-page extraction, keyword post-filtering, and optional proxy.
What it extracts
From search result cards (fast mode)
| Field | Description |
|---|---|
url | Listing URL |
propertyName | Property name |
address | Street address when visible |
price | Rent text from the card |
beds / baths / sqft | Size info |
phone | Phone when shown on card |
amenities | Amenities visible on the card |
image | Card thumbnail URL |
From detail pages (full mode)
Everything above, plus:
| Field | Description |
|---|---|
rent | Full rent range from the detail page |
rating | Star rating text |
description | Full property description |
highlights | Property highlights section |
amenities | Complete amenity list |
feesAndPolicies | Fees, deposits, pet policy text |
schools | Nearby schools & education info |
transportation | Transit & commute info |
floorPlans | Floor plan & availability text |
coordinates | { latitude, longitude } from page data |
images | All photo URLs (toggle with includeImages) |
virtualTours | Virtual tour, video & Matterport links |
source | Origin search URL, page number |
scrapedAt | ISO timestamp |
Best use cases
- Real-estate lead generation — batch-pull landlord contact info (name, phone, address) for outreach
- Market research — track rent trends by city, bedroom count, or neighborhood
- Competitive analysis — monitor price changes and new listings in target markets
- Data pipelines — feed structured apartment data into CRMs, spreadsheets, or BI tools
- Investment analysis — compare rent-to-price ratios across neighborhoods
- Relocation tools — build curated shortlists with photos, floor plans, and amenity scores
Quick start
- Click Try for free (or call the API).
- Option A — paste one or more Apartments.com URLs into Start URLs.
Option B — leave Start URLs empty and fill in Locations, Bedrooms, Max rent, etc. - Set Maximum listings to control run cost.
- Click Start — results appear in the Dataset tab within minutes.
Input
Targeting
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | — | Paste Apartments.com search, filter, map, or property detail URLs. Overrides builder inputs |
locations | array | ["new-york-ny"] | City slugs (e.g. new-york-ny, miami-fl, chicago-il) |
homeTypes | array | ["all"] | all, apartments, houses, condos, townhomes |
bedrooms | array | — | studios, 1, 2, 3, 4, 5, min-2, min-3 |
priceMin | integer | — | Minimum monthly rent |
priceMax | integer | — | Maximum monthly rent |
petPolicy | string | — | pet-friendly, pet-friendly-dog, pet-friendly-cat |
amenities | array | — | Filter slugs: washer-dryer, parking, pool, furnished, etc. |
specialties | array | — | student-housing, senior-housing, short-term, low-income, etc. |
extraFilterSlugs | array | — | Any additional Apartments.com URL filter slugs |
rawQueryString | string | — | Raw query string to append to generated URLs |
mapBoundingBoxToken | string | — | Value for the bb= parameter from a map search |
Scraping options
| Field | Type | Default | Description |
|---|---|---|---|
maxItems | integer | 100 | Max listings to save (0 = no limit) |
maxPages | integer | 3 | Max search result pages per URL |
includeDetails | boolean | true | Open each listing for full detail extraction |
includeImages | boolean | true | Extract photo URLs from detail pages |
includeVirtualTours | boolean | true | Extract virtual tour / video links |
saveHtml | boolean | false | Save detail-page HTML to Key-Value Store for debugging |
maxConcurrency | integer | 2 | Parallel pages (keep low without proxy) |
requestHandlerTimeoutSecs | integer | 75 | Page timeout in seconds |
maxRequestRetries | integer | 2 | Retries per URL |
keywords | array | — | Post-filter: only save listings that match these keywords |
keywordMatchMode | string | any | any, all, or phrase |
proxyConfiguration | object | disabled | Apify Proxy or custom proxy URLs |
URL builder examples
The actor builds Apartments.com URLs automatically. Here are a few examples:
| Input | Generated URL |
|---|---|
locations: ["new-york-ny"], bedrooms: ["2"], priceMax: 3000 | /new-york-ny/2-bedrooms-under-3000/ |
locations: ["miami-fl"], homeTypes: ["apartments"], amenities: ["pool"] | /apartments/miami-fl/pool/ |
locations: ["austin-tx"], petPolicy: "pet-friendly-dog" | /austin-tx/pet-friendly-dog/ |
locations: ["chicago-il"], bedrooms: ["studios"] | /chicago-il/studios/ |
Tips
Fastest mode (card-only)
Set includeDetails: false to skip individual property pages. You get the search card data in seconds with no proxy needed for the first few pages.
Avoiding blocks
Apartments.com protects against automated access. Enable Apify Proxy (residential recommended) when running at scale or when you see 403 errors.
Map-area targeting
Copy a map search URL from the site (e.g. https://www.apartments.com/?bb=_slx7yjq0H1g4mu2nD) and paste it into Start URLs for precise geographic targeting.
Keyword post-filter
Use keywords to keep only listings whose text matches. For example ["rooftop", "doorman"] with keywordMatchMode: any saves only listings that mention at least one of those words.
Pagination
maxPages controls how many search-result pages are visited per URL. Apartments.com uses /2/, /3/ etc. as page slugs.
Proxy settings
Proxies are disabled by default for low-volume runs. Enable them in the Proxy section when:
- You receive 403 / blocked errors
- Running at concurrency > 2
- Running more than a few hundred requests
Residential proxies give the best success rate on Apartments.com.
Troubleshooting
| Symptom | Fix |
|---|---|
| 403 / blocked error | Enable Apify Proxy (residential) |
| Empty results | Check the URL or city slug is valid on Apartments.com |
| Missing detail fields | Some fields only appear on certain property types |
| Slow run | Lower maxConcurrency; enable proxy |
| Dataset has fewer rows than expected | Some cards on the page may be ads or have no property URL |
Keywords
apartments.com scraper · rental listings · apartment search api · rent data · real estate leads · property scraper · apartment data extraction · rental market research
Best way to target data
Option A: paste exact Apartments.com URLs
Use startUrls when you already have the URL you want from Apartments.com. This is the safest and most precise targeting mode.
Examples:
https://www.apartments.com/new-york-ny/https://www.apartments.com/new-york-ny/2-bedrooms/https://www.apartments.com/new-york-ny/under-3000/https://www.apartments.com/new-york-ny/washer-dryer/https://www.apartments.com/new-york-ny/min-2-bedrooms-under-3000/https://www.apartments.com/houses/miami-fl/https://www.apartments.com/condos/chicago-il/https://www.apartments.com/townhomes/austin-tx/https://www.apartments.com/toronto-on/https://www.apartments.com/?bb=_slx7yjq0H1g4mu2nD
You can also paste a property detail URL. The Actor will detect it and scrape it as a detail page.
Option B: use the URL builder inputs
Leave startUrls empty and fill the targeting fields:
{"locations": ["new-york-ny"],"homeTypes": ["all"],"bedrooms": ["2"],"priceMax": 3000,"amenities": ["washer-dryer"],"maxItems": 50,"maxPages": 2,"includeDetails": true,"proxyConfiguration": { "useApifyProxy": false }}
This builds:
https://www.apartments.com/new-york-ny/2-bedrooms-under-3000/washer-dryer/
Tested URL patterns
City or area
https://www.apartments.com/new-york-ny/https://www.apartments.com/miami-fl/https://www.apartments.com/toronto-on/
Use the same city slug format Apartments.com uses in its URLs. For US cities, that is usually city-state, for example new-york-ny. Canada-style pages such as toronto-on are also supported when the site supports them.
Map / zone targeting
Apartments.com map searches can use a bb parameter:
https://www.apartments.com/?bb=_slx7yjq0H1g4mu2nD
For map searches, the most reliable method is to copy the full URL from Apartments.com and paste it into startUrls.
You can also use:
{"mapBoundingBoxToken": "_slx7yjq0H1g4mu2nD"}
or:
{"rawQueryString": "bb=_slx7yjq0H1g4mu2nD"}
But exact copied URLs are recommended for custom drawn map areas.
Property type
Supported homeTypes values:
allapartmentshousescondostownhomes
Examples:
https://www.apartments.com/apartments/miami-fl/https://www.apartments.com/houses/miami-fl/https://www.apartments.com/condos/chicago-il/https://www.apartments.com/townhomes/austin-tx/
all means no property-type prefix:
https://www.apartments.com/miami-fl/
Bedrooms
Supported builder values:
studios12345min-2min-3
Examples:
https://www.apartments.com/new-york-ny/studios/https://www.apartments.com/new-york-ny/1-bedrooms/https://www.apartments.com/new-york-ny/2-bedrooms/https://www.apartments.com/new-york-ny/3-bedrooms/https://www.apartments.com/new-york-ny/min-2-bedrooms/
Price filters
The builder supports:
priceMax only -> under-3000priceMin only -> over-2000priceMin + priceMax -> 2000-to-3000
Examples:
https://www.apartments.com/new-york-ny/under-3000/https://www.apartments.com/new-york-ny/over-3000/https://www.apartments.com/new-york-ny/2000-to-3000/https://www.apartments.com/new-york-ny/min-2-bedrooms-under-3000/https://www.apartments.com/new-york-ny/studios-under-3000/
Pets
Use petPolicy:
pet-friendlypet-friendly-dogpet-friendly-cat
Examples:
https://www.apartments.com/new-york-ny/pet-friendly/https://www.apartments.com/new-york-ny/pet-friendly-dog/https://www.apartments.com/new-york-ny/pet-friendly-cat/
Amenities
Use amenities as raw Apartments.com slugs. Common examples:
washer-dryerparkingair-conditioningfurnishedutilities-includeddishwasherpoolfitness-centerlaundry-facilitiesbalconyhardwood-floorswheelchair-accesselevatorgatedcontrolled-accessrecent-build
Examples:
https://www.apartments.com/new-york-ny/washer-dryer/https://www.apartments.com/new-york-ny/parking/https://www.apartments.com/new-york-ny/air-conditioning/https://www.apartments.com/new-york-ny/furnished/
Specialty housing
Use specialties:
student-housingsenior-housingshort-termlow-incomemilitary-housingcorporate-housing
Examples:
https://www.apartments.com/new-york-ny/senior-housing/https://www.apartments.com/new-york-ny/short-term/https://www.apartments.com/new-york-ny/low-income/
Extra filters
If Apartments.com supports a URL slug that is not exposed as a named input, put it in extraFilterSlugs.
Example:
{"locations": ["new-york-ny"],"extraFilterSlugs": ["recent-build", "controlled-access"]}
Pagination
Search result pagination usually uses a numeric path segment:
https://www.apartments.com/new-york-ny/2/https://www.apartments.com/new-york-ny/2-bedrooms/2/https://www.apartments.com/houses/miami-fl/2/
Input reference
startUrls
Array of Apartments.com URLs. This has highest priority. If provided, the Actor uses these URLs instead of generating URLs from locations.
Use this for:
- exact city searches
- exact filter searches
- copied map searches
- custom Apartments.com searches
- property detail pages
locations
Array of city or area slugs.
Examples:
new-york-nymiami-flaustin-txtoronto-on
You can also type human text like New York, NY; the Actor converts it to new-york-ny.
homeTypes
Array. Use one or more:
allapartmentshousescondostownhomes
bedrooms
Array. Empty means any bedrooms.
Examples:
studios123min-2
priceMin and priceMax
Optional integers.
Examples:
{ "priceMax": 3000 }{ "priceMin": 2000 }{ "priceMin": 2000, "priceMax": 3000 }
petPolicy
Optional string:
pet-friendlypet-friendly-dogpet-friendly-cat
amenities
Array of URL slugs such as washer-dryer, parking, pool, furnished.
specialties
Array of URL slugs such as senior-housing, short-term, low-income.
extraFilterSlugs
Array of any additional URL segments to append.
rawQueryString
Optional raw query string without ?.
Example:
bb=_slx7yjq0H1g4mu2nD
mapBoundingBoxToken
Optional value for the bb parameter only.
Example:
_slx7yjq0H1g4mu2nD
maxItems
Maximum listings to save. Use 0 for no explicit limit.
maxPages
Maximum search result pages to visit per search URL.
includeDetails
When true, the Actor opens each detail page and extracts richer data. This is slower but better.
includeImages
Extracts image URLs from detail pages.
includeVirtualTours
Extracts visible virtual tour, video, Matterport, iframe, YouTube, and Vimeo links.
saveHtml
Saves detail page HTML snapshots in the default key-value store. Useful for debugging or selector updates.
maxConcurrency
Default is 2. Keep it low without proxies.
requestHandlerTimeoutSecs
Default is 75 seconds.
maxRequestRetries
Default is 2 retries.
keywords
Optional post-filter. The Actor first extracts data, then checks whether the extracted text contains your keywords.
This is useful for filtering results such as:
garageno feedog friendlywasher dryernear subway
For native Apartments.com keyword searches, use the Apartments.com website, copy the resulting URL, and paste it into startUrls.
keywordMatchMode
Use one of:
anyallphrase
any: save listing if at least one keyword matchesall: save listing only if every keyword matchesphrase: same as all, but intended for exact phrases such aswasher dryer
proxyConfiguration
This input is intentionally last.
Default:
{"useApifyProxy": false}
So by default the Actor uses no proxies.
Enable Apify Proxy or custom proxies only if Apartments.com blocks or throttles the run. When using no proxy, keep maxConcurrency low.
Output example
{"id": "abc1234","url": "https://www.apartments.com/example-property-city-st/abc1234/","propertyName": "Example Apartments","address": "123 Main St, New York, NY 10001","phone": "(555) 123-4567","rent": "$2,500 - $3,800","beds": "1-2 Beds","baths": "1-2 Baths","sqft": "650 - 1,100 Sq Ft","coordinates": {"latitude": 40.7128,"longitude": -74.006},"description": "Property description text...","amenities": ["Washer & Dryer", "Parking", "Fitness Center"],"images": [{ "url": "https://...jpg", "alt": "Example Apartments" }],"virtualTours": [],"source": {"type": "detail","searchUrl": "https://www.apartments.com/new-york-ny/","searchPage": 1,"startUrl": null},"scrapedAt": "2026-05-20T00:00:00.000Z"}
How to run on Apify
Upload ZIP in Apify Console
- Open Apify Console.
- Create a new Actor.
- Choose upload from ZIP or import source files.
- Upload this package.
- Build the Actor.
- Open the Input tab and set your URLs or builder fields.
- Run it.
Run locally
npm installnpm start
With a local input file, use Apify CLI storage or set the default input in local storage.
Files included
.actor/actor.jsonDockerfileINPUT_SCHEMA.jsonREADME.mdpackage.jsonsample-input.jsonsrc/main.jssrc/url-builder.jssrc/extractors.jssrc/keyword-filter.jstest/url-builder.test.jstest/keyword-filter.test.js
Validation included
The package includes simple unit tests for:
- URL generation
- location slug normalization
- bedroom and price filters
- pagination URL generation
- property URL detection
- keyword filtering
Run:
npm testnpm run check
Practical recipes
Scrape New York apartments under 3000 USD
{"startUrls": [],"locations": ["new-york-ny"],"homeTypes": ["all"],"priceMax": 3000,"maxItems": 100,"maxPages": 3,"proxyConfiguration": { "useApifyProxy": false }}
Scrape Miami houses, pet friendly
{"startUrls": [],"locations": ["miami-fl"],"homeTypes": ["houses"],"petPolicy": "pet-friendly","maxItems": 100,"maxPages": 3,"proxyConfiguration": { "useApifyProxy": false }}
Scrape Toronto rentals
{"startUrls": [],"locations": ["toronto-on"],"homeTypes": ["all"],"maxItems": 100,"maxPages": 3,"proxyConfiguration": { "useApifyProxy": false }}
Scrape an exact map area
{"startUrls": [{ "url": "https://www.apartments.com/?bb=_slx7yjq0H1g4mu2nD" }],"maxItems": 100,"maxPages": 3,"includeDetails": true,"proxyConfiguration": { "useApifyProxy": false }}
Use a custom URL from Apartments.com filters
{"startUrls": [{ "url": "https://www.apartments.com/new-york-ny/2-bedrooms/washer-dryer/" }],"maxItems": 100,"maxPages": 3,"includeDetails": true,"proxyConfiguration": { "useApifyProxy": false }}
Troubleshooting
The run returns few or no results
Try these steps:
- Open the URL manually in a browser to verify it has results.
- Paste the exact Apartments.com URL in
startUrlsinstead of using builder fields. - Increase
maxPages. - Disable
keywordstemporarily. - Enable proxies if the page is blocked.
The site blocks the run
Apartments.com may apply anti-bot or security checks. Try:
- lower
maxConcurrency - enable Apify Proxy
- use residential proxies if your Apify plan allows it
- reduce
maxPages - use fewer start URLs per run
A filter is missing
Use Apartments.com in your browser, select the filter, copy the resulting URL, and paste it into startUrls.
Or copy only the filter slug into extraFilterSlugs.
Notes for maintainers
- List extraction is intentionally generic and avoids relying on one fragile CSS class.
- Detail extraction combines JSON-LD, meta tags, visible text sections, image tags, and links.
- The Actor stores a
RUN-SUMMARYobject in the default key-value store after each run. - If Apartments.com changes its layout, enable
saveHtmland inspect the saved HTML snapshots.
Keywords
apartments.com scraper, apartments scraper, apify apartments actor, apartments.com apify actor, apartments.com crawler, apartment listings scraper, rental listings scraper, real estate scraper, property scraper, apartments.com rentals, apartments.com search scraper, apartments.com detail scraper, apartments.com map scraper, apartments.com city scraper, apartments.com houses scraper, apartments.com condos scraper, apartments.com townhomes scraper, apartments.com pet friendly scraper, apartments.com washer dryer scraper, apartments.com rent data, apartments.com listings data, apartments.com rental data, apartments.com url scraper, apartments.com playwright scraper, apartments.com crawlee scraper