Searches properties using GeoJSON polygon/multi-polygon geometry or point+radius. Supports distance sorting and optional filters.
Body·
required
Request model for POST /api/v1/properties/search. Supports polygon/multi-polygon geometry queries and point+radius queries.
- Type: null | stringcursor
Pagination cursor from previous response.
- Type: object · nullablefilters
Optional filters to apply alongside spatial query.
- Type: object · nullablenear
Center point for radius search. Mutually exclusive with within.
- Type: stringpage
_size Pattern: ^-?(?:0|[1-9]\d*)$Format: int32Number of results per page (1-500, default 50).
- Type: stringradius
Pattern: ^-?(?:0|[1-9]\d*)$Format: int32Search radius in meters. Required with near.
- Type: null | stringsort
Sort order: "distance" or "updated" (default). "distance" requires near or sort_origin.
- Type: object · nullablesort
_origin Explicit origin point for distance calculation. Required for sort=distance with within.
- nullablewithin
GeoJSON geometry object (Polygon or MultiPolygon only). Coordinates follow GeoJSON standard: [longitude, latitude]. Mutually exclusive with near.
Responses
- application/json
- application/problem+json
- application/problem+json
- application/problem+json
Request Example for post/api/v1/properties/search
curl https://app.propstreet.com/api/v1/properties/search \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"within": null,
"near": {
"longitude": "",
"latitude": ""
},
"radius": "",
"sort_origin": {
"longitude": "",
"latitude": ""
},
"filters": {
"country": null,
"categories": [
""
],
"tags": [
""
]
},
"sort": null,
"page_size": "",
"cursor": null
}'
{
"data": [
{
"id": "string",
"uri": null,
"name": "string",
"description": null,
"location": {
"latitude": "string",
"longitude": "string",
"country": null,
"locality": null
},
"categories": [
{
"type": "string",
"locationClass": null,
"yieldPercent": "string",
"rentalIncome": {
"value": 0,
"currency": "string",
"scale": "string"
},
"rentedArea": {
"value": "string",
"unit": "string"
},
"vacantArea": {
"value": "string",
"unit": "string"
},
"conversions": [
"string"
]
}
],
"price": {
"value": 0,
"currency": "string",
"scale": "string"
},
"operatingCosts": {
"value": 0,
"currency": "string",
"scale": "string"
},
"avgContractLengthYears": "string",
"yearBuilt": "string",
"parcelArea": {
"value": "string",
"unit": "string"
},
"zoning": {
"gfa": {
"value": "string",
"unit": "string"
},
"categories": [
"string"
]
},
"tenure": null,
"tags": [
"string"
],
"projects": [
{
"id": "string",
"uri": null,
"name": "string"
}
],
"externalRefs": [
{
"namespace": "string",
"id": "string"
}
],
"createdUtc": "2026-05-18T20:22:36.959Z",
"updatedUtc": "2026-05-18T20:22:36.959Z",
"deletedUtc": null,
"etag": "string",
"distance_meters": "string",
"changeType": null,
"changeOrigin": null
}
],
"page": {
"nextCursor": null,
"pageSize": "string",
"hasMore": true
}
}