StreetEasy Scraper - NYC Rentals & Sales avatar

StreetEasy Scraper - NYC Rentals & Sales

Pricing

from $1.00 / 1,000 listings

Go to Apify Store
StreetEasy Scraper - NYC Rentals & Sales

StreetEasy Scraper - NYC Rentals & Sales

[💰 $1.0 / 1K] Extract NYC rental and sale listings from StreetEasy across all five boroughs and any neighborhood. Get prices, beds, baths, square footage, GPS coordinates, amenities, building records, full price history and agent contacts. Export to JSON, CSV or Excel.

Pricing

from $1.00 / 1,000 listings

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Pull New York City rental and sale listings from StreetEasy at scale — 75 fields per listing, GPS coordinates, full price history, building records, and named agent contacts, across all five boroughs and down to individual neighborhoods. Built for brokerages, proptech teams, and housing-market analysts who need current New York inventory in a spreadsheet or a database without building and maintaining a scraper of their own.

Why This Scraper?

  • Rentals and sales in one run — one listingType setting collects both from the same location, and every row is stamped rental or sale. Sale rows add maintenance, monthly taxes, estimated monthly payment, max financing and land-lease status; rental rows add no-fee status, availability date, free months, lease term and itemised rental fees.
  • 75 fields per listing in six groups — 25 core, 14 price and value, 13 location, 10 dates and identifiers, 7 contact, 6 media. No second record type to join: everything lands on one flat row.
  • All five boroughs, plus neighborhood-level searches — Manhattan, Brooklyn, Queens, the Bronx and Staten Island, or a named neighborhood like Astoria, Williamsburg, Park Slope or the Upper East Side, each resolved against StreetEasy's own area list rather than guessed from a keyword.
  • GPS coordinates on 554 of the 555 rows checked across five boroughs, at full published precision (40.62323583, -74.00115634) — ready for mapping, distance joins and territory analysis without geocoding a single address.
  • Named agent contacts — agent name, email, direct phone, alternate phone, brokerage and profile link. Across a 600-listing sample spanning three boroughs and both categories, name and email came back on 100% of listings and a phone number on at least 92%.
  • Complete price history, not just today's ask — every listing, delisting, re-pricing and recorded sale with its date and amount, on 100% of enriched rows. The sale example below carries 12 of them, reaching back to a $125,000 purchase in 1996 (four shown).
  • Building records attached to every unit — year built, pre-war flag, floor count, unit count, new-development flag, building name and building page link, plus every named amenity and outdoor space. The Battery Park condo below resolves to a 27-floor, 238-unit 1985 building without a second lookup.
  • Nearby subway stations and zoned schools with walking distance in miles, line names and route letters — subways on 83–86% and schools on 92–94% of enriched rows, measured on live runs in Queens and the Bronx.
  • A withheld number never arrives as 0 — StreetEasy publishes a literal zero for undisclosed square footage (47% of a 600-listing sample), maintenance, monthly taxes, max financing and price change. Those become null here, so a 0 sq ft apartment never drags down your averages.

Use Cases

Market Research & Analytics

  • Track asking rents and sale prices by neighborhood, bedroom count and property type over time
  • Measure days on market and price-cut frequency from daysOnMarket and priceHistory
  • Compare pre-war and new-development inventory using the building flags on every row
  • Build no-fee rental indices from isNoFee, freeMonths and rentalFees

Brokerage & Agent Operations

  • Monitor competing listings in your farm area and catch every re-pricing
  • Pull comps for a CMA — each enriched row already carries five StreetEasy comparables
  • Audit your own firm's live inventory for missing photos, floor plans or descriptions
  • Collect open-house schedules across a whole neighborhood in one export

Lead Generation

  • Build agent and brokerage lists with email addresses and direct phone numbers
  • Segment agents by borough, price band or property type before outreach
  • Reach management companies and new-development sponsors through the building record

Investment & Underwriting

  • Screen sales by pricePerSqft, maintenance, taxes and estimatedMonthlyPayment
  • Flag land-lease buildings with isLandLease before they reach diligence
  • Filter on maxFinancing to find co-ops that permit the leverage your model assumes

Product & Data Integration

  • Power a rental search product with fresh NYC inventory, photos and floor plans
  • Feed a valuation or rent-estimate model with coordinates, size, amenities and history
  • Sync new listings into Google Sheets, a warehouse or an internal API on a schedule

Getting Started

Simplest run — one borough

{
"searchUrls": ["Brooklyn"],
"maxItems": 100
}

Several neighborhoods, with full details

Type the neighborhood the way StreetEasy names it, or paste the address of a public StreetEasy search page — the location is read out of it either way.

{
"searchUrls": ["Williamsburg", "Astoria", "https://streeteasy.com/for-rent/park-slope-brooklyn"],
"listingType": "both",
"enrichDetails": true,
"maxItems": 1000
}

Input Reference

What to Scrape

ParameterTypeDefaultDescription
searchUrlsarray[]Neighborhoods or boroughs to search. Type a borough name, a neighborhood name, or paste a public streeteasy.com search address. Empty means Brooklyn. Add as many as you like — results are de-duplicated across them.
listingTypestringbothboth, rentals or sales. Each location is searched once per category you pick.

Result Limits & Detail

ParameterTypeDefaultDescription
maxItemsinteger100Maximum listings per location searched (0 = everything the search returns). StreetEasy pages through at most 4,270 listings for any one location and category.
enrichDetailsbooleanfalseAdds 37 fields to every listing: building record, price history, amenities, nearby subways and schools, every photo and floor plan, video and 3D tour links, open houses, comparable listings, and every listing contact. Billed at the higher rate.

Advanced

ParameterTypeDefaultDescription
concurrencyinteger8How many requests to run at once. Lower it if results start failing.
proxyConfigurationobjectApify ProxyProxy settings for the run.

Output

Every listing is one dataset row. Rows carry 38 fields by default; enrichDetails widens the same row to all 75. Rentals and sales share one schema — listingType tells them apart. Both examples are real listings: the agent's name and contact details are replaced with placeholders, and long text and arrays are shortened here for readability.

Rental row

{
"id": "5112748",
"listingType": "rental",
"url": "https://streeteasy.com/building/the-frederick/615",
"title": "564 Saint John's Place #615",
"propertyType": "Rental Unit",
"status": "Active",
"bedrooms": 1,
"bathrooms": 1,
"sizeSqft": 652,
"daysOnMarket": 5,
"address": "564 Saint John's Place",
"unit": "#615",
"zipCode": "11238",
"latitude": 40.6725,
"longitude": -73.9591,
"neighborhood": "Crown Heights",
"borough": "Brooklyn",
"price": 4696,
"isNoFee": false,
"freeMonths": 1,
"leaseTerm": 12,
"petPolicy": "Cats and dogs allowed",
"amenities": ["Balcony", "Central Air", "Dishwasher", "Doorman", "Elevator", "Gym", "Hardwood Floors", "Roof Deck", "Washer / Dryer in Unit"],
"buildingName": "The Frederick",
"buildingYearBuilt": 2022,
"buildingFloorCount": 8,
"buildingUnitCount": 193,
"buildingUrl": "https://streeteasy.com/building/the-frederick",
"nearbySubways": [{"station_name": "Botanic Garden", "line": "Franklin Shuttle", "routes": ["S", "2", "3", "4", "5"], "distance": 0.13}],
"nearbySchools": [{"name": "P.S. 316 Elijah Stroud", "district": "17", "grades": ["PK", "0K", "01", "02", "03", "04", "05", "SE"]}],
"brokerageName": "Premier One Realty LLC",
"agentName": "Agent Name",
"agentEmail": "agent@example.com",
"agentPhone": "(555) 010-0000",
"heroPhotoUrl": "https://photos.zillowstatic.com/fp/e907da35de71638f355719606b2aac62-se_large_800_400.webp",
"photos": ["https://photos.zillowstatic.com/fp/e907da35de71638f355719606b2aac62-full.jpg", "https://photos.zillowstatic.com/fp/3158dcca5c8455f00d160e9e10a016f2-full.jpg"],
"floorplans": ["https://photos.zillowstatic.com/fp/bce62791bff76be7b8b91d682c81e83d-full.jpg"],
"priceHistory": [
{"date": "2026-07-23", "price": 4696, "description": "Listed by Premier One Realty LLC"},
{"date": "2020-03-20", "price": 3675, "description": "Delisted by Mishkan Group. Last priced at $3,675."}
],
"comparableListings": [{"id": "5028364", "listed_price": 4450}, {"id": "5059843", "listed_price": 4550}],
"listedAt": "2026-07-23T18:29:35-04:00",
"updatedAt": "2026-07-23T18:29:35-04:00"
}

Sale row

A sale row carries every field above — id, address, coordinates, building record, agent, photos, comps — and swaps the tenancy fields for ownership economics. This is a real Battery Park City condo, showing only what a rental row does not have:

{
"id": "1835854",
"listingType": "sale",
"title": "377 Rector Place #1D",
"propertyType": "Condo",
"saleType": "Resale",
"price": 670000,
"sizeSqft": 654,
"pricePerSqft": 1024,
"lastPriceChangeAmount": -20000,
"lastPriceChangeDate": "2026-07-16T00:00:00-04:00",
"maintenance": 1048,
"taxes": 842,
"estimatedMonthlyPayment": 5288,
"maxFinancing": 80,
"isLandLease": true,
"buildingName": "Liberty House",
"buildingYearBuilt": 1985,
"buildingFloorCount": 27,
"buildingUnitCount": 238,
"priceHistory": [
{"date": "2026-07-16", "price": 670000, "description": "Price decreased by 3%"},
{"date": "2026-06-27", "price": 690000, "description": "Listed by Compass"},
{"date": "2012-01-12", "price": 475000, "description": "Nest Seekers International Listing sold"},
{"date": "1996-08-23", "price": 125000, "description": "Previous Sale recorded"}
],
"openHouses": [{"starts_at": "2026-07-29T12:00:00-04:00", "ends_at": "2026-07-29T13:00:00-04:00", "is_by_appointment_only": true}],
"comparableListings": [{"id": "1788958", "listed_price": 575000}, {"id": "1792304", "listed_price": 680000}]
}

Core Fields

FieldTypeDescription
idstringListing ID
listingTypestringrental or sale
urlstringListing URL
titlestringListing title
propertyTypestringCondo, Co-op, House, Rental Unit, Townhouse, Multi-family
statusstringActive, In contract, Sold, Closed, Delisted, and 7 more
bedroomsnumberBedrooms (0 = studio)
bedroomsDescriptionstringBedrooms (text)
bathroomsnumberBathrooms
halfBathroomsnumberHalf bathrooms
bathroomsDescriptionstringBathrooms (text)
sizeSqftnumberInterior size (sq ft)
daysOnMarketnumberDays on market
descriptionstringFull listing description
isFurnishedbooleanFurnished
petPolicystringPet policy
amenitiesarrayUnit and building amenities
buildingAmenitiesarrayBuilding amenities
outdoorSpacearrayBalcony, patio, terrace, roof deck
buildingTypestringBuilding type
buildingYearBuiltnumberYear built
buildingIsPreWarbooleanPre-war
buildingFloorCountnumberFloors in building
buildingUnitCountnumberUnits in building
buildingIsNewDevelopmentbooleanNew development

Price & Value

FieldTypeDescription
pricenumberAsking price or monthly rent
pricePerSqftnumberPrice per sq ft (sales)
isNoFeebooleanNo broker fee (rentals)
saleTypestringResale, new development, sponsor unit
lastPriceChangeAmountnumberLast price change ($)
lastPriceChangeDatestringLast price change date
priceHistoryarrayEvery price event with date and description
maintenancenumberMonthly maintenance / common charges
taxesnumberMonthly taxes
estimatedMonthlyPaymentnumberEstimated monthly payment
maxFinancingnumberMax financing (%)
rentalFeesarrayItemised rental fees
freeMonthsnumberFree months
leaseTermnumberLease term (months)

Location

FieldTypeDescription
addressstringStreet address
unitstringUnit number
citystringCity
statestringState
zipCodestringZIP code
latitudenumberLatitude
longitudenumberLongitude
neighborhoodstringNeighborhood
neighborhoodSlugstringNeighborhood slug
boroughstringBorough
buildingNamestringBuilding name
nearbySubwaysarrayStations with line, routes and distance
nearbySchoolsarrayZoned schools with district and grades

Contacts & Media

FieldTypeDescription
brokerageNamestringBrokerage
contactsarrayEvery listing contact
agentNamestringAgent
agentEmailstringAgent email
agentPhonestringAgent phone
agentPhoneAltstringAgent phone (alt)
agentProfileUrlstringAgent profile URL
heroPhotoUrlstringMain photo
thumbnailUrlstringThumbnail
photosarrayUp to 30 photo URLs
floorplansarrayFloor plan URLs
videoUrlsarrayVideo URLs
tour3dUrlstring3D tour URL

Dates & Identifiers

FieldTypeDescription
listedAtstringListed at
availableAtstringAvailable from
updatedAtstringLast updated
areaIdstringStreetEasy area ID
openHousesarrayOpen house times
comparableListingsarrayFive StreetEasy comps
buildingUrlstringBuilding page URL
buildingIdstringBuilding ID
managementCompanyProfileUrlstringManagement company profile URL
isLandLeasebooleanLand lease

Tips for Best Results

  • Plan around the 4,270-per-search ceiling — StreetEasy pages through at most 43 pages of 100 listings for any single location and category, however many match. Brooklyn rentals sit right on that line and Manhattan is well past it. Split a big borough into neighborhoods (Williamsburg, Park Slope, Bed-Stuy, …), list each one separately, and let the run de-duplicate across them.
  • Give it a place, not a filtered search — the location is what carries across; price, bedroom and amenity filters set on the website are not read back out of a pasted address. Collect the neighborhood in full and filter the dataset afterwards — every value you would have filtered on is its own field.
  • Turn on enrichDetails for anything contact-, photo- or history-related — agent email and direct phone, all 30 photos, floor plans, full price history, amenities, nearby subways and schools, open houses and comparable listings only arrive with it on. It adds 37 fields to the same row rather than creating a second record you have to join.
  • both doubles the searches, not the ceiling — each location runs one rental search and one sale search, and maxItems applies to each. Two neighborhoods with listingType: "both" is four searches and up to 2 × 2 × maxItems rows.
  • Read a missing sizeSqft as a market fact, not a gap — NYC rental listings mostly do not publish square footage while sale listings usually do, so how often the field is filled tracks the rental/sale mix you asked for. The same is true of unit (a house or townhouse has no unit number) and floorplans (a brokerage habit that varies sharply between boroughs and between rentals and sales).
  • A published 0 means "not disclosed", and you get null instead — square footage, maintenance, monthly taxes, max financing and last price change all arrive as a literal zero when the figure was withheld. Nearly half of a 600-listing sample had a zero square footage; averaging the raw numbers would put a 0 sq ft apartment on half your rows.
  • Diff on updatedAt to watch a market — schedule a run, compare against yesterday's dataset, and you surface new and re-priced inventory instead of reprocessing a whole borough every time.

Pricing

From $1.00 per 1,000 results (search only) or from $2.50 per 1,000 results (with full details).

ResultsSearch OnlyWith Full Details
100$0.10$0.25
1,000$1.00$2.50
10,000$10.00$25.00
100,000$100.00$250.00

Those are the rates on Gold and above. Higher-volume plans pay less per result:

Your Apify planSearch OnlyWith Full Details
No discount$1.20$3.00
Bronze$1.15$2.85
Silver$1.05$2.65
Gold and above$1.00$2.50

Per 1,000 results.

A "result" is any listing row in the output dataset. The full-details rate applies to every row on a run with enrichDetails turned on. When you search several locations at once, a listing matching more than one of them is de-duplicated before it reaches the dataset, so you are never charged twice for the same listing. Platform fees (compute, storage) are additional and depend on your Apify plan.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n — Workflow automation
  • Google Sheets — Direct spreadsheet export
  • Slack / Email — Notifications when new listings match
  • Webhooks — Trigger custom APIs on run completion
  • Apify API — Full programmatic access

This is an unofficial scraper. It is not affiliated with, endorsed by, or connected to StreetEasy, Zillow Group, or their operators in any way. All trademarks belong to their respective owners.

This actor is intended for legitimate market research, real-estate analytics, and brokerage intelligence. You are responsible for complying with applicable laws and with StreetEasy's Terms of Service.

Listings include agent and brokerage contact details. Treat them as personal data: do not use names, email addresses or phone numbers for spam, harassment, or any unlawful purpose, and follow applicable privacy rules when storing or processing them. Housing listings are also subject to fair-housing rules — do not use this data to discriminate in the sale, rental, or financing of housing.