
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape StreetEasy NYC rentals and homes for sale from search, listing or building URLs or area names. Get price, beds, baths, size, address, coordinates, agents with phone and email, amenities, fees, price history, open houses, building data and photos.
Scrape StreetEasy, New York City's biggest rental and sales site, for apartments for rent and homes for sale. Paste any StreetEasy search, listing or building URL, or just type a borough or neighborhood, and get one clean row per listing with price, beds, baths, size, address, coordinates, the listing agents with phone and email, amenities, fees, price history, open houses, building facts, nearby transit and schools, and photos. No login and no StreetEasy account needed.
/rental/<id> and /sale/<id> links, and building pages (every active listing in the building).Brooklyn, Williamsburg, Upper West Side or NYC and add price, bedroom and bathroom filters.Brooklyn or Upper East Side into Areas and pick Rentals or Sales.| Field | What it does |
|---|---|
startUrls | StreetEasy search URLs (/for-rent/..., /for-sale/...), listing URLs (/building/<building>/<unit>, /rental/<id>, /sale/<id>) or building URLs (/building/<building>). |
locations | NYC areas as StreetEasy names them: Manhattan, Brooklyn, Queens, Bronx, Staten Island, Williamsburg, Upper West Side, Astoria, NYC. |
listingType | rentals or sales for areas. |
maxItems | Total listings to save across all inputs. |
maxItemsPerSearch | Optional cap per search URL or area, so every search gets its share. |
minPrice / maxPrice | Monthly rent for rentals, asking price for sales. |
minBeds / maxBeds, minBaths | Bedroom and bathroom filters (0 bedrooms = studio). |
sortBy | default, newest, price_low or price_high. |
includeDetails | Open each listing page for the full record (default on). |
onlyNewListings | Skip listings saved by earlier runs of the same input. |
Filters apply to areas and to search URLs; a filter you set here replaces the same filter in the URL. Listing and building URLs are not filtered. For rentals, StreetEasy compares the price filter with the net effective rent (the rent after free months), so a listing can show a higher price with a netEffectivePrice inside your range. Featured and sponsored listings outside your filters are skipped.
{
"locations": ["Williamsburg", "Greenpoint"],
"listingType": "rentals",
"maxItems": 100,
"minPrice": 2500,
"maxPrice": 4500,
"minBeds": 1,
"sortBy": "newest",
"includeDetails": true
}
One row per listing. The Listings view shows the main columns and the Agents view has one row per listing agent.
| Field | Description |
|---|---|
id, url, listingType, status | StreetEasy listing id, link, rental or sale, and status (ACTIVE, IN_CONTRACT, SOLD, RENTED ...). |
address, street, unit, city, state, zipCode, neighborhood, latitude, longitude | Location. |
price, netEffectivePrice, monthsFree, leaseTermMonths, priceDelta, soldPrice | Rent or asking price and concessions (for rentals without free months, netEffectivePrice equals price). |
monthlyCommonCharges, monthlyMaintenance, monthlyTaxes, estimatedMonthlyPayment, maxFinancingPercent, taxDeductionPercent | Monthly costs of homes for sale. |
moveInFees | Rental fees as StreetEasy lists them (application fee, deposit, broker fee ...). |
bedrooms, fullBathrooms, halfBathrooms, rooms, sizeSqft, buildingType, saleType | The home. |
daysOnMarket, onMarketAt, availableAt, offMarketAt, soldDate, createdAt, updatedAt, lastChangedAt | Dates (lastChangedAt is the last price or status change). |
description, amenities, features, views, outdoorSpace, sharedOutdoorSpace, parking, doorman, storage | Description and amenities. |
brokerage, brokerageLicense, agentName, agentPhone, agentEmail, agents, sourceType, sourceListingId, placement | Listing brokerage and agents, listing source, and whether the search showed it as organic, featured or sponsored. |
photo, photos, floorPlans, videos, openHouses | Media and open houses. |
priceHistory, listingHistory, statusChanges, areaPriceStats | Price changes, past listings of the unit, status changes and recent prices for similar homes nearby. |
building, transit, schools | Building facts, nearby stations with lines and distance, zoned schools. |
detailsScraped, searchUrl, scrapedAt | Whether the listing page was read, which search found the listing, and when. |
Example (trimmed, the agent is fictional):
{
"id": "5183705",
"url": "https://streeteasy.com/building/1499-bedford-avenue-brooklyn/6e",
"listingType": "rental",
"status": "ACTIVE",
"address": "1499 Bedford Avenue #6E",
"neighborhood": "Crown Heights",
"zipCode": "11216",
"latitude": 40.672104,
"longitude": -73.95409,
"price": 4850,
"bedrooms": 2,
"fullBathrooms": 2,
"buildingType": "Rental unit",
"daysOnMarket": 5,
"availableAt": "2026-12-01",
"amenities": ["Bike room", "Doorman", "Elevator", "Gym", "Laundry", "Package room"],
"features": ["Private outdoor space", "Central ac", "Dishwasher", "Hardwood floors", "Washer dryer"],
"brokerage": "MySpaceNYC",
"agentName": "Jamie Rivera",
"agentPhone": "+12125550147",
"agents": [
{"role": "listing", "name": "Jamie Rivera", "brokerage": "MySpaceNYC", "phone": "+12125550147", "email": null,
"licenseType": "Licensed Real Estate Salesperson", "profileUrl": "https://streeteasy.com/profile/847388"}
],
"priceHistory": [{"date": "2026-10-15", "price": 4850}],
"building": {"name": null, "url": "https://streeteasy.com/building/1499-bedford-avenue-brooklyn", "yearBuilt": 2023,
"floors": 10, "units": 98, "policies": ["Guarantors accepted", "Pets allowed"]},
"transit": [{"station": "Franklin Av", "routes": ["S", "2", "3", "4", "5"], "distanceMiles": 0.2093}],
"detailsScraped": true
}
Is it legal to scrape StreetEasy? The actor reads only public pages that anyone can open without an account. Check that your use of the data, especially agent contact details, follows the laws that apply to you (for example privacy and anti-spam rules) and StreetEasy's terms.
Do I need a StreetEasy account, cookies or a proxy? No. The actor needs no login, and it brings its own browser and exit IPs.
How many listings can I get? StreetEasy shows only about 1,400 listings of one search (100 rental pages or about 37 sale pages). When you ask for more listings than one search can show, the actor splits it into price ranges and keeps going, so whole boroughs work. NYC-wide rentals are about 16,000 listings.
Why is a field empty?
The listing does not have it. Square feet, net effective rent, free months, agent emails, floor plans and open houses are only on some listings. Rows with detailsScraped: false hold the search-card data only.
Can I schedule it or use the API? Yes. Schedule the actor (daily with Only new listings gives you a feed of fresh listings), call it through the API, or connect it to your tools with webhooks and integrations.
How fast is it? In our tests 10 detailed listings took 15 to 20 seconds per run, 300 listings about 3.5 minutes and 1,000 listings 8 to 14 minutes. StreetEasy limits how fast one visitor may open pages, so the actor keeps a steady pace (about 1.5 to 2.5 listing pages per second) instead of racing and getting blocked; plan on roughly 1.5 to 2 hours for 10,000 detailed listings, or use search-card mode, which read 2,000 listings in under 3 minutes.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayOptionalStreetEasy URLs
Search result pages (e.g. https://streeteasy.com/for-rent/brooklyn or https://streeteasy.com/for-sale/manhattan/price:500000-900000%7Cbeds%3E=1), listing pages (https://streeteasy.com/building/hanover-house/20e, https://streeteasy.com/rental/5042301, https://streeteasy.com/sale/1700000) and building pages (https://streeteasy.com/building/hanover-house, gives every active listing in the building). Copy a search URL from your browser after setting filters on StreetEasy.
locationsarrayOptionalAreas
NYC boroughs or neighborhoods as StreetEasy names them, e.g. Manhattan, Brooklyn, Queens, Williamsburg, Upper West Side, Astoria, Long Island City, or NYC for the whole city. Uses the listing type and filters below.
listingTypeenumOptionaldefault "rentals"Listing type for areas
Search rentals or homes for sale in the areas above. StreetEasy URLs keep their own type.
maxItemsintegerOptionaldefault 20Maximum listings
How many listings to save in total across all inputs. Big searches are split into price ranges automatically, so you can go past StreetEasy's limit of about 1,400 listings per search.
maxItemsPerSearchintegerOptionalMaximum listings per search
Optional cap for each search URL or area, so one big search does not use up the whole limit. Leave empty for no per-search cap.
Optional. They apply to areas and to search URLs (overriding the same filter in the URL). Listing and building URLs are not filtered.
minPriceintegerOptionalMinimum price ($)
Monthly rent for rentals (StreetEasy compares it with the net effective rent, after free months), asking price for sales. Applies to areas and search URLs.
maxPriceintegerOptionalMaximum price ($)
Monthly rent for rentals, asking price for sales.
minBedsintegerOptionalMinimum bedrooms
0 includes studios.
maxBedsintegerOptionalMaximum bedrooms
Leave empty for no upper limit.
minBathsintegerOptionalMinimum bathrooms
Full bathrooms.
sortByenumOptionaldefault "default"Sort order
Order of search results. With a listing limit, this decides which listings you get.
includeDetailsbooleanOptionaldefault trueFull listing details
Open each listing page for agents (name, phone, email, license), description, amenities, building data, price and listing history, open houses, schools, transit and fees. Turn off for search-card data only (price, beds, baths, address, coordinates, photos): faster and uses less browser time.
onlyNewListingsbooleanOptionaldefault falseOnly new listings (monitoring)
Skip listings already saved by earlier runs with the same URLs and areas. Schedule the run daily to get only fresh listings.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | string | |
| url | string | |
| listingType | string | |
| price | number | null | |
| address | string | null |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Listing | Charged once for each StreetEasy listing saved to the dataset (full details included). | $0.0025 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/streeteasy-scraper').call({
"startUrls": [
{
"url": "https://streeteasy.com/for-rent/brooklyn"
}
],
"maxItems": 20
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/streeteasy-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/streeteasy-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Paste a StreetEasy sales search URL and get price, charges, agents with phone and email, history and building facts.
Search by neighborhood with price and bedroom filters; full rental details and agents.
Type a neighborhood, pick Sales and sort by newest to see what just came on the market.
Turn off full details for quick rows: price, beds, baths, size, address and photo.
Paste listing links or building pages; a building page returns its active listings.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.