StreetEasy API endpoint
Searches active StreetEasy rentals in one or more areas with the public site's price, room, building, amenity, pet, open-house, tour, transit, and sort filters. Obtain valid area IDs from /streeteasy/areas.
/streeteasy/rentals/searchMCP tool: streeteasy_rentals_search
Query parameters:
area_id is required and repeatable. Each value must exist in the live /streeteasy/areas catalog. For multiple areas, repeat the parameter (for example, area_id=271&area_id=401). Up to 10 areas may be supplied.page is a 1-based page number; default 1.per_page is from 1 to 500; default 500.sort accepts default, newest, recently_updated, price_desc, price_asc, largest, or smallest; default default. These map to the first-party options Default (RECOMMENDED descending), Newest (LISTED_AT descending), Recently updated (INTERESTING_CHANGE_AT descending), Most expensive (PRICE descending), Least expensive (PRICE ascending), Largest (SQFT descending), and Smallest (SQFT ascending).min_price and max_price bound monthly rent. Values must be non-negative and the minimum cannot exceed the maximum.min_bedrooms and max_bedrooms bound bedrooms. Values must be non-negative; use 0 for studio and 4 for the UI's 4+ choice.min_bathrooms and max_bathrooms bound bathrooms. The current rental filter UI offers 1, 1.5, 2, and 3+ presets.min_sqft and max_sqft bound square footage. The current rental filter UI offers presets from 500 through 5000+ square feet.building_type may be repeated and accepts rental, condo, co-op, house, and multifamily. rental means the UI's “Rental Units” choice.amenity may be repeated for must-have amenities. Every listed value is required: washer_dryer, dishwasher, private_outdoor_space, central_air, furnished, fireplace, loft, city_view, garden_view, park_view, skyline_view, water_view, elevator, doorman, laundry, gym, parking, shared_outdoor_space, pool, pied_a_terre, childrens_playroom, smoke_free, and storage.optional_amenity may be repeated for nice-to-have amenities. Results may omit these preferences; it accepts the same 23 values listed for amenity.pets_allowed, open_house, tour_3d, and video_tour are booleans. Open house means within the next seven days.transit_line may be repeated and accepts 1, 2, 3, 4, 5, 6, 7, A, C, E, B, D, F, M, G, N, Q, R, W, J, Z, L, S, HBLR, and PATH.Results are always limited to rentalStatus=ACTIVE. search.criteria reports the applied public search filters. Each edge includes type, the edge kind (for example, OrganicRentalEdge or FeaturedRentalEdge). Nice-to-have amenities are ranking preferences, so they can leave totalCount unchanged while still appearing in criteria.
Example:
GET /api/v1/streeteasy/rentals/search?area_id=401&sort=newest&min_price=3000
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| area_id | array<integer> | Yes | StreetEasy area ID from /streeteasy/areas; repeat for multiple areas Repeat this query parameter for multiple values. | 271 | |
| page | integer | No | 1-based result page | ||
| per_page | integer | No | Results per page, 1-500 | ||
| sort | string | No | Result order Allowed values: default, newest, recently_updated, price_desc, price_asc, largest, smallest. | ||
| min_price | integer | No | Minimum monthly rent | ||
| max_price | integer | No | Maximum monthly rent | ||
| min_bedrooms | integer | No | Minimum bedrooms; zero means studio | ||
| max_bedrooms | integer | No | Maximum bedrooms | ||
| min_bathrooms | number | No | Minimum bathrooms | ||
| max_bathrooms | number | No | Maximum bathrooms | ||
| min_sqft | integer | No | Minimum square footage | ||
| max_sqft | integer | No | Maximum square footage | ||
| building_type | array<string> | No | Building type; repeat for multiple Allowed values: rental, condo, co-op, house, multifamily. Repeat this query parameter for multiple values. | ||
| amenity | array<string> | No | Required amenity; repeat for multiple Allowed values: washer_dryer, dishwasher, private_outdoor_space, central_air, furnished, fireplace, loft, city_view, garden_view, park_view, skyline_view, water_view, elevator, doorman, laundry, gym, parking, shared_outdoor_space, pool, pied_a_terre, childrens_playroom, smoke_free, storage. Repeat this query parameter for multiple values. | ||
| optional_amenity | array<string> | No | Preferred amenity; results may omit these. Repeat for multiple. Allowed values: washer_dryer, dishwasher, private_outdoor_space, central_air, furnished, fireplace, loft, city_view, garden_view, park_view, skyline_view, water_view, elevator, doorman, laundry, gym, parking, shared_outdoor_space, pool, pied_a_terre, childrens_playroom, smoke_free, storage. Repeat this query parameter for multiple values. | ||
| pets_allowed | boolean | No | Require listings that allow pets | ||
| open_house | boolean | No | Require an open house within the next seven days | ||
| tour_3d | boolean | No | Require a 3D tour | ||
| video_tour | boolean | No | Require a video tour | ||
| transit_line | array<string> | No | Nearby transit line; repeat for multiple Allowed values: 1, 2, 3, 4, 5, 6, 7, A, C, E, B, D, F, M, G, N, Q, R, W, J, Z, L, S, HBLR, PATH. Repeat this query parameter for multiple values. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/streeteasy/rentals/search?area_id=271&page=1&sort=default&building_type=rental&amenity=washer_dryer&optional_amenity=washer_dryer&pets_allowed=true&open_house=true&tour_3d=true&video_tour=true&transit_line=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"search": {
"criteria": "area:401|price:3000-|status:open"
},
"totalCount": 252,
"edges": [
{
"type": "OrganicRentalEdge",
"node": {
"id": "4786719",
"areaName": "Astoria",
"bedroomCount": 1,
"buildingType": "RENTAL",
"fullBathroomCount": 1,
"price": 3125,
"status": "ACTIVE",
"street": "26-19 2nd Street",
"unit": "401",
"urlPath": "/building/26_19-2-street-queens/401"
}
}
]
}
}Request schema
No body schema
Response schema
#/definitions/streeteasy.RentalSearch
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| edges | array | No | ||||
| edges[].node | streeteasy.RentalListing | No | ||||
| edges[].node.advertisedOnSe | boolean | No | ||||
| edges[].node.areaName | string | No | ||||
| edges[].node.bedroomCount | integer | No | ||||
| edges[].node.buildingType | string | No | ||||
| edges[].node.fullBathroomCount | integer | No | ||||
| edges[].node.furnished | boolean | No | ||||
| edges[].node.geoPoint | streeteasy.GeoPoint | No | ||||
| edges[].node.geoPoint.latitude | number | No | ||||
| edges[].node.geoPoint.longitude | number | No | ||||
| edges[].node.halfBathroomCount | integer | No | ||||
| edges[].node.id | string | No | ||||
| edges[].node.isPremiumHdpEnabled | boolean | No | ||||
| edges[].node.leadMedia | streeteasy.LeadMedia | No | ||||
| edges[].node.leadMedia.photo | streeteasy.Photo | No | ||||
| edges[].node.leadMedia.photo.key | string | No | ||||
| edges[].node.offMarketAt | string | No | ||||
| edges[].node.price | number | No | ||||
| edges[].node.saleType | string | No | ||||
| edges[].node.sourceGroupLabel | string | No | ||||
| edges[].node.status | string | No | ||||
| edges[].node.street | string | No | ||||
| edges[].node.tier | string | No | ||||
| edges[].node.totalMonthlyPrice | number | No | ||||
| edges[].node.unit | string | No | ||||
| edges[].node.urlPath | string | No | ||||
| edges[].type | string | No | ||||
| search | object | No | ||||
| search.criteria | string | No | ||||
| totalCount | integer | No |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/streeteasy/rentals/search?area_id=271&page=1&sort=default&building_type=rental&amenity=washer_dryer&optional_amenity=washer_dryer&pets_allowed=true&open_house=true&tour_3d=true&video_tour=true&transit_line=1" \
-H "x-api-key: $CRAWLORA_API_KEY"