Search Sales
Search active NYC sale listings. Supports all rental filters plus
saleType (resale, sponsor, foreclosure).
Tier: Free+
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Comma-separated area IDs (e.g., 120,115). See /areas for the full list.
Comma-separated area IDs to exclude from results. Unlike areas, borough-level IDs are matched exactly (no expansion to their child neighborhoods), and unknown IDs are ignored rather than returning a 422.
Comma-separated building types. Valid values: RENTAL, CONDO, CO_OP, CONDOP, HOUSE, SINGLEFAMILY, TOWNHOUSE, TWOFAMILY, THREEFAMILY, FOURFAMILY, MULTI_FAMILY, MIXED_USE, HYBRID, COMMERCIAL, UNKNOWN. MULTIFAMILY (no underscore) is accepted as an input alias for MULTI_FAMILY; responses always return the canonical spelling.
Comma-separated building types to exclude. Same valid values as buildingType: RENTAL, CONDO, CO_OP, CONDOP, HOUSE, SINGLEFAMILY, TOWNHOUSE, TWOFAMILY, THREEFAMILY, FOURFAMILY, MULTI_FAMILY, MIXED_USE, HYBRID, COMMERCIAL, UNKNOWN.
Filter by sale type
RESALE, SPONSOR_UNIT, FORECLOSURE, RESTRICTED, AUCTION, SHORT, UNKNOWN Minimum days on market. Computed from listedAt, which is a feed-first-seen estimate until a listing is detail-scraped; see meta.warnings in the response and listedAtIsApproximate on individual listings.
x >= 0Maximum days on market. Same listedAt estimate caveat as minDaysOnMarket; see meta.warnings in the response.
x >= 0Only listings listed on or after this date (YYYY-MM-DD). Datetimes are accepted but normalized to the UTC calendar day; any time component is ignored. listedAt is a feed-first-seen estimate until a listing is detail-scraped; see meta.warnings in the response.
Only listings listed on or before this date (YYYY-MM-DD). Datetimes are accepted but normalized to the UTC calendar day; any time component is ignored. Same listedAt estimate caveat as listedAfter; see meta.warnings in the response.
Delta sync: only listings last confirmed in the active feed at or after this date (ISO 8601). Returns rows whose last_seen_at is on or after the value, useful for incrementally pulling what changed since your last crawl. Includes newly listed rows. Matching is by calendar day; any time component is ignored.
Filter to listings with a scheduled open house. This is a detail-only signal and may undercount while listing-detail backfills complete; see meta.warnings in the response. hasOpenHouse=false returns 400 INVALID_PARAMS for the same reason as noFee=false: Borough cannot yet distinguish "confirmed no open house" from "not yet detail-scraped." Omit the parameter to return listings regardless of open-house status.
Filter to listings with a 3D virtual tour. has3dTour=true matches only confirmed 3D-tour listings and may undercount while listing-detail backfills complete; see meta.warnings in the response. has3dTour=false returns 400 INVALID_PARAMS for the same reason as noFee=false. Omit the parameter to return listings regardless of 3D-tour status.
Minimum square footage. sqft is a detail-only field: this drops every listing whose square footage hasn't been measured yet (not yet detail-scraped), not just listings outside the range; see meta.warnings in the response.
x >= 1Maximum square footage. Same detail-only coverage caveat as minSqft; see meta.warnings in the response.
x >= 1Filter by listing-level pet flag or building-level pet policy
Comma-separated amenity codes. Listings must match all requested amenities across listing- and building-level data. Listing-level amenities are detail-only and regex-derived from the listing description, so an amenity the description never mentions reads as absent, not merely unconfirmed; matches may undercount while listing-detail backfills complete. See meta.warnings in the response.
Maximum total monthly cost where maintenance, common charges, and property tax fields are populated. Falls back to price when those fields are unknown.
x >= 0Minimum transit score (0-100) based on proximity and stop density within 400 meters. Scores are strict; 80+ means exceptional transit clusters, not ordinary good subway access.
0 <= x <= 100Require an FCC public-data provider match with fiber technology. Coverage may be exact-building or Census-block level depending on imported area.
Require an FCC public-data provider match with at least this advertised download speed in Mbps. Coverage may be exact-building or Census-block level depending on imported area.
x >= 0Sort attribute. sort=LISTED_AT orders by listedAt, which is a feed-first-seen estimate until a listing is detail-scraped; this can interleave estimated and authoritative dates, ranking an undetailed listing as newer than it really is. See meta.warnings in the response.
RECOMMENDED, PRICE, LISTED_AT Sort direction
ASC, DESC Page number (1-indexed)
x >= 1Results per page. Maximum depends on tier: Free=10, Starter=50, Pro/Business=500.
1 <= x <= 500