# Property24 — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and explore properties across South Africa through Property24's comprehensive marketplace, accessing detailed listings, suburb trends, and historical sold prices to inform your property decisions. Use location autocomplete to quickly find neighborhoods and compare market insights all in one place.

**Category:** Real Estate | **Website:** [property24.com/](https://property24.com/) | **Docs:** [parse.bot/marketplace/504111d2-356b-451a-ab10-84545a8f027f/property24-com-api](https://parse.bot/marketplace/504111d2-356b-451a-ab10-84545a8f027f/property24-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-property24-com-api-504111d2/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### autocomplete_location

Search for locations by name to get IDs for other endpoints. Returns suburbs, cities, provinces matching the query. Each result includes an id (used as area_id in other endpoints), name, type, and parentName. Results are filtered from a cached full location list based on substring match.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Location search term (e.g., 'rondebosch', 'sandton', 'constantia') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-property24-com-api-504111d2/autocomplete_location \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"<string>"}'
```

### get_property_detail

Get full details for a specific property listing including description, features, and images. Requires the listing_id from search results. Providing correct suburb, city, province, and area_id avoids 404 errors since the URL path includes these segments for routing.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `area_id` | string | No | Area ID from search results. Using the correct value avoids 404 errors. |
| `city` | string | No | City slug from search results. Using the correct value avoids 404 errors. |
| `listing_id` | string | Yes | Property listing ID from search_properties results (e.g., '117247482') |
| `province` | string | No | Province slug from search results. Using the correct value avoids 404 errors. |
| `search_type` | string | No | Type: 'for-sale' or 'to-rent' |
| `suburb` | string | No | Suburb slug from search results. Using the correct value avoids 404 errors. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-property24-com-api-504111d2/get_property_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area_id":"<string>","city":"<string>","listing_id":"<string>","province":"<string>","search_type":"<string>","suburb":"<string>"}'
```

### get_sold_prices

Get property values and street-level sold prices data for an area. Returns a list of streets that have property value data available, along with URLs to access per-street details.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `area_id` | string | No | Area ID from autocomplete_location results |
| `city` | string | No | City slug (e.g., 'cape-town') |
| `province` | string | No | Province slug (e.g., 'western-cape') |
| `suburb` | string | No | Suburb slug (e.g., 'rondebosch', 'constantia') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-property24-com-api-504111d2/get_sold_prices \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area_id":"<string>","city":"<string>","province":"<string>","suburb":"<string>"}'
```

### get_suburb_property_trends

Retrieve historical property price trends and statistics for a suburb. Returns Google Charts-format graph data including annual sales/listing trends, properties currently on sale, average prices by bedroom count, sold properties over time, and buyer/seller age demographics.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `area_id` | string | No | Area ID from autocomplete_location results |
| `city` | string | No | City slug (e.g., 'cape-town') |
| `suburb` | string | No | Suburb slug (e.g., 'rondebosch') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-property24-com-api-504111d2/get_suburb_property_trends \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area_id":"<string>","city":"<string>","suburb":"<string>"}'
```

### search_properties

Search properties for sale or to rent with filters. Returns paginated listing results for a given area. Each result includes ListingNumber, Price, Title, Location, Bedrooms, Bathrooms, Parking, and Url. Page size is approximately 20 results. The page param advances through results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `area_id` | string | No | Area ID from autocomplete_location results (e.g., '8682') |
| `bathrooms` | string | No | Minimum bathrooms filter (e.g., '1', '2') |
| `bedrooms` | string | No | Minimum bedrooms filter (e.g., '2', '3') |
| `city` | string | No | City slug (e.g., 'cape-town', 'johannesburg') |
| `max_price` | string | No | Maximum price filter (e.g., '5000000') |
| `min_price` | string | No | Minimum price filter (e.g., '1000000') |
| `page` | integer | No | Page number for pagination |
| `property_types` | string | No | Property type filter codes (e.g., '1' for house, '2' for apartment) |
| `province` | string | No | Province slug (e.g., 'western-cape', 'gauteng') |
| `search_type` | string | No | Type of search: 'for-sale' or 'to-rent' |
| `suburb` | string | No | Suburb slug (e.g., 'rondebosch', 'constantia') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-property24-com-api-504111d2/search_properties \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area_id":"<string>","bathrooms":"<string>","bedrooms":"<string>","city":"<string>","max_price":"<string>","min_price":"<string>","page":"<integer>","property_types":"<string>","province":"<string>","search_type":"<string>","suburb":"<string>"}'
```
