# NYC Rentals and Sales Scraper for StreetEasy: Comps, Price Cuts (`getascraper/streeteasy-scraper`) Actor

Scrape NYC rentals and sales from StreetEasy with full detail in every row: gross and net-effective rent, free months, disclosed fees, price history, building and subway facts. Monitor mode returns only new listings, price cuts, rented and sold units. Export to Excel or Sheets. $1.50 per 1K.

- **URL**: https://apify.com/getascraper/streeteasy-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Real estate, Travel
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.13 / 1,000 listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🗽 NYC Rentals and Sales Scraper for StreetEasy: Comps, Price Cuts

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#F1F5FA;border:1px solid #C9D7E6;border-top:4px solid #0F4C81;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">NYC rentals and sales with the real rent, the fees, and every price change</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Pull StreetEasy listings for any neighborhood with gross and net-effective rent, disclosed fees, price history and building facts in every row. Schedule it, and each run returns only what changed.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9D7E6;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#0B3A63">💵 Real rent, not ad rent</span><br>
<span style="font-size:12px;color:#57534E">Gross rent, net-effective rent, free months and lease length in their own columns.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9D7E6;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#0B3A63">🔔 Only what changed</span><br>
<span style="font-size:12px;color:#57534E">New listings, price cuts, rented and sold. Unchanged listings are never charged.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9D7E6;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#0B3A63">📈 Full history included</span><br>
<span style="font-size:12px;color:#57534E">Every price and status event for the unit, plus building, subway and school facts.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9D7E6;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#0B3A63">🏷️ Rented and sold comps</span><br>
<span style="font-size:12px;color:#57534E">Past rentals and sales with closing dates, for comps and pricing work.</span>
</td>
</tr>
</table>

StreetEasy Scraper collects New York City and North Jersey apartment listings from StreetEasy: rentals, sales, in-contract listings, and past rentals and sales. Every row already includes the details you would otherwise open each listing to find. No StreetEasy account, login or key is needed.

This Actor is an independent tool. It is not affiliated with, endorsed by or sponsored by StreetEasy or Zillow Group.

### 🔍 What does StreetEasy Scraper do?

It turns a StreetEasy search into a clean spreadsheet, one row per listing. You choose the place, the filters and how many listings you want.

- **Search**: rentals or sales, active, in contract, or past (rented or sold), filtered by neighborhood, price, bedrooms, bathrooms, size, no-fee, furnished, pets and move-in date.
- **Paste links**: drop in any StreetEasy search page, single listing or building page. Search pages keep their filters. A building link returns its units.
- **Monitor**: run the same search on a schedule. Each run returns only new listings, price drops, price increases, listings that went into contract or were rented or sold, and listings taken off the market.

Each row carries the rent or asking price, net-effective rent and free months, disclosed tenant fees, beds, baths and size, address and map position, neighborhood and borough, listing and move-in dates, days on market, price and status history, amenities, pet policy, open houses, building facts, nearby subway stations and schools, photos, floor plans and the description.

### 👥 Who uses it

- **Landlords and property managers**: "I price a vacant one-bedroom against live comps, and I need to see who is offering a free month and what fees they charge."
- **Investors**: "I screen Brooklyn condos by price per square foot, common charges and taxes, then check what sold nearby and for how much."
- **Brokers**: "Each morning I want the listings that dropped in price or came off the market overnight, so I can call the owners first."
- **Renters and alert builders**: "I want new listings in my budget as soon as they appear, not hours later in a batched email."
- **Relocation and corporate housing teams**: "I need furnished one-bedrooms near Midtown that are free by the first of next month."
- **Data and proptech teams**: "We need a flat schema that stays the same from run to run, with honest empty values instead of made-up ones."

### 🚀 How to use it

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#F1F5FA;border:1px solid #C9D7E6;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#0F4C81;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Pick the place</span><br>
<span style="font-size:12px;color:#57534E">Type neighborhoods the way you say them, like UWS, LIC or Bed-Stuy, or paste StreetEasy links.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F1F5FA;border:1px solid #C9D7E6;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#0F4C81;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Set your filters</span><br>
<span style="font-size:12px;color:#57534E">Price on gross or net-effective rent, beds, baths, no-fee, furnished, pets and move-in date.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F1F5FA;border:1px solid #C9D7E6;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#0F4C81;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Run it or schedule it</span><br>
<span style="font-size:12px;color:#57534E">Download as Excel, CSV or JSON. In monitor mode, each run lists only the changes.</span>
</td>
</tr>
</table>

The default input returns 100 active Manhattan rentals in under a minute, so you can see the full output before you narrow anything down.

### 🔔 Monitor new listings and price cuts

Pick **Monitor changes** as the mode, set your filters, and schedule the Actor (hourly or daily works well). The first run records every matching listing as `NEW`. After that, each run returns only:

| Change | Meaning |
|---|---|
| `NEW` | A listing that was not there last run |
| `PRICE_DROP` / `PRICE_INCREASE` | The price moved; the row shows the previous price, the change and the percent |
| `STATUS_CHANGE` | The listing went into contract, or was rented or sold (with the closing date) |
| `DELISTED` | The listing was taken off the market |

Unchanged listings produce no row and cost nothing. Give the monitor a name to share its memory across a schedule, a saved task and API calls. To also catch listings that leave the market, set **Max listings** above the size of your search.

### 📥 Input

| Field | Type | Required | Description |
|---|---|---|---|
| `mode` | enum | No | `search` (default), `urls` (paste StreetEasy links) or `monitor` (changes only). |
| `listingType` | enum | No | `rentals` (default) or `sales`. |
| `status` | enum | No | `active` (default), `in_contract`, or `past` (rented or sold). |
| `startUrls` | array of URLs | No | StreetEasy search, listing or building links. Used in `urls` mode. |
| `locations` | array of strings | No | Neighborhoods or boroughs by name, for example "Upper West Side", "LIC", "Brooklyn". Empty means all of NYC and North Jersey. |
| `minPrice` / `maxPrice` | integer | No | Monthly rent or asking price range in USD. |
| `priceBasis` | enum | No | Rentals: filter on `gross` (advertised) or `netEffective` rent. |
| `minBeds` / `maxBeds` | integer | No | Bedroom range. 0 is a studio. |
| `minBaths` | number | No | Minimum full bathrooms. |
| `minSqft` | integer | No | Minimum size in square feet. |
| `noFeeOnly` | boolean | No | Only rentals marked as no broker fee. |
| `furnishedOnly` | boolean | No | Only furnished units. |
| `petsAllowed` | boolean | No | Only listings that allow pets. |
| `availableBy` | string | No | Rentals you can move into on or before this date. |
| `sort` | enum | No | Newest, oldest, price, size, price per square foot, bedrooms or next open house. |
| `maxItems` | integer | No | Most listings per search (per link in `urls` mode). Default 100. |
| `includeDetails` | boolean | No | Price history, building, transit, schools, photos and more. On by default. |
| `maxPhotos` | integer | No | Photo links per listing. Default 5. |
| `includeAgentContacts` | boolean | No | Adds agent name, phone, email and license. Off by default. |
| `stateName` | string | No | Monitor name, so several runs share one memory. |
| `proxyConfiguration` | object | No | Connection settings. The default works for nearly everyone. |

### 📤 Output example

```json
{
  "schemaVersion": 1,
  "id": "5179396",
  "url": "https://streeteasy.com/building/the-howell/p103",
  "listingType": "rental",
  "status": "active",
  "price": 6526,
  "netEffectiveRent": 5982,
  "monthsFree": 1,
  "leaseTermMonths": 12,
  "grossVsNetDiscountPct": 8.34,
  "beds": 1,
  "baths": 1,
  "halfBaths": 0,
  "unitType": "Rental Unit",
  "address": "84 William Street",
  "unit": "#P103",
  "zip": "10038",
  "neighborhood": "Financial District",
  "borough": "Manhattan",
  "latitude": 40.707973,
  "longitude": -74.00772,
  "listedAt": "2026-10-10T00:48:15-04:00",
  "availableAt": "2026-10-19",
  "daysOnMarket": 0,
  "noFee": false,
  "furnished": false,
  "buildingName": "The Howell",
  "buildingYearBuilt": 1907,
  "propertyType": "rental",
  "brokerage": "Living New York",
  "priceHistory": [
    { "date": "2026-10-10", "price": 6526, "event": "LISTED", "source": "Living New York", "listingId": "5179396" },
    { "date": "2025-07-23", "price": 6360, "event": "DELISTED", "source": "Living New York", "listingId": "4756922" },
    { "date": "2025-06-04", "price": 6360, "event": "LISTED", "source": "Living New York", "listingId": "4756922" }
  ],
  "priceCutCount": 0,
  "originalPrice": 6526,
  "amenities": ["Balcony", "Central Air", "City View", "Concierge", "Deck"],
  "petPolicy": "Cats and dogs allowed",
  "openHouses": [{ "startsAt": "2026-10-10T12:15:00-04:00", "endsAt": "2026-10-10T13:00:00-04:00", "byAppointmentOnly": true }],
  "building": { "floors": 19, "units": 138, "preWar": true, "activeRentals": 4, "activeSales": 0 },
  "nearbySubways": [
    { "station": "Fulton St-Broadway-Nassau", "routes": ["A", "C", "J", "Z", "2", "3", "4", "5"], "distanceMiles": 0.06 },
    { "station": "Wall St", "routes": ["2", "3"], "distanceMiles": 0.07 }
  ],
  "nearbySchools": ["the Peck Slip School"],
  "photos": ["https://photos.zillowstatic.com/fp/71c6411f8ac343bdb42438fa27dd56f1-full.jpg"],
  "pricePerBed": 6526,
  "scrapedAt": "2026-10-10T05:15:08.000Z"
}
```

A value the listing does not state is left out of the row. You will never see placeholders like "N/A" or "Unknown", and a missing size is never shown as 0.

### 📊 Data table

| Field | Type | Description |
|---|---|---|
| `id`, `url` | string | StreetEasy listing id and page |
| `listingType` | string | `rental` or `sale` |
| `status` | string | `active`, `in_contract`, `rented`, `sold`, `delisted`, `closed` or `temporarily_off_market` |
| `price` | number | Advertised monthly rent or asking price (USD) |
| `netEffectiveRent` | number | Rent averaged over the lease after free months |
| `monthsFree`, `leaseTermMonths` | number | The concession offered and the lease length it assumes |
| `grossVsNetDiscountPct` | number | How much lower the net-effective rent is, in percent |
| `pricePerSqft`, `pricePerBed` | number | Price per square foot and per bedroom, when size or bedrooms are stated |
| `beds`, `baths`, `halfBaths`, `sqft`, `unitType` | number / string | Unit size and type |
| `address`, `unit`, `city`, `state`, `zip` | string | Address |
| `neighborhood`, `borough` | string | Location names |
| `latitude`, `longitude` | number | Map position |
| `listedAt`, `availableAt`, `closedAt` | string | Listed, move-in and closing dates |
| `daysOnMarket` | integer | Days on market |
| `noFee` | boolean | Marked as no broker fee |
| `fees` | array | Disclosed tenant fees: type, amount, how it is calculated, required or optional, one-time or recurring |
| `moveInCostEstimate` | number | First month plus required one-time fees, only when every required fee is stated |
| `furnished`, `furnishedRent`, `totalMonthlyPrice` | boolean / number | Furnished status and prices when quoted |
| `maintenance`, `taxes`, `saleType` | number / string | Sales carrying costs and sale type |
| `buildingName`, `buildingUrl`, `buildingYearBuilt`, `isNewDevelopment`, `propertyType` | mixed | Building basics |
| `brokerage` | string | Listing brokerage |
| `priceHistory` | array | Price and status events for the unit, including its earlier listings |
| `priceCutCount`, `originalPrice`, `lastPriceChange` | mixed | Price cuts and first asking price on the current listing |
| `amenities`, `petPolicy`, `catsAllowed`, `dogsAllowed`, `maxDogWeightLbs` | mixed | Amenities and pet rules |
| `openHouses` | array | Upcoming open houses |
| `building` | object | Floors, units, pre-war, active rentals and sales, building amenities |
| `nearbySubways`, `nearbySchools` | array | Stations with lines and distance in miles; nearby schools |
| `photos`, `floorplans`, `description` | array / string | Media and listing text |
| `agents` | array | Agent name, phone, email, license (only with `includeAgentContacts`) |
| `changeType`, `previousPrice`, `priceChange`, `priceChangePct`, `previousStatus`, `monitorPriceCutCount`, `firstSeenAt`, `changeDetectedAt` | mixed | Monitor mode change details |
| `sourceUrl`, `scrapedAt`, `schemaVersion` | string / integer | Which pasted link the row came from, collection time, schema version |

The run's **RUN_SUMMARY** record shows, for each search, how many listings StreetEasy reports and how many were delivered, plus any locations or links that were skipped. If fewer listings arrive than expected, the log says so with the gap.

### 💰 Pricing

This Actor uses pay per event: you pay per listing saved, and in monitor mode only per change found. Full listing detail is included in that price. Empty searches and unchanged monitor listings cost nothing. There is no subscription.

Free plan runs are limited to 25 listings per search, 3 runs per day, and a 30-minute wait between runs.

### ⭐ Enjoying StreetEasy Scraper?

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:20px 24px 14px;background:#F1F5FA;border:1px solid #C9D7E6;border-left:5px solid #0F4C81;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">Saved you a morning of copying listings, rents and fees into a spreadsheet?</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other landlords, investors and NYC renters find it. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#0F4C81;border:1px solid #C9D7E6;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/streeteasy-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### 💡 Tips

- Comparing concession listings? Set **Price filter applies to** to net-effective rent, then sort by price.
- For rent comps, use **Past (rented or sold)** with a neighborhood and bedroom count. Each row includes the closing date and the unit's price history.
- Neighborhood searches include their sub-areas: "Upper East Side" also covers Lenox Hill, Yorkville and Carnegie Hill.
- Turn off **Include full listing details** for a lighter file when you only need prices and addresses.

### ❓ FAQ

**Do I need a StreetEasy account or API key?**
No. The Actor reads publicly listed information only. There is nothing to log into and no key to set up.

**How fresh is the data?**
Each run reads StreetEasy at the moment it runs. Schedule a monitor to get new listings and price cuts as often as you need.

**Can I get sold prices for NYC apartments?**
Past sales come with their closing date and the price events StreetEasy shows publicly for that unit. Some closing records do not disclose a price; those stay empty rather than being guessed.

**Does it show the no-fee status after the 2025 broker fee law?**
Yes. Each rental keeps the no-fee flag and, more usefully, the list of fees the landlord disclosed, with the amount and whether each one is required.

**Is it legal to scrape StreetEasy?**
The Actor collects only publicly visible listing information. Agent contact details are personal data, so they are off by default. Turn them on only if you have a legitimate reason to process them, and follow the privacy rules that apply to you.

### 🔗 Other actors

- [AppFolio Rental Listings Scraper](https://apify.com/getascraper/appfolio-scraper) ↗ - Rental listings with rent, beds, baths and photos from AppFolio property sites.
- [Propertyware rental listings monitor](https://apify.com/getascraper/propertyware-rentals-monitor) ↗ - Tracks Propertyware rental inventory and flags new, changed and removed listings.
- [CommercialRealEstate.com.au Scraper](https://apify.com/getascraper/commercialrealestate-au-scraper) ↗ - Australian commercial property listings with prices, agents and lease data.
- [Landflip Scraper](https://apify.com/getascraper/landflip-scraper) ↗ - US land listings with prices, acreage and broker leads.
- [Landmodo Scraper](https://apify.com/getascraper/landmodo-scraper) ↗ - Owner-financed US land with price, down payment, monthly payment and acreage.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/streeteasy-scraper/changelog.md

# Actor input Schema

## `mode` (type: `string`):

Search listings with the filters below, paste StreetEasy page links, or monitor a search for changes. Monitor mode is built for schedules: each run returns only new listings, price drops, price increases and status changes since the previous run, and unchanged listings are never charged.

## `listingType` (type: `string`):

Apartments for rent or homes for sale. Used by search and monitor modes.

## `status` (type: `string`):

Active = on the market now. In contract = a deal is pending. Past = already rented or sold, useful for rent and sale comps (each past row carries its full price history).

## `startUrls` (type: `array`):

Used in 'Paste StreetEasy URLs' mode. Paste any search page (its filters are kept), a listing page (one full row), or a building page (its units with the status chosen above). Each search or building link returns up to 'Max listings'. Links that cannot be read are listed in the run summary, never saved as empty rows.

## `locations` (type: `array`):

Type places the way people say them: 'Upper West Side', 'UWS', 'Williamsburg', 'LIC', 'Bed-Stuy', 'Brooklyn'. Each one is matched to StreetEasy's own neighborhood list, and anything that does not match is reported in the log with suggestions. Leave empty to search all of NYC and North Jersey.

## `minPrice` (type: `integer`):

Lowest monthly rent or asking price to include.

## `maxPrice` (type: `integer`):

Highest monthly rent or asking price to include.

## `priceBasis` (type: `string`):

Rentals only. Gross = the advertised monthly rent. Net effective = the rent averaged over the lease after free months, which is what a concession listing really costs. Every row carries both values in separate columns, so you never mix them up.

## `minBeds` (type: `integer`):

0 means studios are included.

## `maxBeds` (type: `integer`):

Set Min and Max to 0 for studios only.

## `minBaths` (type: `number`):

Minimum number of full bathrooms.

## `minSqft` (type: `integer`):

Many NYC listings do not state their size; those are left out when this is set.

## `noFeeOnly` (type: `boolean`):

Only rentals marked as no broker fee. Every row also lists the fees each landlord disclosed (application, move-in, amenity, pet and more), which tells you more than the yes/no flag.

## `furnishedOnly` (type: `boolean`):

Only furnished units. Useful for relocation, corporate housing and short stays; rows show the furnished rent when the landlord quotes one.

## `petsAllowed` (type: `boolean`):

Only listings that allow pets.

## `availableBy` (type: `string`):

Only rentals you can move into on or before this date. Listings with no stated move-in date are treated as available now.

## `sort` (type: `string`):

Order of results in search mode. Monitor mode always scans newest first.

## `maxItems` (type: `integer`):

Most listings to save per search (per link in URL mode). In monitor mode, this is how many of the newest matching listings are checked each run; set it above the search's total size to also catch listings that leave the market.

## `includeDetails` (type: `boolean`):

Price and status history, amenities, pet policy, open houses, building facts, nearby subway stations and schools, photos, floor plans and the description. Fetched together with the listing, so it does not slow the run down.

## `maxPhotos` (type: `integer`):

How many photo links to include per listing. 0 skips photos.

## `includeAgentContacts` (type: `boolean`):

Adds each listing agent's name, phone, email and license number. Off by default because this is personal data; turn it on only if you have a legitimate reason to process it. The listing's brokerage name is always included.

## `stateName` (type: `string`):

Monitor mode only. Runs that share a name share one memory of what was already seen, so a schedule, a saved task and an API call can all continue the same monitor. Leave empty and the monitor is identified by its filters instead.

## `proxyConfiguration` (type: `object`):

US residential proxies are the default and the most reliable choice. Change this only if you know you need a different connection.

## Actor input object example

```json
{
  "mode": "search",
  "listingType": "rentals",
  "status": "active",
  "startUrls": [
    {
      "url": "https://streeteasy.com/for-rent/upper-west-side/price:2500-4500%7Cbeds:1"
    }
  ],
  "locations": [
    "Manhattan"
  ],
  "priceBasis": "gross",
  "noFeeOnly": false,
  "furnishedOnly": false,
  "petsAllowed": false,
  "sort": "newest",
  "maxItems": 100,
  "includeDetails": true,
  "maxPhotos": 5,
  "includeAgentContacts": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `listings` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "search",
    "listingType": "rentals",
    "status": "active",
    "startUrls": [
        {
            "url": "https://streeteasy.com/for-rent/upper-west-side/price:2500-4500%7Cbeds:1"
        }
    ],
    "locations": [
        "Manhattan"
    ],
    "priceBasis": "gross",
    "noFeeOnly": false,
    "furnishedOnly": false,
    "petsAllowed": false,
    "sort": "newest",
    "maxItems": 100,
    "includeDetails": true,
    "maxPhotos": 5,
    "includeAgentContacts": false,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/streeteasy-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "listingType": "rentals",
    "status": "active",
    "startUrls": [{ "url": "https://streeteasy.com/for-rent/upper-west-side/price:2500-4500%7Cbeds:1" }],
    "locations": ["Manhattan"],
    "priceBasis": "gross",
    "noFeeOnly": False,
    "furnishedOnly": False,
    "petsAllowed": False,
    "sort": "newest",
    "maxItems": 100,
    "includeDetails": True,
    "maxPhotos": 5,
    "includeAgentContacts": False,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/streeteasy-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "listingType": "rentals",
  "status": "active",
  "startUrls": [
    {
      "url": "https://streeteasy.com/for-rent/upper-west-side/price:2500-4500%7Cbeds:1"
    }
  ],
  "locations": [
    "Manhattan"
  ],
  "priceBasis": "gross",
  "noFeeOnly": false,
  "furnishedOnly": false,
  "petsAllowed": false,
  "sort": "newest",
  "maxItems": 100,
  "includeDetails": true,
  "maxPhotos": 5,
  "includeAgentContacts": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call getascraper/streeteasy-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/streeteasy-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/5jn2hPp0LQj3g9c4J/builds/c0zdfv0NI8VQ0q99n/openapi.json
