Search Properties API
Search and filter property listings using various criteria including natural language queries, structured filters, and geospatial searches.
Endpoint
Authentication
Required. All API requests must be authenticated using your API key. See the Authentication section in the API Overview documentation.
Query Parameters
Parameter Type Description Default filterByOrganization boolean Filter results to only your organization's properties false includeBranding boolean Include organization branding information false includeAdCount boolean Include count of active ads for each property false includeAdCreatives boolean Include ad creative details (max 3 most recent) false
Request Body
The request body supports extensive filtering options. All fields are optional.
Natural Language Query
The query field supports:
-
Natural language searches
-
Automatic extraction of numeric values (bedrooms, bathrooms, price)
-
Property features (pool, garden, terrace, etc.)
-
Location matching
-
Reference number lookup
Structured Filters
Property Filters
Field Type Description Example query string Natural language or keyword search "luxury penthouse sea view" status string[] Filter by listing status ["active", "pending"] propertyType string[] Filter by property type ["apartment", "penthouse"] propertyCategory string[] Filter by category ["residential"]
Numeric Range Filters
Each range filter accepts min and/or max values:
Feature Filters
Geospatial Filters
Option 1: Circular Radius Search
Distance formats: "10km", "5mi", "2000m"
Option 2: Bounding Box (Map View)
Note: Bounding box takes precedence over location if both are provided.
Sorting
Available sort fields: price, bedrooms, bathrooms, livingArea, publishedAt, createdAt, updatedAt
Pagination
-
page: Page number (1-indexed), default:1 -
limit: Items per page (1-100), default:20for list view,1000for map view
Price Distribution
Request price histogram data for filters/charts:
Response
Success Response (200 OK)
Response Fields
Conditional Fields
These fields are only included based on query parameters:
-
agent: Included whenincludeAdCount=trueorincludeAdCreatives=true(if property has an agent) -
adCount: Included whenincludeAdCount=true -
adCreatives: Included whenincludeAdCreatives=true(max 3 most recent) -
organizationBranding: Included whenincludeBranding=true -
clerkOrganizationId: Included whenincludeBranding=true -
priceDistribution: Included whenpriceDistributionis in request body
Error Responses
401 Unauthorized
400 Bad Request
Example Requests
Basic Search - All Active Properties
Search with Natural Language Query
Advanced Filter Search
Map View Search (Bounding Box)
Organization's Properties with Branding
Search with Price Distribution
Code Examples
JavaScript/TypeScript
Python
PHP
Tips and Best Practices
-
Use Natural Language Queries: The
queryfield is powerful and can understand natural language like "3 bedroom villa with pool under 2 million" -
Optimize for Performance:
-
Only request
includeBrandingandincludeAdCreativeswhen needed -
Use pagination for large result sets
-
Use bounding box for map views (higher default limit)
-
-
Geospatial Search:
-
Bounding box is more efficient for map views
-
Location radius is better for "near me" searches
-
Distance can be specified in km, mi, or m
-
-
Filter by Organization:
-
Use
filterByOrganization=trueto show only your properties -
Omit it (or set to
false) to search all properties for public-facing listings
-
-
Price Distribution:
-
Useful for creating price range filters/sliders in your UI
-
The API automatically calculates appropriate intervals if not specified
-
-
Sorting:
-
Default sort is by
publishedAt DESC(newest first) -
Multiple sort fields are supported and applied in order
-