You need to ship a working “properties list” integration for Australian real estate this week. By the end of this article, you’ll query a live properties feed for a target region, page through results, and drill into a specific listing’s details—using one API key from Zyla API Hub and production-ready curl and Python examples you can paste into your codebase.
What this API does and when to use it
The Australia Realty API provides programmatic access to Australian property listings data. It supports:
- Fetching a paginated list of properties for a specific location and channel (e.g., sold), with sorting.
- Retrieving detailed information for a single property by its ID.
- Autocomplete suggestions for regions and suburbs to help users search correctly.
Developers use it to power search pages, analytics dashboards for sold inventory, lead capture widgets, or internal tools that need consistent, structured real-estate data—without scraping or juggling multiple sources.
Getting started on Zyla API Hub
Open the API’s page on Zyla API Hub and subscribe to get your key. The marketplace uses a subscription + quota model (not pay-per-call). For first use, you can start a 7-day trial or 50 requests depending on current availability. Check the API page for current access options and pricing.
Start 7-day trial on Australia Realty API
All requests require an Authorization header: Authorization: Bearer YOUR_API_KEY
Endpoints you’ll use
1) Get Properties List
List properties with options and filters. Use this to retrieve inventory for a given area, channel, and page. If the page field returns a value of 50, this is the highest pagination number available.
Method: GET
URL: https://zylalabs.com/api/1476/australia-realty-api/1221/get-properties-list
Request params (only those documented):
- pageSize (string, optional): 50
- channel (string, required): sold
- searchLocation (string, required): Sunshine Coast, QLD
- searchLocationSubtext (string, required): Region
- type (string, required): region
- page (string, optional): 2
- sortType (string, optional): new-desc
Important: You must indicate the format in the URL of the images. Supported sizes include 170x32, 160x30, 114x21, 1536x800. For example: https://i3.au.reastatic.n…
Official curl example (copy-paste ready):
curl -s -X GET "https://zylalabs.com/api/1476/australia-realty-api/1221/get-properties-list?pageSize=50&channel=sold&searchLocation=Sunshine+Coast%2C+QLD&searchLocationSubtext=Region&type=region&page=2&sortType=new-desc" \
-H "Authorization: Bearer YOUR_API_KEY"
Official sample JSON response:
{
"prettyUrl": "/sold/in-sunshine+coast%2c+qld/list-2?activeSort=list-date",
"totalResultsCount": 162134,
"resolvedLocalities": [
{
"display": "Sunshine Coast, QLD",
"precision": "region",
"atlasId": "9280a900-d539-4e0c-9385-9590315c4cb5",
"state": "QLD"
}
],
"resolvedQuery": {
"localities": [
{
"locality": "Sunshine Coast",
"subdivision": "QLD",
"searchLocation": "Sunshine Coast, QLD"
}
],
"sortType": "new-desc",
"channel": "sold",
"pageSize": "30",
"page": "2",
"filters": {
"surroundingSuburbs": true
}
},
"tieredResults": [
{
"tier": 1,
"count": 30,
"results": [
{
"prettyUrl": "property-unit-qld-mudjimba-122053054",
"standard": true,
"midtier": false,
"lister": {
"mobilePhoneNumber": "0402972763",
"website": "http://www.bluemoonproperty.com.au",
"phoneNumber": "0402972763",
"powerProfile": false,
"jobTitle": "Sales Consultant",
"name": "Beatrice Borns",
"mainPhoto": {
"server": "https://i3.au.reastatic.net",
"name": "main photo",
"uri": "/ca783e0f628a14ff14b48ea8e53a7432f9c5b8f5676004cc2f8fecbfdc27ca95/main.jpg"
},
"id": "1405426",
"email": "[email protected]"
},
"featured": false,
"signature": false,
"constructionStatus": "established",
"channel": "sold",
"description": "Why pay a fortune for holidays when you can own your own piece of Resort-style living on the beautiful Sunshine Coast.<br/>Take use of the pool, 2 tennis courts, putting green, BBQ Area by the River and separate play ground for the children.<br/><br/>This 3 bedroom Townhouse is situated in the Pet Friendly gated and secure Resort just a short 2km from the beautiful Mudjimba Beach.<br/>The Resort is surrounded by a canal on two sides, ideal for fishing or boating,…"
What you’ll typically use from this payload:
- prettyUrl: a canonical route describing the query.
- totalResultsCount: total matches for your search (useful for pagination UI).
- resolvedLocalities and resolvedQuery: confirmation of the parsed location and query settings.
- tieredResults: contains result sets; read results[] for individual listings with fields like prettyUrl, lister, channel, description, and main photo parts.
For photos, combine server + uri (and ensure the required format appears in the URL path where applicable). For example, replace or ensure a segment like 1536x800 before the image path when the API response or provider URL format requires it.
Python example to fetch and parse the list
This sample calls the same endpoint and extracts a few fields you’re likely to display.
import os
import requests
API_KEY = os.getenv("ZYLALABS_API_KEY", "YOUR_API_KEY")
url = "https://zylalabs.com/api/1476/australia-realty-api/1221/get-properties-list"
params = {
"pageSize": "50",
"channel": "sold",
"searchLocation": "Sunshine Coast, QLD",
"searchLocationSubtext": "Region",
"type": "region",
"page": "2",
"sortType": "new-desc"
}
headers = {"Authorization": f"Bearer {API_KEY}"}
resp = requests.get(url, params=params, headers=headers, timeout=30)
resp.raise_for_status()
data = resp.json()
print("Query:", data.get("prettyUrl"))
print("Total results:", data.get("totalResultsCount"))
tiered = data.get("tieredResults", [])
if tiered:
first_tier = tiered[0]
results = first_tier.get("results", [])
for i, item in enumerate(results[:5], 1):
pretty = item.get("prettyUrl")
channel = item.get("channel")
lister = item.get("lister", {})
name = lister.get("name")
photo = lister.get("mainPhoto", {})
# Construct image URL if both parts exist
image_url = None
if photo.get("server") and photo.get("uri"):
image_url = f'{photo["server"]}{photo["uri"]}'
# If required by your UI, ensure a supported size segment like 1536x800 appears in the URL.
print(f"{i}. {pretty} | {channel} | {name} | photo={image_url}")
Pagination notes
- Use the page parameter to paginate. The API may indicate that a page value of 50 is the highest pagination number available. Treat that as your cap.
- Show totalResultsCount in your UI to set expectations and compute the last page.
- Cache page responses with stable filters to avoid re-fetching the same content during quick next/prev navigation.
2) Get Property Details
Fetch detailed information for a single property by its ID. Use this after a user selects a listing from search results.
Method: GET
URL: https://zylalabs.com/api/1476/australia-realty-api/1222/get-property-details
Request params (only those documented):
- id (number, required): 444325280
Important: You must indicate the format in the URL of the images (e.g., 170x32, 160x30, 114x21, 1536x800). Example: https://i3.au.reastatic.net/170x32/.../image.jpg
Official curl example:
Official sample JSON response (truncated in the source; observe documented fields and format):
{"totalResultsCount":1,"results":[{"prettyUrl":"property-unit-qld-east+brisbane-444325280","standard":false,"midtier":false,"lister":{"mobilePhoneNumber":"0415648373","website":"http://www.housemark.com.au","phoneNumber":"0415648373","powerProfile":false,"name":"Isabella Palinkas","mainPhoto":{"server":"https://i3.au.reastatic.net","name":"main photo","uri":"/10082ec1487f85957c4f7062944636ee7600a93bdaf34549cb5f2705c1250f13/main.jpg"},"id":"3706692","email":"[email protected]"},"featured":false,"signature":true,"channel":"rent","description":"Welcome to 4/8 Longlands Street, East Brisbane! Just moments from The Gabba and surrounded by an array of cafés, shops, transport options, and major amenities, this home is ideal for those seeking easy inner-city living.<br/><br/>Recently transformed with a complete interior refresh, this beautifully updated unit is ready for its new owners to enjoy. Featuring fresh paint throughout, a stunning brand-new kitchen, renovated bathroom and laundry, and new flooring throughout, every detail has been thoughtfully modernised. Combining comfort, functionality and modern appeal, this is an outstanding opportunity for those seeking…"}
Use cases:
- Show a property detail page after a user clicks a result.
- Enrich saved favorites with up-to-date fields like lister contact and main photo URL.
- Generate an internal detail view in your ops tooling.
3) Autocomplete
Returns suggestions to facilitate correct location entry (e.g., regions, suburbs). This helps users form valid queries before you call the list endpoint.
Method: GET
URL: https://zylalabs.com/api/1476/australia-realty-api/5339/autocomplete
Request params: The endpoint requires specifying a term to be autocompleted, but request parameters are not documented here. Do not add or guess keys; call the endpoint with authentication as shown below and consult the API page for usage guidance.
Official curl example:
Official sample JSON response (selected fields):
{"_embedded":{"suggestions":[{"display":{"subtext":"Region","text":"Sydney CBD, NSW"},"id":"6102b706-7216-4cde-b780-45cba0514ac5","source":{"atlasId":"6102b706-7216-4cde-b780-45cba0514ac5","name":"Sydney CBD","state":"NSW"},"type":"region"},{"display":{"subtext":"Suburb","text":"Sydney, NSW 2000"},"id":"99b291a3-bfcf-4bf9-bbaa-bdb9d89abc24-2000","source":{"atlasId":"99b291a3-bfcf-4bf9-bbaa-bdb9d89abc24","name":"Sydney","postcode":"2000","state":"NSW"},"type":"suburb"},{"display":{"subtext":"Suburb","text":"Sydney Olympic Park, NSW 2127"},"id":"19174a2e-3f53-4be4-8477-443d47249f20-2127","source":{"atlasId":"19174a2e-3f53-4be4-8477-443d47249f20","name":"Sydney Olympic Park","postcode":"2127","state":"NSW"},"type":"suburb"},{"display":{"subtext":"Region","text":"Western Sydney, NSW"},"id":"637c2a12-9141-4e1d-adfa-30bd200a49a4","source":{"atlasId":"637c2a12-9141-4e1d-adfa-30bd200a49a4","name":"Western Sydney","state":"NSW"},"type":"region"},{"display":{"subtext":"Region","text":"South Western Sydney, NSW"},"id":"0eadb86e-6345-43b6-ab6d-18e17c779817","source":{"atlasId":"0eadb86e-6345-43b6-ab6d-18e17c779817","name":"South Western Sydney","state":"NSW"},"type":"region"},{"display":{"subt…
Use these suggestion objects to populate your search box and constrain valid values. Respect the type (e.g., region vs suburb) to set searchLocationSubtext and type correctly in the list request.
Practical implementation tips
- Authentication: Always pass Authorization: Bearer YOUR_API_KEY. Do not add other auth parameters.
- Location correctness: Use the Autocomplete endpoint to determine a valid combination of searchLocation, searchLocationSubtext, and type (e.g., “Sunshine Coast, QLD”, “Region”, “region”).
- Pagination: Drive your UI with totalResultsCount and the page parameter. When the provided page reaches 50, treat it as the last page.
- Images: Construct the image URL using server + uri. Ensure the URL includes a supported size segment such as 1536x800 when you display a large image, or 170x32 for badges/logos as required by your UI. The API notes: “You must indicate the format in the URL of the images.”
- Sorting: Use sortType=new-desc for newest-first ordering as shown in the example. If you need a different order, consult the API page for valid sort options.
- Caching: Cache list pages and property detail responses for a short interval if your UI expects repeated navigation or back/forward usage. This lowers latency and your quota usage.
- Error handling: On non-2xx, surface the failure message in your logs and present a user-friendly message. Retry idempotent GETs as appropriate in your environment.
End-to-end workflow example
- Autocomplete: Query suggestions to guide the user to a valid location entity (e.g., Region vs Suburb).
- Search: Call Get Properties List with channel, searchLocation, searchLocationSubtext, type, and optional page and sortType.
- Selection: When a listing is clicked, call Get Property Details with id to fetch enriched fields and updated media.
- Display: Build image URLs with the correct format segment and render lister information (name, phone, email) as available.
- Paginate: Load additional pages until you reach the last available page (up to page 50).
Call the API from AI agents via MCP
Every API on Zyla API Hub can also be called from MCP-compatible clients (e.g., Claude Code, Cursor, Windsurf) through the MCP endpoint. Point your MCP tool to https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY and route requests to the Australia Realty API’s Hub URLs documented above. This lets you wire prompts or automations that fetch property lists or details as part of a coding session or an agent workflow.
Real-world use cases you can ship this week
- Sold properties heatmap for a region: use Get Properties List with channel=sold and map points by lister or description keywords. Paginate and aggregate counts.
- Search widget with location autocomplete: on input, call Autocomplete to suggest regions/suburbs, then feed those values into Get Properties List.
- Detail view drawer: when a user clicks a row in a table, call Get Property Details by id and hydrate a side drawer with lister contacts and a hero image.
- Internal QA tool: validate that images resolve and have the correct size segment (e.g., 1536x800) before publishing or emailing a marketing flyer.
Security and deployment considerations
- Server-side calls: Keep the API key on the server. If you must call from frontend, proxy through your backend and enforce your own rate and domain checks.
- Observability: Log query parameters (excluding secrets) and response status codes to track failures and retriable errors.
- Resilience: Implement backoff for transient network errors and cache the last good page when a new fetch fails.
- Quotas: The marketplace uses subscription + quota. Monitor your usage to avoid interruptions; the API page shows the current plan and available trial (7-day trial or 50 requests depending on availability).
Putting it all together quickly
For a minimal integration, wire a controller that:
- Validates channel, searchLocation, searchLocationSubtext, type.
- Calls the list endpoint with page and sortType defaults (e.g., page=1, sortType=new-desc) and returns a subset of fields your UI needs.
- Exposes a details route that calls the property details endpoint by id and returns the full JSON or a curated view.
- Normalizes image URLs to include the correct format segment before sending them to the frontend.
Common pitfalls to avoid
- Missing image size segment: if your UI needs a specific dimension, ensure the URL contains one of the supported formats (170x32, 160x30, 114x21, 1536x800).
- Incorrect location tuple: searchLocation must align with searchLocationSubtext and type (e.g., “Sunshine Coast, QLD” + “Region” + “region”). Use Autocomplete to guide users.
- Assuming unlimited pages: cap at page 50 if indicated by the page field, and reflect that in your pagination controls.
FAQ
How do I authenticate requests?
Pass the header Authorization: Bearer YOUR_API_KEY on every request to the Hub URLs.
How do I find valid location values?
Use the Autocomplete endpoint to retrieve suggestions. Then set searchLocation, searchLocationSubtext, and type from the selected suggestion (e.g., text → searchLocation, subtext → searchLocationSubtext, type → type).
What’s the maximum page I can request?
If the page field returns a value of 50, this is the highest pagination number available. Treat it as the last page.
How do I build image URLs?
Concatenate server + uri from the response. Ensure the URL includes one of the required format segments, such as 1536x800 for large images or 170x32 for smaller assets, per your UI needs.
Is there a free plan?
The marketplace uses subscription + quota (not pay-per-call). For first use, there’s a 7-day trial or 50 requests depending on availability. Check the API page for current access options and pricing.
Ready to implement your properties list and details flow? Create your account, get an API key, and start your 7-day trial here: Start 7-day trial on Australia Realty API. You’ll be able to call the endpoints shown above and ship a working integration today.
Official API response
{
"prettyUrl": "/sold/in-sunshine+coast%2c+qld/list-2?activeSort=list-date",
"totalResultsCount": 162134,
"resolvedLocalities": [
{
"display": "Sunshine Coast, QLD",
"precision": "region",
"atlasId": "9280a900-d539-4e0c-9385-9590315c4cb5",
"state": "QLD"
}
],
"resolvedQuery": {
"localities": [
{
"locality": "Sunshine Coast",
"subdivision": "QLD",
"searchLocation": "Sunshine Coast, QLD"
}
],
"sortType": "new-desc",
"channel": "sold",
"pageSize": "30",
"page": "2",
"filters": {
"surroundingSuburbs": true
}
},
"tieredResults": [
{
"tier": 1,
"count": 30,
"results": [
{
"prettyUrl": "property-unit-qld-mudjimba-122053054",
"standard": true,
"midtier": false,
"lister": {
"mobilePhoneNumber": "0402972763",
"website": "http://www.bluemoonproperty.com.au",
"phoneNumber": "0402972763",
"powerProfile": false,
"jobTitle": "Sales Consultant",
"name": "Beatrice Borns",
"mainPhoto": {
"server": "https://i3.au.reastatic.net",
"name": "main photo",
"uri": "/ca783e0f628a14ff14b48ea8e53a7432f9c5b8f5676004cc2f8fecbfdc27ca95/main.jpg"
},
"id": "1405426",
"email": "[email protected]"
},
"featured": false,
"signature": false,
"constructionStatus": "established",
"channel": "sold",
"description": "Why pay a fortune for holidays when you can own your own piece of Resort-style living on the beautiful Sunshine Coast.<br/>Take use of the pool, 2 tennis courts, putting green, BBQ Area by the River and separate play ground for the children.<br/><br/>This 3 bedroom Townhouse is situated in the Pet Friendly gated and secure Resort just a short 2km from the beautiful Mudjimba Beach.<br/>The Resort is surrounded by a canal on two sides, ideal for fishing or boating,…
Official API response
{
"prettyUrl": "/sold/in-sunshine+coast%2c+qld/list-2?activeSort=list-date",
"totalResultsCount": 162134,
"resolvedLocalities": [
{
"display": "Sunshine Coast, QLD",
"precision": "region",
"atlasId": "9280a900-d539-4e0c-9385-9590315c4cb5",
"state": "QLD"
}
],
"resolvedQuery": {
"localities": [
{
"locality": "Sunshine Coast",
"subdivision": "QLD",
"searchLocation": "Sunshine Coast, QLD"
}
],
"sortType": "new-desc",
"channel": "sold",
"pageSize": "30",
"page": "2",
"filters": {
"surroundingSuburbs": true
}
},
"tieredResults": [
{
"tier": 1,
"count": 30,
"results": [
{
"prettyUrl": "property-unit-qld-mudjimba-122053054",
"standard": true,
"midtier": false,
"lister": {
"mobilePhoneNumber": "0402972763",
"website": "http://www.bluemoonproperty.com.au",
"phoneNumber": "0402972763",
"powerProfile": false,
"jobTitle": "Sales Consultant",
"name": "Beatrice Borns",
"mainPhoto": {
"server": "https://i3.au.reastatic.net",
"name": "main photo",
"uri": "/ca783e0f628a14ff14b48ea8e53a7432f9c5b8f5676004cc2f8fecbfdc27ca95/main.jpg"
},
"id": "1405426",
"email": "[email protected]"
},
"featured": false,
"signature": false,
"constructionStatus": "established",
"channel": "sold",
"description": "Why pay a fortune for holidays when you can own your own piece of Resort-style living on the beautiful Sunshine Coast.<br/>Take use of the pool, 2 tennis courts, putting green, BBQ Area by the River and separate play ground for the children.<br/><br/>This 3 bedroom Townhouse is situated in the Pet Friendly gated and secure Resort just a short 2km from the beautiful Mudjimba Beach.<br/>The Resort is surrounded by a canal on two sides, ideal for fishing or boating,…