Listings Search

Use this endpoint to search listings using various parameters.As your user provides inputs, you simply pass those inputs to this endpoint to retrieve the listings that match their preferences in real-time.

For more information refer to The Searching, Filtering and Paginating Listings Guide .

Using this endpoint you can also request market statistics, dynamic map clusters and search images using AI.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
string

The address key of the property. Please see the address object of a listing to understand how the address key is constructed

agent
array of strings

Filters listings by agent name or agent ID, for example, John Doe. Supports multiple values, for example ?agent=john&agent=mary

agent
string

Aggregates values and counts for specified fields. Aggregates have many use cases, they're particularly useful for grouping and displaying acceptable values for fields that are used in filters. For more information refer to Using Aggregates To Determine Acceptable Values For Filters.

string

Unique aggregates values and counts for specified fields. Should be used specifically for fields containing coma-separated values. Aggregates have many use cases, they're particularly useful for grouping and displaying acceptable values for fields that are used in filters. For more information refer to Using Aggregates To Determine Acceptable Values For Filters.

boolean

If true, when both "aggregates" and "statistics" parameters are used, the requested statistics will be grouped by the requested aggregates.

amenities
array of strings

Example usage: ?amenities=Gym&amenities=Swimming Pool

amenities
string
enum

If set to "AND", listings must match all amenities values. If set to "OR", listings must match at least 1 amenities value. Default is "AND"

Allowed:
string

Filter by the geographical area of the listing (also referred to as region)

areaOrCity
array of strings

Filters listings where either the address.area or address.city field matches any of the provided values.

areaOrCity
balcony
array of strings

Filters listings by one or more values for balcony.

balcony
basement
array of strings

Filters listings by basement description using the supplied value.

basement
boardId
array of int32s

Filter by boardId. This is only required if your account has access to more than one MLS. You may specify one or more board IDs to filter by, if not specified, returns all boards that that account has access to be default.

boardId
string

Filter results by brokerage name

businessSubType
array of strings
businessSubType
businessType
array of strings
businessType
city
array of strings

Filter listing by one or more cities

city
cityOrDistrict
array of strings

Filters listings where either address.city or the address.district field matches any of the provided values.

cityOrDistrict
class
array of strings

The class of listing to filter the search results by. Allowed values: condo, residential, commercial. For backward compatibility, the following alias values are also allowed: CondoProperty, ResidentialProperty, CommercialProperty

class
boolean

If true, enables dynamic map clusters. For more information, refer to the Map Clustering Implementation Guide.

string

Specifies which listing fields to include in cluster responses. Use comma-separated values (e.g., ?clusterFields=listPrice,soldPrice). For images you can limit quantity with brackets (e.g., ?clusterFields=images[5] returns first 5 images).

int32

Use this parameter to limit the amount of clusters returned when "cluster" is set to true. Values can be between 1 and 200. This parameter can only be used if "cluster" is set to true.

int32

Controls the maximum cluster size for which detailed listing information is included in the response. By default, detailed listing data is only included when a cluster contains exactly 1 listing. Setting this parameter to a higher value (e.g., 5) will include a 'listings' array with full property details for any cluster containing that many or fewer listings. This reduces the need for additional API requests when users interact with small clusters. Values can be between 1 and 100. This parameter can only be used if "cluster" is set to true.

int32

Use this parameter to adjust the granularity of map clusters. A lower value aggregates listings into less clusters, a higher value aggregates listings into more clusters. Values can be between 0 and 29. This parameter can only be used if "cluster" is set to true.

boolean

If true, when both "cluster" is true and the "statistics" parameter is used, the statistics will be calculated separately for each cluster. This could be useful in scenarios where understanding data on a per-cluster basis is important, such as when analyzing distinct groups or segments within your data.

string
enum

If specified, changes the cover image to the specified feature. For more information, refer to Changing the Cover Image of Property Listings with AI-Powered CoverImage Parameter

string

Filter listings by den description.

string
enum

If not specified, returns both listings whose address may be displayed on the internet (Y) and whose address should not be displayed on the the internet (N)

Allowed values: Y, N

Allowed:
string
enum

Used to filter listings permitted for display on internet portals. "Y" indicates that the listing can be displayed, "N" indicates that it can not and may only be used for back office purposes.

Allowed:
string
enum

If not specified, returns both listings that may be displayed publicly (Y) and those that should be password protected (N)

Allowed values: Y, N

Allowed:
string

Filter by the geographical district of the listing

driveway
array of strings

Filters listings by one or more values for driveway.

driveway
exteriorConstruction
array of strings

Filters listings by one or more values for exteriorConstruction - note, matches details.exteriorConstruction1 and details.exteriorConstruction2 fields.

exteriorConstruction
string

Use if you want to limit the response to containing certain fields only. For example: fields?listPrice,soldPrice would limit the response to contain listPrice and soldPrice only. You can also specify the amount of images to return, for example if a listing has 40 images total and you specify fields=images[5] it will only return the first 5 images.

garage
array of strings

Filter listings by garage description.

garage
boolean

If true, only returns listings that have a listing agent assigned to them, if false, only returns listings that do not have a listing agent assigned to them. If not specified, returns both.

boolean

If not specified, returns both listings that have images (true) and listings that do not have images (false).

heating
array of strings

Filters listings by one or more values for heating.

heating
string
enum

Allows you to find listings that have either increased or decreased in price.

Allowed:
lastStatus
array of strings

Filters the last status of the listing. Multiple values may be used, ie: lastStatus=sus&lastStatus=sld&laststatus=exp
Allowed values: Sus, Exp, Sld, Ter, Dft, Lsd, Sc, Sce, Lc, Pc, Ext, New.

For more information on lastStatus meanings refer to lastStatus Definitions

lastStatus
string

Accepts a value for latitude. Must be used with radius parameter to return listings within a certain radius of a given latitude and longitude.

date

Filter listings by a specific date that the listings were added to the MLS. Date format: YYYY-MM-DD

boolean

If false, the listings object will be empty. Useful for speeding up responses when statistics and aggregates are requested and listings are not needed. Default is true.

locationId
array of strings

Filters listings by one or more values for locationId. For locations that have boundary data, the location boundary will be used to find listings that fall within the boundary. For locations that do not have boundary data, address components will be used to filter listings.

locationId
locker
array of strings

Filters listings by one or more values for locker.

locker
string

Accepts a value for longitude. Must be used with radius parameter to return listings within a certain radius of a given latitude and longitude.

json

Filters listings within a geoJSON polygon or multi-polygon boundary.

Example boundary:[[[-79.14121,43.79041],[-79.132627,43.773059],[-79.188932,43.886988],[-79.200605,43.877832],[-79.236654,43.869665],[-79.265836,43.860011],[-79.281972,43.856051],[-79.322828,43.84689],[-79.368146,43.839214],[-79.386021,43.836139],[-79.41486,43.838616],[-79.423787,43.836635],[-79.475285,43.82227],[-79.480092,43.813352],[-79.480778,43.803441],[-79.485585,43.79799],[-79.493825,43.794025],[-79.556996,43.779649],[-79.601628,43.761303],[-79.61611,43.758572],[-79.629934,43.750141],[-79.625471,43.728064],[-79.616888,43.713177],[-79.606245,43.695555],[-79.601095,43.685873],[-79.593885,43.681156],[-79.590109,43.672465],[-79.582212,43.671224],[-79.574659,43.670975],[-79.535177,43.58325],[-79.424627,43.619052],[-79.385488,43.602645],[-79.315451,43.612092],[-79.14121,43.79041]]].

For more information refer to the implementation guide: Filtering Listings Geo-Spatially Using the "map" Parameter

string
enum

When a multi-polygon is provided for the "map" parameter the default condition is "OR", meaning that it will return all listings that fall inside any of the polygons. This can be changed to "AND" in which case it will return listings that fall inside all of the polygons.

Allowed:
int32
int32

The maximum amount of half bathrooms to be used as a filter for this search.

int32

Filters properties based on the number of bedrooms that were part of the original floorplan, typically located above grade.

int32

Filters properties based on the number of additional bedrooms added beyond the original floorplan. These bedrooms can be located in areas like basements or attics and were not part of the initial construction.

int32

Filters properties by the total number of bedrooms, combining both numBedrooms and numBedroomsPlus. This provides a comprehensive look at all spaces being used as bedrooms.

date

Filter listings that have Close Date on or before the supplied value. Date format: YYYY-MM-DD

int32

Filter status=U listings that have been on the market for number of days less than or equal to the supplied value.

int32
date

Filter listings that were listed on or before the supplied value. Date format: YYYY-MM-DD

int32

Filter lot size by maximum square feet.

int32

If supplied, filters listings whose maintenance fee is <= the supplied value.

date

If specified, filters listings that have an open house on or before the supplied date. Date format: YYYY-MM-DD

int32
int32
date

Filters listings that have had a price change on or before the date specified.

date

Filters listings whose repliersUpdatedOn is the same or less than the supplied DateTime. repliersUpdatedOn is an internal timestamp, this may be useful for polling applications to identify listings that have updates in information that's exclusive of MLS updates. For example, if an estimate is recalculated since the estimate is not provided by the MLS.

date

Filter listings that were sold/leased on or before the supplied value. Date format: YYYY-MM-DD

int32

Filter listings whose sold price is <= the supplied value.

int32

This parameter enables users to filter results by specifying the maximum street number. It ensures that the street number of the listing is less than or equal to the value provided. This is helpful when users are interested in properties within a specific range of street numbers, excluding listings that fall outside this range.

int32

Filter listings whose stories are <= the supplied value.

int32

Filter listings whose square footage is <= the supplied value. Note - excludes listings where the sqft value is not supplied by the MLS.

int32

Filters listings whose annual tax amount is equal to or less than the supplied value.

date

Filter listings that became unavailable on or before the supplied value. Not all MLSes support this parameter.

date

Filter listings that were updated on or before the supplied value.

int32

Filter listings whose year built value is <= the supplied value. excludes listings where the year built value is not supplied by the MLS.

int32
int32

The minimum amount of half bathrooms to be used as a filter for this search.

int32

Filters properties based on the number of bedrooms that were part of the original floorplan, typically located above grade.

int32

Filters properties based on the number of additional bedrooms added beyond the original floorplan. These bedrooms can be located in areas like basements or attics and were not part of the initial construction.

int32

Filters properties by the total number of bedrooms, combining both numBedrooms and numBedroomsPlus. This provides a comprehensive look at all spaces being used as bedrooms.

date

Filter listings that have Close Date on or after the supplied value. Date format: YYYY-MM-DD

int32

Filter status=U listings that have been on the market for number of days greater than or equal to the supplied value.

int32

Filters listings that have >= the supplied value of garage spaces.

int32
date

Filter listings that were listed on or after the supplied value. Date format: YYYY-MM-DD

int32

Filter lot size by minimum square feet.

date

If specified, filters listings that have an open house on or after the supplied date. Date format: YYYY-MM-DD

int32
int32
date

Filters listings that have had a price change on or after the date specified.

date

Filters listings whose repliersUpdatedOn is the same or greater than the supplied DateTime. repliersUpdatedOn is an internal timestamp, this may be useful for polling applications to identify listings that have updates in information that's exclusive of MLS updates. For example, if an estimate is recalculated since the estimate is not provided by the MLS.

date

Filter listings that were sold/leased on or after the supplied value. Date format: YYYY-MM-DD

string

Filter listings whose sold price is >= the supplied value.

int32

Filter listings whose stories are >= the supplied value.

int32

Filter listings whose square footage is >= the supplied value. Note - excludes listings where the sqft value is not supplied by the MLS.

int32

This parameter allows users to filter results by specifying the minimum street number. It ensures that the street number of the listing is greater than or equal to the value provided. This is particularly useful for narrowing down search results to properties within a specific range of street numbers.

int32

Filters listings whose annual tax amount is equal to or greater than the supplied value.

date

Filter listings that became unavailable on or after the supplied value. Not all MLSes support this parameter. Date format: YYYY-MM-DD

date

Filter listings that were updated on or after the supplied value.

string

Filter listings whose year built value is >= the supplied value. excludes listings where the year built value is not supplied by the MLS.

mlsNumber
array of strings

Filter listings by one or more MLS numbers.

mlsNumber
neighborhood
array of strings

Filter by the geographical neighborhood that the listing is situated in. For example GET /listings?city=Vaughan&neighborhood=Sonoma Heights&neighborhood=Vellore Village

neighborhood
string

Filter listings by the office ID of the listing brokerage.

string
enum

If set to "AND", listings must match all supplied parameters. If set to "OR", listings must match at least 1 parameter. Default is "AND"

Allowed:
int32

If specified indexes a specific page in the results set. For example, if there are 1000 listings and 100 listings per page, if you'd like to view listings 101-201 you'd specify pageNum=2

propertyType
array of strings

Filters listings by one or more property types.

propertyType
propertyTypeOrStyle
array of strings

Filters listings where either details.propertyType or the details.style field matches any of the provided values.

propertyTypeOrStyle
int32

Accepts a value for radius in KM. Must be used with lat and long parameters to return listings within a certain radius of a given latitude and longitude.

int32

The amount of listings to return in each page of the results set.

string

One or more keywords may be specified to filter the results by. For more information refer to Full-Text Keyword Search Implementation Guide.

string

To be used in conjunction with the "search" parameter. If specified, limits the keyword search to specific fields. For example, if search=yonge and you want to limit the search to streetName you would specify searchFields=address.streetName

string
enum

The attribute that the listings will be sorted by. Note, distanceAsc and distanceDesc must be used in combination with lat, long and radius parameters. Default is updatedOnDesc

sqft
array of strings

Filters listings by one or more values for sqft.

sqft
string

Use this parameter to request statistics relevant to the listings returned in your search. For more information, refer to the Real-Time Market Statistics Implementation Guide

standardStatus
array of strings

Use this parameter to filter by Standard Status.

Allowed values: Active, Active Under Contract, Canceled, Closed, Coming Soon, Delete, Expired, Hold, Incomplete, Pending, Withdrawn

standardStatus
status
array of strings
Defaults to A

Set status=A to retrieve active listings. Set status=U to retrieve unavailable listings. Set status=A&status=U to retrieve both active and unavailable listings.

status
streetDirection
array of strings

Filter listings by one or more street directions

streetDirection
string

Filter by the street name of the listing (excluding the street suffix and direction, for example "Yonge")

string

Filter by the street number of the listing.

streetSuffix
array of strings

Filter listings by one or more street suffixes

streetSuffix
style
array of strings

Filter by the property style of the listing.

style
swimmingPool
array of strings

Filter listings by one of more values for swimmingPool.

swimmingPool
type
array of strings

Used to filter properties that are for sale or for lease. If not specified, will return listings of all types.

Allowed values:

sale, lease

type
unitNumber
array of strings

Filter by one or more unit numbers.

unitNumber
date

Filter listings by a specific date that the listings were last updated on the MLS. Date format: YYYY-MM-DD

waterSource
array of strings

Filter listings by one or more values for waterSource.

waterSource
date

Filters listings whose repliersUpdatedOn is a specific date. repliersUpdatedOn is an internal timestamp, this may be useful for polling applications to identify listings that have updates in information that's exclusive of MLS updates. For example, if an estimate is recalculated since the estimate is not provided by the MLS.

sewer
array of strings

Filters listings by one or more values for sewer.

sewer
state
array of strings

Filter by the address state of the listing, for example "NY"

state
string
enum

If not specified, returns both listings that are waterfront and those that are not. If "Y", returns listings that are waterfront, if "N" returns listings that are not waterfront or unspecified.

Allowed:
yearBuilt
array of strings

Filter listings by one or more values for yearBuilt.

yearBuilt
zip
array of strings

Filters listings by postal or zip code.

zip
string

Filter listings by zoning description.

Body Params
imageSearchItems
array of objects

An array of objects used with our AI Image Search feature. For more information refer to our AI Image Search Implementation Guide.

imageSearchItems
json

Filters listings within a geoJSON polygon or multi-polygon boundary.

Example boundary:[[[-79.14121,43.79041],[-79.132627,43.773059],[-79.188932,43.886988],[-79.200605,43.877832],[-79.236654,43.869665],[-79.265836,43.860011],[-79.281972,43.856051],[-79.322828,43.84689],[-79.368146,43.839214],[-79.386021,43.836139],[-79.41486,43.838616],[-79.423787,43.836635],[-79.475285,43.82227],[-79.480092,43.813352],[-79.480778,43.803441],[-79.485585,43.79799],[-79.493825,43.794025],[-79.556996,43.779649],[-79.601628,43.761303],[-79.61611,43.758572],[-79.629934,43.750141],[-79.625471,43.728064],[-79.616888,43.713177],[-79.606245,43.695555],[-79.601095,43.685873],[-79.593885,43.681156],[-79.590109,43.672465],[-79.582212,43.671224],[-79.574659,43.670975],[-79.535177,43.58325],[-79.424627,43.619052],[-79.385488,43.602645],[-79.315451,43.612092],[-79.14121,43.79041]]].

For more information refer to the implementation guide: Filtering Listings Geo-Spatially Using the "map" Parameter.

Response

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json