---
title: "Search StreetEasy sale listings"
method: GET
path: "/streeteasy/sales/search"
tags: ["StreetEasy"]
---

# Search StreetEasy sale listings

`GET /streeteasy/sales/search`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/streeteasy/sales/search`
- Auth: API key in header `x-api-key`

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.

## Query parameters

- `area_id` integer[], required
- `sale_status` string[]
- `sale_type` string[]
- `page` integer
- `per_page` integer
- `sort` 'default' | 'newest' | 'recently_updated' | 'price_desc' | 'price_asc' | 'largest' | 'smallest'
- `min_price` integer
- `max_price` integer
- `min_bedrooms` integer
- `max_bedrooms` integer
- `min_bathrooms` number
- `max_bathrooms` number
- `min_sqft` integer
- `max_sqft` integer
- `min_maintenance` integer
- `max_maintenance` integer
- `min_monthly_taxes` integer
- `max_monthly_taxes` integer
- `min_price_per_sqft` integer
- `max_price_per_sqft` integer
- `include_unknown_price_per_sqft` boolean
- `min_year_built` integer
- `max_year_built` integer
- `prewar` boolean
- `development` 'pre_construction'
- `income_restricted` boolean
- `school_id` integer[]
- `zip_code` string
- `keywords` string
- `building_type` string[]
- `amenity` string[]
- `optional_amenity` string[]
- `pets_allowed` boolean
- `open_house` boolean
- `tour_3d` boolean
- `video_tour` boolean
- `transit_line` string[]

## Headers

- `x-api-key` string, required

## Response `200`

OK

- StreeteasySaleSearch
  - `edges` StreeteasySaleEdge[]
    - `node` StreeteasySaleListing
      - `advertisedOnSe` boolean
      - `areaName` string
      - `bedroomCount` integer
      - `buildingType` string
      - `fullBathroomCount` integer
      - `furnished` boolean
      - `geoPoint` StreeteasyGeoPoint
        - `latitude` number
        - `longitude` number
      - `id` string
      - `isPremiumHdpEnabled` boolean
      - `leadMedia` StreeteasyLeadMedia
        - `photo` StreeteasyPhoto
          - `key` string
      - `offMarketAt` string
      - `price` number
      - `saleType` string
      - `sourceGroupLabel` string
      - `street` string
      - `unit` string
      - `urlPath` string
    - `type` string
  - `search` object
    - `criteria` string
  - `totalCount` integer

## Other responses

- `400`: Bad Request
- `429`: Too Many Requests
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/028417aa35bb?raw)
