Create alert
Create a new alert. The criteria tree combines and/or groups with sets of property filters.
Authorization
apiKey Value for the X-API-KEY header parameter.
In: header
Request Body
application/json
The new Alert resource
Response Body
curl -X POST "https://example.com/alerts" \ -H "Content-Type: application/json" \ -d '{ "name": "2-bedroom rentals in Paris under €2,000/month", "enabled": true, "criteria": { "property": { "type": { "in": [ "FLAT" ] }, "transaction": { "type": "RENT" }, "pricing": { "displayed": { "lte": 2000 } }, "locations": { "countryCode": "FR", "in": { "uniqueCodes": [ "75056" ] } }, "unit": { "bedrooms": { "gte": 2 } } } }, "notificationConfig": { "rules": [ { "eventType": "NEW_MATCH" }, { "eventType": "PRICE_CHANGE", "variationPercent": [ { "lte": -5 }, { "gte": 5 } ] } ] } }'{ "name": "2-bedroom apartments in Paris", "enabled": true, "criteria": { "and": [ { "property": { "type": { "in": [ "FLAT", "HOUSE" ] }, "transaction": { "type": "SELL" }, "pricing": { "displayed": { "gte": 200000, "lte": 450000 } }, "unit": { "bedrooms": { "gte": 2 } } } }, { "or": [ { "property": { "locations": { "countryCode": "FR", "in": { "uniqueCodes": [ "75056" ] } } } }, { "property": { "locations": { "countryCode": "FR", "in": { "uniqueCodes": [ "69123" ] } } } } ] } ] }, "notificationConfig": { "rules": [ { "eventType": "PRICE_CHANGE", "scope": "PROPERTY", "variationPercent": [ { "gte": -5, "lte": -3 } ] } ] }, "eventDestination": "https://example.com/", "signingKey": "whsec_abc123...", "signingKeyHint": "b75b1473", "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "createdAt": "2026-01-15T10:30:00+00:00", "updatedAt": "2026-05-20T14:45:00+00:00"}Search transactions POST
Search closed real-estate transactions with optional filters (date, property type, price, location ids, and a GeoJSON polygon), cursor-paginated. Overlapping records from different sources are reconciled on the fly: a duplicate is suppressed and merged into the surviving row, which then carries a matched block. Filters are sent in the request body rather than the query string so a large geoshape polygon is not constrained by URL length.
Delete an alert DELETE
Delete an alert