Endpoint Playground
Searches public sale listings with location, status, sale type, price, bedroom, bathroom, square-footage, carrying cost, building age, school, ZIP, keyword, building type, amenity, pet, open-house, virtual-tour, transit, and sort filters. Obtain area IDs from /streeteasy/areas. When sale_status is omitted, active, preview, and coming_soon listings are included.
curl 'https://api.crawlora.net/api/v1/streeteasy/sales/search?area_id=100&sort=default&development=pre_construction' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| area_id | array | Yes | 100 | StreetEasy area ID from /streeteasy/areas; repeat for multiple areas |
| sale_status | array | No | Sale status; repeat for multiple. Defaults to active, preview, and coming_soon. | |
| sale_type | array | No | Sale type; repeat for multiple. | |
| page | integer | No | 1-based result page | |
| per_page | integer | No | Results per page, 1-500 | |
| sort | string | No | default | default, newest, recently_updated, price_desc, price_asc, largest, or smallest |
| min_price | integer | No | Minimum sale price | |
| max_price | integer | No | Maximum sale price | |
| 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 | |
| min_maintenance | integer | No | Minimum monthly maintenance fee | |
| max_maintenance | integer | No | Maximum monthly maintenance fee | |
| min_monthly_taxes | integer | No | Minimum monthly property taxes | |
| max_monthly_taxes | integer | No | Maximum monthly property taxes | |
| min_price_per_sqft | integer | No | Minimum price per square foot | |
| max_price_per_sqft | integer | No | Maximum price per square foot | |
| include_unknown_price_per_sqft | boolean | No | Include listings with unknown price per square foot | |
| min_year_built | integer | No | Minimum building year built | |
| max_year_built | integer | No | Maximum building year built | |
| prewar | boolean | No | Set true to select prewar buildings | |
| development | string | No | pre_construction | New development filter |
| income_restricted | boolean | No | Set true to select income-restricted homes | |
| school_id | array | No | StreetEasy school ID selected by the public search UI; repeat for multiple schools | |
| zip_code | string | No | Five-digit ZIP code | |
| keywords | string | No | Listing-description keyword filter | |
| building_type | array | No | Building type | |
| amenity | array | No | Amenity filter; repeat for multiple | |
| optional_amenity | array | No | Nice-to-have amenity; results may omit these. Repeat for multiple. | |
| pets_allowed | boolean | No | Require pets allowed | |
| open_house | boolean | No | Require 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 | No | Nearby transit line; repeat for multiple |
{
"code": 200,
"msg": "OK",
"data": {
"search": {
"criteria": "area:201,401|status:open"
},
"totalCount": 302,
"edges": [
{
"type": "OrganicSaleEdge",
"node": {
"id": "1234567",
"areaName": "Astoria",
"bedroomCount": 2,
"buildingType": "CONDO",
"fullBathroomCount": 3,
"price": 1195000,
"saleType": "RESALE",
"street": "30-55 Example Avenue",
"unit": "5A",
"urlPath": "/building/example/5a"
}
}
]
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.