privateproperty.co.za APIprivateproperty.co.za ↗
Search South African property listings for sale and rent via the Private Property API. Filter by location, price, bedrooms, and features. Get full listing details.
curl -X GET 'https://api.parse.bot/scraper/592f3ef0-16de-44df-bb76-d5fcfc5bbaeb/get_location_suggestions?query=Sandton' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for location suggestions for the autocomplete. Returns location names and IDs that can be used as the location_id parameter in search_properties.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search phrase for location (e.g. 'Sandton', 'Cape Town') |
{
"type": "object",
"fields": {
"data": "array of location suggestion objects with text, descriptorText, and itemId"
},
"sample": {
"data": [
{
"text": "Sandton",
"itemId": 34,
"descriptorText": "Johannesburg"
},
{
"text": "Sandton Central",
"itemId": 3184,
"descriptorText": "Sandton"
}
],
"status": "success"
}
}About the privateproperty.co.za API
The Private Property South Africa API gives developers access to property listings across South Africa through 3 endpoints. Use search_properties to query active for-sale and rental listings with filters for bedrooms, bathrooms, floor size, and property category, then call get_property_details with a listing URL to retrieve structured address data, photos, and a full feature breakdown for any individual property.
Location Resolution
Before running a property search, use get_location_suggestions with a plain-text query (e.g. 'Sandton' or 'Cape Town') to retrieve an array of location objects. Each object contains a human-readable text label, a descriptorText providing context (such as suburb or city), and an itemId. Pass that itemId as the location_id parameter in search_properties to scope results to a specific area.
Searching Listings
search_properties returns paginated results with each listing exposing url, address, locality, region, bedrooms, bathrooms, price, and title. You can filter by beds, baths, min_floor/max_floor (in square meters), category (e.g. 'commercial', 'farms', 'developments'), and features (e.g. 'SecurityPost', 'OnShow'). The response also includes total_on_page and the current page string, allowing straightforward pagination. No listing_type filter is required — the listing_type field in the response reflects what the search returned.
Property Details
Pass a full listing url from search_properties results into get_property_details to retrieve the complete record. The response includes a photo array of image objects with contentUrl fields, an address object broken into streetAddress, addressLocality, and addressRegion, a main_features array covering bedrooms, bathrooms, parking, and floor size, and a property_features object mapping feature names to their values (e.g. property type, erf size, levies). This structured breakdown suits display UIs, valuation tools, or data pipelines that need more than the summary fields from search.
- Build a property search portal filtered by suburb using location IDs from get_location_suggestions
- Aggregate rental listings by region and bedroom count for a South African rental market tracker
- Populate a property comparison tool with address, price, and floor size from search_properties
- Feed a CRM with structured listing data including photos and feature breakdowns from get_property_details
- Monitor 'OnShow' or 'BankAssistedSales' listings using the features filter in search_properties
- Extract property_features fields for valuation or investment analysis pipelines
- Build a map-based interface using addressLocality and addressRegion from property detail responses
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.