Market Search

Performs a property search using geometric shapes and advanced filtering criteria. This endpoint enables flexible market analysis by finding properties within custom-defined boundaries and applying multi-dimensional filters to refine results based on property characteristics.

NOTE: This new endpoint needs to be activated for your account and is charged at a higher rate. Please contact us to activate.

Core Functionality

The search combines geographic boundaries (defined by coordinate polygons) with property-specific filters such as construction year, building size, unit mix characteristics, and property type classifications. This allows for precise market analysis within irregular geographic areas like neighborhoods, custom market areas, or specific zones of interest.

Geographic Boundaries

Coordinate Format: Geographic boundaries are defined using GeoJSON-style coordinate arrays. The format follows the pattern: number[][][][] where:

  • Outer array: Contains multiple polygons (for complex shapes with holes or multiple areas)
  • Second level: Contains individual polygons
  • Third level: Contains coordinate rings (first ring is exterior, subsequent rings are holes)
  • Inner arrays: Individual coordinate pairs as [longitude, latitude]

Example coordinate structures:

1// Simple rectangular area in Manhattan
2[[[[-73.99, 40.75], [-73.98, 40.75], [-73.98, 40.76], [-73.99, 40.76], [-73.99, 40.75]]]]
3
4// Complex shape with a hole (e.g., excluding a park)
5[[[
6 [[-73.99, 40.75], [-73.97, 40.75], [-73.97, 40.77], [-73.99, 40.77], [-73.99, 40.75]], // Outer boundary
7 [[-73.985, 40.755], [-73.975, 40.755], [-73.975, 40.765], [-73.985, 40.765], [-73.985, 40.755]] // Hole
8]]]

Filtering System

Range Filters: Most numeric filters use a standardized range format with three properties:

  • min: Minimum value (inclusive). Use null to omit minimum constraint
  • max: Maximum value (inclusive). Use null to omit maximum constraint
  • allow_null: Whether to include properties with missing data for this field (default: false)

Property Type Filters: Boolean filters for different property classifications:

  • is_student: Student housing complexes (detected via amenities, naming patterns, pricing)
  • is_senior: Senior living communities
  • is_affordable: Properties with affordable housing units (uses LIHTC database and other sources)

Unit Mix Filters: Advanced filtering based on unit composition and pricing:

  • Filter by unit counts, square footage, rent levels, and rent per square foot
  • Available for overall property and by bedroom count (studio through 4-bedroom)
  • Uses historical market data to calculate averages

Performance & Limitations

Result Limits: Each request is capped at 2,500 properties to ensure optimal performance. If you hit this limit, consider:

  • Narrowing your geographic boundary
  • Adding more restrictive filters (year built, unit count, etc.)
  • Splitting large areas into multiple searches

Geographic Scope: Searches are optimized for metropolitan areas. Very large rural areas may return fewer relevant results due to lower property density.

Data Freshness: Property data is continuously updated, but some filters (especially unit mix) rely on historical market data that may have varying collection periods across markets.

Usage Recommendations

For Market Analysis:

  • Use generous geographic boundaries initially, then refine with property filters
  • Combine year built and unit count filters to focus on comparable property classes
  • Leverage unit mix filters to find properties with similar tenant profiles

For Competitive Analysis:

  • Start with broader search area around subject property
  • Use property type filters to exclude non-competing assets
  • Apply unit mix filters to match target demographics

For Site Selection:

  • Define custom geographic boundaries around areas of interest
  • Use year built filters to identify redevelopment opportunities or new construction
  • Apply unit mix filters to understand existing supply characteristics

Each request is limited to a maximum of 2,500 results. If you hit this limit, consider refining your filters to narrow the search and reduce the result count.

Headers

x-api-keystringRequired

Request

Market filter criteria including geographic boundaries and property filters
coordinateslist of lists of lists of lists of doublesRequired

Required. Geographic boundaries defining the search area using GeoJSON-style coordinate arrays. Supports complex polygons including shapes with holes and multiple disconnected areas.

Format: number[][][][] where:

  • Level 1: Array of polygons (enables multiple search areas or complex shapes)
  • Level 2: Array of coordinate rings within each polygon
  • Level 3: Array of coordinate pairs forming each ring
  • Level 4: Individual coordinates as [longitude, latitude]

Important: The first ring in each polygon defines the exterior boundary. Additional rings define holes within that boundary.

Coordinate System: Uses WGS84 (EPSG:4326) with longitude values between -180 to 180 and latitude values between -90 to 90.

year_builtobjectOptional

Filter properties by their construction year. Useful for targeting specific development eras, new construction, or properties due for major renovations.

Use Cases:

  • Target new construction: {min: 2020, max: null}
  • Exclude very old properties: {min: 1980, max: null}
  • Focus on specific era: {min: 2000, max: 2010}
  • Include properties with unknown build dates: {min: 1990, max: null, allow_null: true}
number_unitsobjectOptional

Filter properties by total number of residential units. Essential for ensuring comparable property sizes and investment scales.

Use Cases:

  • Large complexes only: {min: 200, max: null}
  • Mid-size properties: {min: 50, max: 200}
  • Small properties: {min: null, max: 50}
  • Include properties with unknown unit counts: {allow_null: true}
number_storiesobjectOptional

Filter properties by building height (number of floors/stories). Useful for architectural compatibility, zoning analysis, or construction type considerations.

Use Cases:

  • High-rise only: {min: 10, max: null}
  • Low-rise: {min: null, max: 4}
  • Mid-rise: {min: 5, max: 15}
  • Include unknown story counts: {allow_null: true}
is_studentboolean or nullOptional

Filter for student housing properties.

Use Cases:

  • true: Only include confirmed student housing
  • false: Exclude student housing from results
  • null: Include all properties regardless of student housing status
is_seniorboolean or nullOptional

Filter for senior living communities and age-restricted properties. Detection includes:

  • Age restrictions (55+, 62+, etc.) in property descriptions
  • Senior-specific amenities (accessibility features, medical facilities)

Use Cases:

  • true: Only include senior living properties
  • false: Exclude senior living from results
  • null: Include all properties regardless of senior designation
is_affordableboolean or nullOptional

Filter for properties containing affordable or subsidized housing units. Identification uses:

  • LIHTC (Low-Income Housing Tax Credit) property database
  • Rent-restricted unit indicators in listing data
  • Property names and descriptions mentioning affordable housing

Note: Properties may have mixed-income units (both market-rate and affordable). This filter identifies properties with any affordable component.

Use Cases:

  • true: Only include properties with affordable housing components
  • false: Exclude properties with affordable housing
  • null: Include all properties regardless of affordable housing status
unit_mixobjectOptional

Advanced filters for unit composition and pricing characteristics. Enables sophisticated market analysis based on unit mix, sizes, and rent levels across different unit types.

Structure: Contains filters for overall property and by bedroom count (studio through 4BR). Each category can filter by:

  • number_units: Count of units in this category
  • sqft: Average square footage for units in this category
  • rent: Average rent for units in this category
  • rent_per_sqft: Average rent per square foot for units in this category

Data Source: Based on historical market listing data, providing insight into actual market positioning rather than just current availability.

Use Cases:

  • Target luxury properties: {overall: {rent_per_sqft: {min: 4.0}}}
  • Find family-oriented properties: {three_bedroom: {number_units: {min: 20}}}
  • Exclude micro-unit buildings: {studio: {sqft: {min: 500}}}

Response

List of properties matching the specified search criteria, limited to 2,500 results
propertieslist of objects