realcommercial APIrealcommercial.com.au ↗
Search Australian commercial property listings, fetch full property details, and retrieve market news via the realcommercial.com.au API.
What is the realcommercial API?
This API covers three endpoints that expose commercial property data from realcommercial.com.au: search listings for sale, rent, sold, or leased across Australia; retrieve full details on a specific property by ID; and fetch the latest commercial real estate news articles. The search_properties endpoint alone returns over a dozen fields per listing, including price, floor area, agency details, and photos.
curl -X GET 'https://api.parse.bot/scraper/f2569d8e-6018-4bdc-8682-a2774ff50d32/search_properties?page=1&channel=buy&sort_by=price-asc&keywords=warehouse&locations=%5B%22Sydney%2C+NSW+2000%22%5D&max_price=5000000&min_price=100000&page_size=20&car_spaces=1&tenure_types=tenanted&max_floor_area=500&min_floor_area=50&property_types=offices' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace realcommercial-com-au-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: RealCommercial SDK — search, drill-down, news."""
from parse_apis.realcommercial_australia_api import (
RealCommercial, Channel, Sort, PropertyType, PropertyNotFound,
)
client = RealCommercial()
# Search for office properties in Sydney, sorted by price
for listing in client.listingsummaries.search(
channel=Channel.BUY,
locations=["Sydney, NSW 2000"],
property_types=PropertyType.OFFICES,
sort_by=Sort.PRICE_ASC,
limit=3,
):
print(listing.title, listing.address.suburb, listing.days_active)
# Drill into the first result for full details
summary = client.listingsummaries.search(
channel=Channel.BUY, locations=["Melbourne, VIC 3000"], limit=1
).first()
if summary:
detail = summary.details()
print(detail.title, detail.description[:80], detail.days_active)
for attr in detail.attributes[:3]:
print(attr["label"], attr["value"])
# Fetch a listing directly by ID
try:
prop = client.listings.get(property_id="505097084")
print(prop.title, prop.address.suburb, prop.last_updated_at)
except PropertyNotFound as exc:
print(f"Property not found: {exc}")
# Browse latest commercial property news
for article in client.newsarticles.list(limit=3):
print(article.title, article.date)
print("exercised: listingsummaries.search / summary.details / listings.get / newsarticles.list")
Search for commercial properties for sale, rent, sold, or leased across Australia. Returns a paginated list of listings with details like title, address, price, property types, floor area, and agent/agency information. Results come from server-rendered search pages with approximately 10 listings per page.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| channel | string | Channel to search in. |
| sort_by | string | Sort order for results. |
| keywords | string | Keywords to search for in listings. |
| locations | array | List of locations as strings in format 'Suburb, STATE POSTCODE' e.g. ["Sydney, NSW 2000"]. First location is used for search URL. |
| max_price | integer | Maximum price filter. |
| min_price | integer | Minimum price filter. |
| page_size | integer | Requested results per page (site typically returns 10 per page regardless). |
| car_spaces | integer | Minimum number of car spaces. |
| tenure_types | array | List of tenure types to filter by: tenanted, vacant. |
| max_floor_area | integer | Maximum floor area in m2. |
| min_floor_area | integer | Minimum floor area in m2. |
| property_types | array | List of property types to filter by: offices, retail, industrial-warehouse, land-development, showrooms-bulky-goods, hotel-motel-leisure, medical-consulting, farming-rural, other. |
{
"type": "object",
"fields": {
"listings": "array of listing objects with id, title, address, details, attributes, agencies, photos, branding, daysActive",
"availableResults": "total number of matching listings across all pages",
"resolvedLocations": "array of resolved location objects from the search"
},
"sample": {
"data": {
"listings": [
{
"id": "505053812",
"title": "PREMIUM PROFESSIONAL SUITE WITH SPECTACULAR VIEWS OVERLOOKING SYDNEY HARBOUR!",
"photos": [
{
"alt": "Image 1",
"url": "https://i1.au.reastatic.net/712x480-smart/image0.jpg"
}
],
"address": {
"state": "NSW",
"suburb": "Sydney",
"postcode": "2000",
"streetAddress": "William Bland Centre, 903/229 Macquarie Street",
"suburbAddress": "Sydney, NSW 2000"
},
"details": {
"price": "Guide $1,500,000",
"streetAddress": "William Bland Centre, 903/229 Macquarie Street",
"suburbAddress": "Sydney, NSW 2000"
},
"agencies": [
{
"id": "NQFSYD",
"name": "Noonan Property - Sydney"
}
],
"attributes": {
"area": "77 m²",
"propertyTypes": [
"Offices",
"Medical/Consulting",
"Retail"
]
},
"daysActive": 126
}
],
"availableResults": 314,
"resolvedLocations": [
{
"state": "NSW",
"location": "Sydney, NSW 2000",
"precision": "SUBURB"
}
]
},
"status": "success"
}
}About the realcommercial API
Search and Filter Commercial Listings
The search_properties endpoint accepts POST requests with parameters including channel (buy, rent, sold, or leased), locations (suburb, state, or postcode strings such as "Sydney, NSW 2000"), min_price, max_price, sort_by, keywords, page, and page_size. The response returns a listings array where each object contains an id, title, address, details, attributes, agencies, photos, and branding. Two additional top-level fields — availableResults and resolvedLocations — tell you how many total records matched and which locations were resolved from your input.
Full Property Details
The get_property_details endpoint takes a single required property_id (a numeric string like "505097084", obtainable from search_properties results). The listing object in the response extends what search returns: it adds description, map coordinates, nearby places, similar listings, propertyTypeOb, and full agency contact details. This makes it suitable for building property profile pages or enriching records from a search pass.
Commercial Property News
The get_news endpoint requires no inputs and returns a news_items array. Each article object includes title, url, description, label, date, smallImage, and largeImage. This is useful for surfacing market context alongside listing data — for example, displaying recent industry news on a commercial property dashboard.
The realcommercial API is a managed, monitored endpoint for realcommercial.com.au — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when realcommercial.com.au changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official realcommercial.com.au API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a commercial property search tool filtered by suburb, price range, and listing type (buy/rent/sold/leased)
- Aggregate floor area and price data from search results to benchmark commercial rents across Australian postcodes
- Generate property detail pages using the full description, map coordinates, and agency contact information from get_property_details
- Track newly listed or recently leased commercial properties by sorting with date-desc and polling periodically
- Display nearby places and similar listings alongside a property profile to support site-selection workflows
- Surface commercial real estate news headlines and images in a market-intelligence dashboard using get_news
- Compile agency and branding data from listings to analyze which agencies dominate specific commercial submarkets
| 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 | 100 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.
Does realcommercial.com.au offer an official developer API?+
What location formats does search_properties accept?+
locations parameter takes an array of strings combining suburb, state, and postcode — for example, ["Sydney, NSW 2000", "Melbourne, VIC 3000"]. The response includes a resolvedLocations field showing exactly how each input was interpreted, which helps diagnose mismatches when a location string doesn't return expected results.Does the API return contact phone numbers or email addresses for agents?+
get_property_details endpoint returns full agency contact details within the agencies field on the listing object. The search_properties endpoint returns agency and branding information but at a summary level — detailed contact fields are exposed in the property detail response.Does the API cover residential property listings or auction results?+
Is there a way to retrieve all listings without paginating manually?+
search_properties response includes an availableResults field with the total count of matching records. You control pagination through the page and page_size parameters. There is no bulk-export or cursor-based endpoint — iterating pages is the supported pattern. The maximum page_size and any per-request caps are reflected at the plan level on the API listing.