StreetEasy Scraper (Cheap) avatar

StreetEasy Scraper (Cheap)

Pricing

from $2.99 / 1,000 results

Go to Apify Store
StreetEasy Scraper (Cheap)

StreetEasy Scraper (Cheap)

StreetEasy scraper that collects NYC rental and sale listings with filters for price, bedrooms, building type, neighborhood, and status, returning one clean row per property.

Pricing

from $2.99 / 1,000 results

Rating

0.0

(0)

Developer

Data API

Data API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

StreetEasy Listings Scraper

StreetEasy Listings Scraper

Browsing StreetEasy by hand is fine for finding one apartment. It falls apart the moment you need a few hundred listings in a spreadsheet. The site paginates, hides numbers behind cards, and gives you nothing to export. This scraper does the clicking for you: hand it a StreetEasy search URL or a neighborhood slug, and it walks the results page by page and hands back every rental and sale listing as a clean row, with address, price, bedrooms, square footage, status, and coordinates all in their own columns.

What you get

Each listing comes back as one row with the same shape every time, so columns line up when you load the data into a sheet or database. The fields cover four things:

  • Where it isstreetAddress, unitLabel, neighborhoodName, postalCode, stateCode, and coordinates for mapping
  • What it costslistPrice, effectiveRent, priceChangeDelta, freeMonths, and leaseMonths
  • What it isbedrooms, fullBaths, halfBaths, squareFeet, propertyClass, isFurnished, newConstruction, and availableDate
  • The listing itselflistingRef, listingStatus, listingSource, listedBy, photoList, has3dTour, hasVideo, nextOpenHouse, and the listingPath back to StreetEasy

Quick start

  1. Click Try for free to open the input form.
  2. Either paste a StreetEasy search link into Search page URL, or set an Area slug like brooklyn and tune the filters (price, bedrooms, property kind).
  3. Set a Results cap to control how many listings you pull, and pick a proxy.
  4. Hit Start, then download the rows as JSON, CSV, Excel, or XML once the run wraps up.

How it works

Use cases

  • Rental market tracking — watch asking rents and net effective rents shift across a neighborhood week over week
  • Buy-side research — pull every sale listing in a borough and sort by price per square foot
  • Lead lists for brokers — find by-owner rentals or new developments the moment they post
  • Investment screening — combine listPrice, squareFeet, and coordinates to rank deals across NYC
  • Relocation planning — gather furnished units with a given move-in date in one pass
  • Data enrichment — attach addresses and coordinates to listings you already track elsewhere

Input

FieldTypeRequiredDescription
searchPageUrlstringOne of searchPageUrl or areaSlugA ready-made StreetEasy search link. When set, every filter below is ignored. Example https://streeteasy.com/for-rent/brooklyn/price:1500-3500|beds:1-2.
dealTypestringNoCollect rentals or homes for sale: for-rent or for-sale. Default for-rent.
areaSlugstringOne of searchPageUrl or areaSlugNeighborhood or borough slug to search, such as brooklyn or soho. Default nyc.
postalCodestringNoLimit results to one NYC ZIP, e.g. 11211.
priceFloorintegerNoSmallest price in USD to include.
priceCeilingintegerNoLargest price in USD to include.
bedroomsMinstringNoLowest bedroom count to match; 0 means studio.
bedroomsMaxstringNoHighest bedroom count to match; leave on Any for no upper limit.
bathroomsMinstringNoLowest bathroom count to match.
propertyKindsarray of stringsNoBuilding codes to keep: R rental, X house, D1 condo, M multifamily, P1 co-op.
petFriendlyOnlybooleanNoKeep only pet-friendly listings. Default false.
listingStatestringNoMarket state filter: active, rented, listed, closed, or pending. Default active.
ownerListedOnlybooleanNoKeep only by-owner rentals with no broker fee. Affects for-rent only. Default false.
orderBystringNoSort order for results. Default se_score (Recommended).
resultsLimitintegerNoHow many listings to gather before stopping. Default 50; ceiling is 1,400.
proxyConfigurationobjectNoProxies for requests. Apify proxy is on by default; switch to Residential if requests get blocked.

Example input

{
"searchPageUrl": "https://streeteasy.com/for-rent/brooklyn/price:1500-3500|beds:1-2?sort_by=listed_desc",
"dealType": "for-rent",
"areaSlug": "brooklyn",
"postalCode": "11211",
"priceFloor": 1500,
"priceCeiling": 4500,
"bedroomsMin": "1",
"bedroomsMax": "2",
"propertyKinds": ["D1", "P1"],
"petFriendlyOnly": true,
"listingState": "active",
"orderBy": "listed_desc",
"resultsLimit": 50,
"proxyConfiguration": {
"useApifyProxy": true
}
}

Output

Each listing becomes one row. Values that StreetEasy does not publish for a given listing come back as null, so the dataset stays rectangular and predictable.

Example output

{
"listingRef": "4239871",
"neighborhoodName": "Williamsburg",
"availableDate": "2026-08-01",
"bedrooms": 2,
"propertyClass": "RENTAL",
"fullBaths": 1,
"isFurnished": false,
"coordinates": { "latitude": 40.7128, "longitude": -73.9571 },
"halfBaths": 0,
"has3dTour": true,
"hasVideo": false,
"priceChangeDelta": null,
"newConstruction": false,
"leaseMonths": 12,
"squareFeet": 780,
"freeMonths": 1,
"effectiveRent": 3208.33,
"offMarketDate": null,
"photoList": [
{ "url": "https://photos.zillowstatic.com/fp/example1.jpg", "key": "example1", "description": "Living room" }
],
"listPrice": 3500,
"relloExpressFlag": null,
"listingSlug": "2-bedroom-apartments-williamsburg",
"listedBy": "Prime Brooklyn Realty",
"listingSource": "PARTNER",
"stateCode": "NY",
"listingStatus": "ACTIVE",
"streetAddress": "215 North 8th Street",
"nextOpenHouse": null,
"unitLabel": "#4B",
"listingPath": "/building/215-north-8th-street-brooklyn/4b",
"postalCode": "11211",
"listingTier": null,
"unitId": "#4B"
}

Output fields

FieldTypeDescription
listingRefstringStreetEasy's own listing identifier
neighborhoodNamestringNeighborhood or area name
availableDatestringMove-in date as YYYY-MM-DD
bedroomsintegerBedroom count, where 0 is a studio
propertyClassstringBuilding category such as RENTAL, CONDO, or COOP
fullBathsintegerNumber of full bathrooms
isFurnishedbooleanTrue when the unit comes furnished
coordinatesobjectMap location with latitude and longitude
halfBathsintegerNumber of half bathrooms
has3dTourbooleanTrue when a 3D walkthrough is attached
hasVideobooleanTrue when the listing has video
priceChangeDeltanumberFlagged price movement, or null
newConstructionbooleanTrue for a new development
leaseMonthsintegerLease length in months, or null
squareFeetintegerIndoor living area in square feet
freeMonthsintegerFree rent months offered, or null
effectiveRentnumberMonthly rent after concessions are spread out
offMarketDatestringDate the listing left the market, or null
photoListarrayPhoto objects, each with url, key, and description
listPriceintegerSale price or monthly rent in USD
relloExpressFlagstringRello Express marker, or null
listingSlugstringURL-friendly slug, or null
listedBystringListing broker or management company
listingSourcestringOrigin of the listing, e.g. PARTNER or OWNER
stateCodestringTwo-letter state code, e.g. NY
listingStatusstringCurrent status, e.g. ACTIVE, RENTED, PENDING
streetAddressstringStreet address of the property
nextOpenHouseobjectUpcoming open house details, or null
unitLabelstringUnit number as shown, e.g. #4B
listingPathstringRelative path to the listing on StreetEasy
postalCodestringFive-digit ZIP code
listingTierstringTier classification, or null
unitIdstringInternal unit identifier, e.g. #4B

Rows that record a fetch failure carry isError, errorMessage, and pageNumber instead of listing fields.

Tips for best results

  • Test with a small cap first. Set resultsLimit to 20–30 and confirm the columns match your pipeline before pulling the full set.
  • A search URL beats filters for exact matches. If you already have the search dialed in on StreetEasy, paste the link into searchPageUrl and skip the filter fields.
  • Switch to Residential proxies if results thin out. StreetEasy can rate-limit datacenter IPs; residential clears most blocks.
  • Remember bedrooms 0 means studio. Set bedroomsMin and bedroomsMax to 0 to pull studios only.
  • ownerListedOnly works on rentals. Combine it with dealType set to for-rent to surface no-fee listings.
  • Lease incentives live in their own fields. Compare listPrice against effectiveRent and freeMonths to see the real cost of a rental.

How can I use StreetEasy listing data?

How can I use the StreetEasy Listings Scraper to track NYC rent prices? Set an areaSlug like brooklyn, choose for-rent, and run the scraper on a schedule. Each run returns listPrice, effectiveRent, and freeMonths for every active listing, so you can chart asking rents by neighborhood over time and catch the moment concessions start creeping in.

How can I export StreetEasy sale listings to a spreadsheet? Switch dealType to for-sale, set your priceFloor and priceCeiling, and start the run. Every listing comes back as a row with listPrice, squareFeet, bedrooms, and streetAddress, ready to download as CSV or Excel and sort by price per square foot.

How can I scrape StreetEasy listings for a single ZIP code? Fill in postalCode (for example 11211) along with the area, and the scraper limits results to that ZIP. Pair it with propertyKinds to keep only condos or co-ops, then map the rows using the coordinates field.

How can I find no-fee or by-owner rentals on StreetEasy? Turn on ownerListedOnly with dealType set to for-rent. The scraper returns only rentals posted directly by owners with no broker fee, each row carrying the address, price, bedroom count, and a link back to the listing.

Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the legality of web scraping.

Support

Questions, feature requests, or a field you'd like added? Reach out at data.apify@proton.me and we'll get back to you.