StreetEasy NYC Scraper โ€” Sale + Rent ยท Price/SqFt ยท Market KPIs avatar

StreetEasy NYC Scraper โ€” Sale + Rent ยท Price/SqFt ยท Market KPIs

Pricing

Pay per usage

Go to Apify Store
StreetEasy NYC Scraper โ€” Sale + Rent ยท Price/SqFt ยท Market KPIs

StreetEasy NYC Scraper โ€” Sale + Rent ยท Price/SqFt ยท Market KPIs

๐Ÿ™๏ธ Scrape StreetEasy NYC listings โ€” sale + rent, all 5 boroughs, with built-in market KPIs (median price, price/sqft distribution, area breakdowns) and HTML report. School enrichment + bulk input. Independent tool โ€” not affiliated with StreetEasy or Zillow Group.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

SIรN Oรœ

SIรN Oรœ

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Share

StreetEasy NYC Scraper โ€” Sale + Rent ยท Price/SqFt ยท Market KPIs ๐Ÿ™๏ธ

SIรN Agency Store Related Actor

๐ŸŽฏ Extract NYC Sale + Rent Listings With Market KPIs in Seconds

Real estate investors, brokers, market analysts, and NYC researchers โ€” get full listing data plus price/sqft analytics across all five boroughs


๐Ÿ“‹ Overview

Pull StreetEasy NYC listings โ€” both for-sale AND rentals โ€” into clean structured data. Search Manhattan, Brooklyn, Queens, Bronx, or Staten Island by borough or by specific neighborhood ID, and get back complete listings with calculated price-per-sqft, beds/baths, square footage, building type, geo coordinates, source agent, and photo metadata.

Why investors and brokers choose us over the alternatives:

  • ๐Ÿ“Š Analytics included, not just raw data: Auto-generated HTML market report with median price, price/sqft distribution (min/median/avg/p90/max), top areas by inventory, and building-type breakdown โ€” computed for you on every run
  • ๐Ÿงฎ Calculated price/sqft on every listing: Skip the spreadsheet step โ€” comp sheets and CMAs are ready straight from the dataset
  • โœ… Sale + Rent in one actor: One listingType toggle gets you sales, rentals, or both sides โ€” purpose-built for buy-vs-rent and price-to-rent ratio analysis
  • ๐Ÿ—ฝ All 5 NYC boroughs + 340+ named neighborhoods: Whole-borough sweeps or surgical neighborhood targeting
  • ๐ŸŽ“ Optional school enrichment: Nearby public schools per listing for family-buyer workflows (PAID)
  • ๐Ÿ†“ FREE tier with full feature parity: 25 listings per run, no credit card, same KPIs and HTML report โ€” just a smaller cap

โœจ Features

  • ๐Ÿ  Both sides of the market โ€” sales (condos, co-ops, houses) and rentals (apartments, units) via a single listingType toggle
  • ๐Ÿงญ Two location modes โ€” by borough (Manhattan / Brooklyn / Queens / Bronx / Staten Island) or by neighborhood ID (e.g. 302 = Williamsburg, 319 = Park Slope)
  • ๐Ÿ“Š Auto-calculated price/sqft โ€” for every listing with usable square footage
  • ๐Ÿ“ˆ Market KPIs in HTML report โ€” median price, price/sqft distribution (min/median/avg/p90/max), top areas by inventory, building type tally
  • ๐Ÿข Rental-specific fields โ€” availableAt, monthsFree, noFee, netEffectivePrice, furnished, leaseTermMonths
  • ๐ŸŽ“ School data enrichment โ€” nearby public schools per listing (PAID toggle)
  • ๐Ÿ“ฆ Bulk neighborhood search โ€” pass an array of area IDs in one run (PAID)
  • ๐Ÿ“ฑ Standard Apify exports โ€” JSON, CSV, XLSX, RSS, HTML

๐ŸŽฌ Quick Start

Three inputs, no coding:

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~streeteasy-property-scraper/runs?token=[YOUR_TOKEN]' \
-H 'Content-Type: application/json' \
-d '{"searchMode":"borough","borough":"Manhattan","listingType":"sale","maxResults":50}'

๐Ÿš€ Getting Started (3 Simple Steps)

Step 1: Pick Sale, Rent, or Both

Set listingType to sale, rent, or both. Both runs each query twice (PAID โ€” doubles the query count).

Step 2: Pick Your Location

Either set searchMode: "borough" and pick one of the five NYC boroughs, or set searchMode: "area" and pass a StreetEasy neighborhood ID (e.g. 302 for Williamsburg).

Step 3: Run & Export

Hit Run. Listings stream into the dataset; an HTML market report lands in the key-value store. Export as JSON, CSV, or Excel.

That's it! In under 2 minutes you'll have:

  • Complete listings with address, specs, pricing, photos, geo
  • Auto-calculated price/sqft per listing
  • Market-level KPIs (median price, distribution, area + type breakdowns)
  • A polished HTML market summary

๐Ÿ“ฅ Input Configuration

FieldTypeRequiredDescription
listingTypestringNosale, rent, or both (default: sale). both is PAID-only.
searchModestringNoborough or area (default: borough).
boroughstringIf searchMode=boroughManhattan, Brooklyn, Queens, Bronx, Staten Island.
areaIdintegerIf searchMode=areaStreetEasy neighborhood ID (e.g. 302 = Williamsburg).
areaIdsarrayNoMultiple neighborhood IDs in one run (PAID only).
maxResultsintegerNoListings per query, 1โ€“500 (default: 50). FREE tier capped at 25 per run.
includeSchoolsbooleanNoFetch nearby schools per listing โ€” PAID only (default: false).

Example โ€” Borough sale search:

{
"listingType": "sale",
"searchMode": "borough",
"borough": "Brooklyn",
"maxResults": 100
}

Example โ€” Williamsburg rentals:

{
"listingType": "rent",
"searchMode": "area",
"areaId": 302,
"maxResults": 50
}

Example โ€” Bulk neighborhoods, both sides of market, with schools:

{
"listingType": "both",
"searchMode": "area",
"areaIds": [302, 319, 301],
"maxResults": 200,
"includeSchools": true
}

๐Ÿ“ค Output

Results land in the Apify dataset. Common fields across both sale and rent:

FieldTypeDescription
propertyIdstringUnique StreetEasy property ID
listingTypestringsale or rent
urlstringFull listing URL on streeteasy.com
titlestringAddress with unit
areaNamestringNeighborhood name
addressobjectstreet, unit, neighborhood, full
pricingobjectprice, pricePerSqft (+ rent fields when applicable)
specsobjectbeds, bathsFull, bathsHalf, bathsTotal, sqft, buildingType, furnished
locationobjectlatitude, longitude
sourceobjectListing agent / brokerage info
mediaobjectPhoto count, 3D tours, video flag
statusstringACTIVE, DELISTED, etc.
rentalobject(Rent only) availableAt, leaseTermMonths, isNewDevelopment
schoolsarray(Optional) Nearby public schools
schoolCountnumber(Optional) Count of nearby schools
scrapedAtstringISO timestamp

Sale example:

{
"propertyId": "1814683",
"listingType": "sale",
"url": "https://streeteasy.com/building/bergen-brooklyn/ph-706e",
"title": "323 Bergen Street, PH 706E",
"areaName": "Boerum Hill",
"pricing": { "price": 4625000, "pricePerSqft": 1808 },
"specs": { "beds": 3, "bathsFull": 2, "bathsHalf": 1, "bathsTotal": 3, "sqft": 2558, "buildingType": "CONDO" },
"location": { "latitude": 40.68333, "longitude": -73.98045 },
"source": { "label": "Compass", "type": "PARTNER" },
"status": "ACTIVE"
}

Rent example:

{
"propertyId": "5007580",
"listingType": "rent",
"url": "https://streeteasy.com/building/the-kent-house/203",
"title": "187 Kent Avenue, 203",
"areaName": "Williamsburg",
"pricing": { "price": 4800, "pricePerSqft": null, "monthsFree": 0, "noFee": false },
"specs": { "beds": 1, "bathsTotal": 1, "buildingType": "RENTAL", "furnished": false },
"rental": { "availableAt": "2026-05-01", "leaseTermMonths": null, "isNewDevelopment": false }
}

๐Ÿ’ผ Use Cases & Examples

1. Investment Underwriting (Sale)

Investors comparing condos by price/sqft across Brooklyn neighborhoods

Input: areaIds: [302, 319, 301], listingType: "sale" Output: Listings with calculated price/sqft + median per area Use: Spot the cheapest $/sqft pockets; build comp sheets in minutes.

2. Rental Market Analysis

Brokers tracking rent trends in Williamsburg vs. Bushwick

Input: listingType: "rent", two neighborhood IDs, weekly schedule Output: Median rent, no-fee inventory, available-at distribution Use: Generate weekly rental market briefs for clients.

3. Sale + Rent Side-by-Side

Investors checking buy-vs-rent ratios in one neighborhood

Input: listingType: "both", areaId: 319 (Park Slope) Output: Sales and rentals from the same area in one dataset Use: Compute price-to-rent ratios for cash-flow analysis.

4. CMA / Comparables for Agents

Agents preparing CMAs for upcoming listings

Input: Borough or neighborhood, maxResults: 200 Output: Recent listings with full specs and prices Use: Plug straight into comp sheets and CMA reports.

Families filtering by nearby schools

Input: borough: "Queens", includeSchools: true Output: Listings with adjoined school data Use: Rank properties by school proximity.

6. AVM / ML Training Data

Data scientists building NYC valuation models

Input: Bulk borough sweep, listingType: "both" Output: Comprehensive sale + rent dataset with specs + geo Use: Train and validate AVM and rent-prediction models.


๐Ÿ”— Integration Examples

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('sian.agency/streeteasy-property-scraper').call({
listingType: 'both',
searchMode: 'borough',
borough: 'Manhattan',
maxResults: 100,
includeSchools: true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/streeteasy-property-scraper').call(
run_input={
'listingType': 'rent',
'searchMode': 'area',
'areaId': 302,
'maxResults': 100
}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~streeteasy-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"listingType":"sale","searchMode":"borough","borough":"Queens","maxResults":150}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: Schedule (daily / weekly market refresh) or webhook
  2. HTTP Request: Call StreetEasy scraper API with target neighborhood
  3. Process: Filter by price band, compute KPIs, dedupe against last run
  4. Action: Push to DB, send Slack/email digest, update dashboard

๐Ÿ“Š Performance & Pricing

FREE Tier (Try It Now)

  • 25 listings per run โ€” full feature parity, same data quality
  • 5 queries per run
  • No credit card required
  • Perfect for testing and one-off analyses
  • Unlimited listings and queries per run
  • listingType: "both" (sale + rent in one run)
  • Bulk neighborhood arrays
  • School data enrichment
  • Pay-per-result: only charged for listings actually returned

๐Ÿ’ฐ Transparent per-result pricing โ€” $0.005 per listing extracted, $0.003 per school enrichment, $0.005 per actor start. What you get for the price: every listing comes with calculated price/sqft and the run produces a full HTML market report with median, distribution, and area breakdowns โ€” no post-processing required, no separate analytics tier.

๐Ÿ”— View current pricing


โ“ Frequently Asked Questions

Q: Does this cover rentals? A: Yes โ€” set listingType: "rent" for rentals only, or listingType: "both" (PAID) to scrape sale + rent in a single run.

Q: How many listings can I extract? A: FREE tier: 25 per run. PAID tier: unlimited. Each query auto-paginates up to 5 pages (~250 listings).

Q: Why does pricePerSqft come back null on some rentals? A: StreetEasy rental records often omit square footage. We only compute price/sqft when the listing reports usable sqft.

Q: Do you cover boroughs outside Manhattan? A: Yes โ€” all 5 boroughs plus 340+ named neighborhoods. Use searchMode: "borough" for whole-borough sweeps or searchMode: "area" with a neighborhood ID for granular targeting.

Q: What output formats are available? A: JSON, CSV, Excel โ€” exported directly from the Apify dataset.

Q: How long does a run take? A: Roughly 1โ€“2 seconds per 50 listings, plus ~200ms per listing if school enrichment is enabled.

Q: Is this legal? A: We only extract publicly available listings from StreetEasy. See the legal section below.


๐Ÿ› Troubleshooting

"Area ID not found" error

  • Confirm the ID exists. Common IDs: 100=Manhattan, 200=Bronx, 300=Brooklyn, 302=Williamsburg, 319=Park Slope, 400=Queens, 500=Staten Island.
  • Use searchMode: "borough" if you only want a whole-borough sweep.

listingType: "both" rejected

  • both runs each query twice and requires PAID. Use sale or rent on FREE tier.

No school data on a listing

  • Not all properties have nearby school records. Schools require includeSchools: true on PAID tier.

FREE tier hit at 25 listings

  • That's the FREE cap. Upgrade for unlimited.

โš ๏ธ Trademark Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by StreetEasy, Zillow Group, Inc., or any of their subsidiaries. The name "StreetEasy" is used solely in a descriptive sense to identify the public data source the Actor reads from. All trademarks, service marks, and trade names referenced in this Actor or its documentation are the property of their respective owners.


Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. 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

Telegram Support

Join our active support community


Built by SIรN Agency | More Tools