# 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 for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/credits/property24/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## 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/credits/property24/autocomplete-location \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/property24/get-property-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/property24/get-sold-prices \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/property24/get-suburb-property-trends \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/property24/search-properties \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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>"}'
```

## Next steps

- [All wrapped API providers](https://paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://paywithlocus.com/agent/index.md): every Locus agent page.