# StreetEasy — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and browse NYC apartment rentals to find detailed property information including photos, amenities, pricing, and direct contact details for brokers and agents. Filter through available listings and access comprehensive rental data to help you discover your next home in New York City.

**Category:** Real Estate | **Website:** [streeteasy.com/for-rent/nyc/status:open%7Camenities:elevator,doorman%7Carea:163,115,107%7Cbeds:3%7Cprice:-30000](https://streeteasy.com/for-rent/nyc/status:open%7Camenities:elevator,doorman%7Carea:163,115,107%7Cbeds:3%7Cprice:-30000) | **Docs:** [parse.bot/marketplace/848b1aff-2d1a-45e4-8514-169865c42cc5/streeteasy-com-api](https://parse.bot/marketplace/848b1aff-2d1a-45e4-8514-169865c42cc5/streeteasy-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-streeteasy-com-api-848b1aff/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_listing_details

Get full details for a specific rental listing including description, photos, amenities, pricing, broker info, and property specs. Use the url_path from search_rentals results. Returns null for fields not available on the listing. Uses the RSC (React Server Components) endpoint for structured data extraction.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url_path` | string | Yes | Listing URL path from search_rentals results[*].url_path (e.g. '/building/565-broome-soho/s23b'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-streeteasy-com-api-848b1aff/get_listing_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url_path":"<string>"}'
```

### scan_listings

Server-side scan that searches listings then fetches each result's detail page to filter by description keywords or floor-plan availability — criteria that are absent from search cards. Runs the search (paginating internally), fetches up to max_listings detail pages concurrently, and returns only those matching at least one keyword (case-insensitive substring in the listing description) or having a floor plan when require_floor_plan is true. Costs one search request plus one detail request per scanned listing, capped at max_listings (maximum 100). Returns scanned_count, matched_count, descriptions_found_count, and compact per-match records. Empty matches (matched_count=0) are valid when no listing descriptions contain the keywords.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `amenities` | string | No | Comma-separated amenities filter for the search step. |
| `areas` | string | No | Comma-separated neighborhood names or numeric area IDs to search within. |
| `keywords` | string | No | Comma-separated keywords matched case-insensitively against listing descriptions (e.g. 'duplex,garden,terrace'). At least one of keywords or require_floor_plan=true must be provided. |
| `max_beds` | integer | No | Maximum number of bedrooms. Defaults to min_beds when omitted. |
| `max_listings` | integer | No | Maximum number of search results to scan for detail-page matches. Capped at 100. |
| `max_price` | integer | No | Maximum monthly rent in dollars. |
| `min_beds` | integer | No | Minimum number of bedrooms. |
| `min_price` | integer | No | Minimum monthly rent in dollars. |
| `require_floor_plan` | boolean | No | When true, listings with floor plan images are included in results regardless of keyword matches. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-streeteasy-com-api-848b1aff/scan_listings \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amenities":"<string>","areas":"<string>","keywords":"<string>","max_beds":"<integer>","max_listings":"<integer>","max_price":"<integer>","min_beds":"<integer>","min_price":"<integer>","require_floor_plan":"<boolean>"}'
```

### search_rentals

Search for rental listings on StreetEasy with filters for bedrooms, price range, neighborhoods, and amenities. Returns a paginated list of matching active rental listings including address, price, size, broker info, and geo-coordinates. Pagination is manual via the page parameter; each page contains up to per_page results. Listings without a known square footage return living_area_sqft as null.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `amenities` | string | No | Comma-separated amenities filter. Accepted values: elevator, doorman, laundry, gym, pool, parking, dishwasher, pets, outdoor_space, roof_deck. |
| `areas` | string | No | Comma-separated neighborhood names or numeric area IDs. Supported names: soho, chelsea, west chelsea, tribeca, greenwich village, east village, west village, lower east side, upper east side, upper west side, midtown, midtown east, midtown west, financial district, battery park city, flatiron, gramercy park, murray hill, hell's kitchen, harlem, williamsburg, brooklyn heights, park slope, dumbo, long island city. Numeric area IDs also accepted (e.g. '107,115,163'). |
| `max_beds` | integer | No | Maximum number of bedrooms. If omitted, defaults to the value of min_beds. |
| `max_price` | integer | No | Maximum monthly rent in dollars. |
| `min_beds` | integer | No | Minimum number of bedrooms. |
| `min_price` | integer | No | Minimum monthly rent in dollars. |
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Results per page. |
| `sort_by` | string | No | Sort attribute for results ordering. |
| `sort_direction` | string | No | Sort direction for results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-streeteasy-com-api-848b1aff/search_rentals \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amenities":"<string>","areas":"<string>","max_beds":"<integer>","max_price":"<integer>","min_beds":"<integer>","min_price":"<integer>","page":"<integer>","per_page":"<integer>","sort_by":"<string>","sort_direction":"<string>"}'
```
