Apartments Scraper API avatar

Apartments Scraper API

Pricing

from $1.20 / 1,000 results

Go to Apify Store
Apartments Scraper API

Apartments Scraper API

Extract apartment rental listings, property prices, locations, bedrooms, bathrooms, amenities, photos, and listing URLs from Apartments.com. Ideal for real estate data extraction, rental market research, price monitoring, competitor analysis, and property insights.

Pricing

from $1.20 / 1,000 results

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Categories

Share

What does Apartments.com Scraper do?

Apartments.com Scraper collects rental listings from Apartments.com by search URL or location. Enter a city, neighborhood, or ZIP code, or paste an Apartments.com search or property URL, and the Actor returns property names, addresses, rent ranges, amenities, photos, and leasing contact details. Results are saved to an Apify dataset that you can download or connect to another workflow. You can run the Actor on a schedule.

The Actor handles normal Apartments.com search pages, filtered pages, page numbers, and individual property pages. It stops when your result limit is reached, when the last page is reached, or when your page limit is reached.

Why use Apartments.com Scraper?

  • Compare asking rents and amenities across neighborhoods without copying listings by hand.
  • Build a shortlist with addresses, prices, photos, and phone numbers in one dataset.
  • Monitor the same location on a schedule and compare new listings with earlier runs.
  • Collect property names, phone numbers, and addresses for leasing outreach and market mapping.
  • Export results as JSON, CSV, Excel, or XML, or send them to Google Sheets, webhooks, Make, Zapier, or your own system.

What data can you extract from Apartments.com?

FieldDescription
nameApartment community or property name
urlDirect Apartments.com property URL
listing_keyApartments.com listing identifier
phoneLeasing office phone number
descriptionProperty description when it differs from the name
street_addressStreet address
cityCity
stateState or region code
zip_codeZIP code
countryCountry code
latitudeLatitude coordinate
longitudeLongitude coordinate
property_typeProperty type reported by the listing
price_minLowest advertised monthly rent
price_maxHighest advertised monthly rent
currencyRent currency code
availabilityAvailability status
amenitiesAmenities merged from the listing and media labels
image_urlPrimary property photo
image_urlsAll property photo URLs
sourceSource website
search_urlSearch page where the listing was found
pageSearch results page number
positionPosition on the search results page
scraped_atISO timestamp for the collection

Fields that a listing does not publish are left out of that record instead of being saved as null values. Each row is limited to the fields that listing actually publishes, so not every record has every field.

How to use Apartments.com Scraper

  1. Open the Actor on Apify Store.
  2. Enter a location, or paste an Apartments.com search or property URL.
  3. Set the result limit and optional filters.
  4. Keep the default residential proxy setting for reliable access.
  5. Run the Actor.
  6. Download the dataset or connect it to your workflow.

Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlStringNo-Apartments.com search or property URL. Takes precedence over location.
locationStringNoBrooklyn, NYCity and state, neighborhood, or ZIP code, for example Brooklyn, NY, Williamsburg, Brooklyn, NY, or 11201.
filtersObjectNo{}Optional filters for location searches.
filters.bedroomsIntegerNo-0 for studio, or 1 to 5 bedrooms. Leave empty for any.
filters.minPriceIntegerNo-Minimum monthly rent in US dollars.
filters.maxPriceIntegerNo-Maximum monthly rent in US dollars.
filters.propertyTypeStringNoapartmentsOne of apartments, condos, houses, or townhomes.
results_wantedIntegerNo20Maximum number of listings to save.
max_pagesIntegerNo10Maximum number of search result pages to visit.
proxyConfigurationObjectNoApify ResidentialProxy settings. Residential proxies are recommended.

Search mode priority

startUrl wins when both startUrl and location are supplied. The location value is ignored in that case. When startUrl is empty, the Actor builds a search from location and filters.

filters apply to location searches. A full startUrl keeps the filters that are already in the URL. For example, a URL for one-bedroom apartments keeps that bedroom filter even if filters.bedrooms is empty.

Output Data

FieldTypeDescription
nameStringProperty name
urlStringProperty URL
listing_keyStringListing identifier
phoneStringLeasing office phone
descriptionStringProperty description
street_addressStringStreet address
cityStringCity
stateStringState code
zip_codeStringZIP code
countryStringCountry code
latitudeNumberLatitude
longitudeNumberLongitude
property_typeStringProperty type
price_minNumberLowest monthly rent
price_maxNumberHighest monthly rent
currencyStringCurrency code
availabilityStringAvailability status
amenitiesArrayAmenities from the listing and media labels
image_urlStringPrimary photo URL
image_urlsArrayAll property photo URLs
sourceStringSource website
search_urlStringSearch page URL
pageIntegerSearch page number
positionIntegerPosition on the page
scraped_atStringISO timestamp

Usage Examples

Search by location

Collect the first 50 listings in Brooklyn across two result pages.

{
"location": "Brooklyn, NY",
"results_wanted": 50,
"max_pages": 2
}

Search by ZIP code

Collect listings in ZIP code 11201.

{
"location": "11201",
"results_wanted": 20,
"max_pages": 1
}

Start from an Apartments.com URL

Use a filtered or paginated search URL. This example starts on page 2 of the one-bedroom results.

{
"startUrl": "https://www.apartments.com/brooklyn-ny/1-bedrooms/2/",
"results_wanted": 40,
"max_pages": 1
}

Apply rental filters

Search two-bedroom condos in Austin with rent from $1,500 to $3,000.

{
"location": "Austin, TX",
"filters": {
"bedrooms": 2,
"minPrice": 1500,
"maxPrice": 3000,
"propertyType": "condos"
},
"results_wanted": 30,
"max_pages": 2
}

Collect one property

Paste a property URL to return that property as a single record.

{
"startUrl": "https://www.apartments.com/the-fleet-brooklyn-ny/fzq0ycv/",
"results_wanted": 1
}

Sample Output

{
"name": "The Vitagraph",
"url": "https://www.apartments.com/the-vitagraph-brooklyn-ny/21jytlc/",
"listing_key": "21jytlc",
"phone": "929-552-3637",
"description": "The Vitagraph Apartments",
"street_address": "1277 E 14th St",
"city": "Brooklyn",
"state": "NY",
"zip_code": "11230",
"country": "US",
"latitude": 40.61882,
"longitude": -73.96065,
"property_type": "Apartment Complex",
"price_min": 4175,
"price_max": 4490,
"currency": "USD",
"availability": "Available",
"amenities": [
"Pets Allowed",
"Fitness Center",
"Dishwasher",
"Refrigerator",
"Kitchen",
"In Unit Washer & Dryer",
"Lobby"
],
"image_url": "https://images1.apartments.com/i2/yWFnyY6I0FpRzDFuq1uyXFVvqmgENPZpJpZL7BA-cag/117/the-vitagraph-brooklyn-ny-interior-photo.jpg",
"image_urls": [
"https://images1.apartments.com/i2/yWFnyY6I0FpRzDFuq1uyXFVvqmgENPZpJpZL7BA-cag/117/the-vitagraph-brooklyn-ny-interior-photo.jpg",
"https://images1.apartments.com/i2/5e_33OHpSbMTaKe2GkJQ28oam01hsfWc35xmdlU2glM/117/the-vitagraph-brooklyn-ny-interior-photo.jpg",
"https://images1.apartments.com/i2/7jKn_p0YrCkAvpgJNpk5Zd8GqBqFvdR1UnlA8vvyp84/117/the-vitagraph-brooklyn-ny-interior-photo.jpg"
],
"source": "apartments.com",
"search_url": "https://www.apartments.com/brooklyn-ny/",
"page": 1,
"position": 2,
"scraped_at": "2026-10-24T08:19:31.603Z"
}

The sample shows three of the 95 photo URLs returned for this property.

Tips for Best Results

  • Use startUrl when you want an exact search, filter combination, or page order from Apartments.com.
  • Use location when you want the Actor to build the search for you.
  • Keep results_wanted small during your first run, then increase it after you confirm the output.
  • filters.bedrooms and filters.propertyType are applied in the search URL. filters.minPrice and filters.maxPrice are applied to the collected listings.
  • A price filter keeps a listing when its advertised rent range overlaps your range. A property with prices from $2,995 to $3,195 can still appear in a search with a $3,000 maximum.
  • Residential proxies are recommended. Data-center requests are more likely to be blocked. Leave the proxy country empty to let the Actor rotate locations when a request is challenged.
  • The Actor reuses a working proxy session and its cookies across pages, so larger runs are less likely to be interrupted by blocks.
  • Property photos are collected for every listing, so image_urls can contain dozens of URLs.
  • Amenities are merged from the listing details and the property media labels without opening detail pages. If the source does not publish any amenity data, the amenities field is omitted.
  • Some listings do not publish rent or a description. Those fields are omitted from the record.
  • If a run returns fewer records than requested, raise max_pages or widen the filters.

Integrations

  • Send listings to Google Sheets for review and sharing.
  • Trigger a downstream workflow with webhooks after each run.
  • Connect datasets to Make or Zapier automations.
  • Pull dataset items into your own application through the Apify API.
  • Download results as CSV, Excel, JSON, or XML.

Frequently Asked Questions

Can I export the data to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML, and other supported formats.

Can I run this Actor on a schedule?

Yes. Schedule the Actor in Apify Console to refresh rental data daily, weekly, or at another interval.

Can I search by ZIP code?

Yes. Enter a five-digit ZIP code in location. The Actor resolves the city and state, then searches that ZIP code.

Can I scrape a single property page?

Yes. Paste the property URL in startUrl. The Actor returns one record with the property details and available fields.

Why are some rent values missing?

Some listings do not publish rent on Apartments.com. When a listing has no rent data, the rent fields are omitted instead of being saved as null.

Why do I get fewer results than I requested?

The location may have fewer matching listings after your filters, or the page limit may be too low. Increase max_pages or widen the filters. Listings without published rent are excluded when a price filter is active.

Does a URL or a location win when both are provided?

The URL wins. The Actor ignores location and filters in that case and follows the URL as supplied.

Is this Actor suitable for non-technical users?

Yes. You can run it from Apify Console with the form inputs and download the dataset without writing code.

Scraping public web data can be legal, but you are responsible for complying with applicable laws, website terms, and privacy rules. Use the data responsibly and do not overload the site.

Support

For issues, feature requests, or custom Actor work, use the Issues tab on the Actor page or contact the developer through Apify.

This Actor is designed for legitimate data collection from publicly available sources. Users are responsible for using the data responsibly and complying with applicable laws and website terms.