Apartments.com Rentals Scraper
Pricing
from $0.60 / 1,000 rental properties
Apartments.com Rentals Scraper
Export public Apartments.com rental listings with prices, addresses, amenities, availability, images, coordinates, and contact details.
Pricing
from $0.60 / 1,000 rental properties
Rating
0.0
(0)
Developer
Fetch Cat
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
Export public Apartments.com rental properties by city, ZIP code, search URL, or individual property URL. Get stable listing IDs, rent ranges, addresses, availability, amenities, coordinates, contact details, images, and source links as JSON, CSV, Excel, or API output.
Use the Apartments.com scraper for rental-market research, property-management analysis, relocation workflows, and public listing enrichment. Available fields vary by page, and site restrictions can prevent a run from returning records. No login is required.
Example input
{"startUrls": [{"url": "https://www.apartments.com/apartments/new-york-ny/?bb="}],"maxItems": 25,"maxPages": 2,"includeDetails": true,"includeImages": true}
You can instead use {"location":"Chicago IL","maxItems":25} or {"zipCode":"10001","maxItems":25}.
Ready-to-run examples
Choose a bounded public example and inspect its saved input before running:
- Export New York apartment rentals — A search-URL rental sample.
- Monitor Chicago apartment rentals — A location-input snapshot; comparing snapshots is your own workflow.
- Enrich apartment property details — Expanded public fields for a property URL.
Example output
Illustrative shape only, not a current listing or availability quote. Fields vary by property; contact details and images are omitted here.
{"listingId": "1j2c5h6","url": "https://www.apartments.com/10-halletts-point-astoria-ny/1j2c5h6/","sourceUrl": "https://www.apartments.com/apartments/new-york-ny/?bb=","propertyName": "10 Halletts Point","address": "10, 20, 30 Halletts Pt, Astoria, NY 11102","city": "Astoria","state": "NY","zipCode": "11102","neighborhood": null,"latitude": 40.7766,"longitude": -73.93585,"priceText": "Studio $3,195; 2 Beds $4,388+","minPrice": 3195,"maxPrice": 4388,"currency": "USD","bedrooms": ["Studio", "2 Beds"],"bathrooms": [],"squareFeet": [],"propertyType": "Apartment Community","availabilityText": null,"amenities": ["Fitness Center", "Pool"],"rating": null,"reviewCount": null,"scores": {},"phone": null,"contactName": null,"imageUrls": [],"description": "Public property description...","floorPlans": [{"name":"2 Bedroom / 2 Bathroom","unitNumber":"1203","bedrooms":"2","bathrooms":"2","unitRent":"$5,074","squareFeet":null,"availability":"Now","moveInSpecialText":"Unit Special"}],"moveInSpecialText": "Unit Special","scrapedAt": "2026-08-03T17:45:00.000Z","warnings": []}
What data can you extract?
| Field | Description |
|---|---|
listingId | Stable public Apartments.com listing identity |
url, sourceUrl | Canonical property URL and originating input/page |
propertyName, address | Property name and full displayed address |
city, state, zipCode | Location components when the displayed address can be separated |
neighborhood | Reserved field; currently always null |
latitude, longitude | Public map coordinates when available |
priceText | Original displayed rent/range text |
minPrice, maxPrice, currency | Safely normalized rent range |
bedrooms, bathrooms, squareFeet | Public unit range values |
propertyType, availabilityText | Property classification and availability |
amenities | Publicly listed amenities |
rating, reviewCount | Rating value and review count when available; not review text |
scores | Reserved field; currently always {} |
phone, contactName | Public contact fields shown on the property page |
imageUrls | Public property image URLs |
description | Public property description |
floorPlans | Public floor-plan/unit rows with beds, baths, rent, square footage, availability, and any displayed unit special |
moveInSpecialText | Public property or unit move-in-special text when displayed |
scrapedAt, warnings | Collection timestamp and per-row enrichment notices |
Input settings
| Setting | JSON key | Description |
|---|---|---|
| Apartments.com URLs | startUrls | Search URLs with your filters or individual property URLs |
| Location | location | City/state search, such as Chicago IL |
| ZIP code | zipCode | Five-digit US ZIP search |
| Maximum properties | maxItems | Global limit; form default 20, omitted API key uses 25 |
| Maximum pages | maxPages | Search-page limit per input; default 5 |
| Enrich details | includeDetails | Visit property pages for expanded public fields |
| Include images | includeImages | Return publicly displayed image URLs |
| Proxy | proxyConfiguration | Optional advanced connection settings; not required by default |
Example inputs
Fast market snapshot
{"location":"Chicago IL","maxItems":50,"maxPages":2,"includeDetails":false}
Detailed property record
{"startUrls":[{"url":"https://www.apartments.com/10-halletts-point-astoria-ny/1j2c5h6/"}],"maxItems":1,"includeDetails":true}
Filtered monitoring run
Paste a filtered Apartments.com results URL into startUrls and set a conservative maxItems. Compare exported snapshots by listingId in your own workflow; this Actor does not generate change alerts.
Who is it for?
This Actor is useful for real estate analysts, rental-market researchers, property managers, relocation teams, and developers building rental search or monitoring workflows.
Pricing
The Actor charges a one-time Start (start) event after input validation and a Rental property (item) event for each unique property saved. Duplicates and blocked requests that produce no saved property do not trigger a property charge. A saved property with a detail-enrichment warning still counts as a saved property. See the live Pricing tab for current rates and account-tier discounts.
Tips and limits
- Start with 10–25 properties, inspect output, then increase the limit.
- Use a pasted search URL when you need Apartments.com filters preserved exactly.
- Disable
includeDetailsfor a faster search snapshot; enable it for contacts, coordinates, amenities, floor-plan/unit availability, specials, and richer media. - Broad searches may be capped or reordered by Apartments.com. The Actor reports what the public pages expose and does not claim exhaustive market coverage.
- Optional fields remain empty instead of being guessed. A row warning records detail-page failures while preserving useful search data.
- Results follow the source-page order; there is no Actor-side sorting. Price ranges are displayed amounts, not a guarantee of total monthly fees.
- A blocked search page or an unexpectedly empty first page can fail the run. A start charge may still apply when no property is saved. Check the run status and any row warnings before using the results.
API usage
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/apartments-com-rentals-scraper').call({location: 'New York NY', maxItems: 25, includeDetails: true});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("fetch_cat/apartments-com-rentals-scraper").call(run_input={"zipCode": "10001", "maxItems": 25, "includeDetails": True})print(client.dataset(run["defaultDatasetId"]).list_items().items)
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~apartments-com-rentals-scraper/run-sync-get-dataset-items' \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"location":"Chicago IL","maxItems":25}'
MCP and AI agents
Use the official Apify MCP Server, not a separate server implemented by this Actor. The focused configuration exposes this Actor; the general https://mcp.apify.com server also supports Actor discovery. Give agents an explicit maxItems limit and ask them to inspect run status, dataset rows, nullable fields, and warnings before summarizing results.
For Claude Code:
$claude mcp add --transport http apify 'https://mcp.apify.com?tools=fetch_cat/apartments-com-rentals-scraper'
Or add the HTTP server to your MCP client configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=fetch_cat/apartments-com-rentals-scraper"}}}
Example prompts:
- “Export 20 public Apartments.com rentals in ZIP 10001 and summarize the rent range.”
- “Find Chicago rentals, return their addresses and amenities, and group them by price range.”
FAQ
Can I export CSV or Excel?
Yes. Every run writes an Apify dataset that can be downloaded as JSON, CSV, Excel, XML, or RSS and queried over the dataset API.
Does it require a proxy?
No proxy is configured by default. Optional Apify Proxy settings are available for buyers who need them in their own environment.
Why are some fields empty?
Apartments.com does not show every field for every property. Search-only runs return fewer fields than enriched runs. neighborhood and scores are currently unpopulated placeholders. Other unavailable fields are null or empty rather than guessed.
Is this an Apartments.com API alternative?
It exports structured records from public pages through Apify's API. It is not an official Apartments.com API, and access restrictions or site changes can affect results.
Can I scrape a single property?
Yes. Add its public Apartments.com property URL to startUrls and set maxItems to 1.
Related actors
- Idealista Market Intel Scraper
- Zillow Property Listings Scraper
- Redfin Property Listings Scraper
- Google Maps Places Scraper
- Website Contact Finder
Support and feedback
For custom additions or integrations, email hello@fetchcat.dev.
Found an error or have a feature request? Open an issue from the Actor page with the run ID, a non-sensitive input example and what you expected. Do not include credentials or private data.
Made with care for curious people, AI agents and the possibilities in data. ♥