Skip to content
Scrappa Get API key
Property.com.au API 1 credit/request

Property.com.au Listing Detail API Documentation

GET https://scrappa.co/api/property-com-au/listing?url=https%3A%2F%2Fwww.property.com.au%2Fnsw%2Fbondi-beach-2026%2Flamrock-ave%2F8-56-pid-11646090%2F

Scrappa's GET /api/property-com-au/listing returns the full public record of one Australian property: address, features, images, value estimates, sales and rental timeline, market data and nearby places.

Input

Pass url with a www.property.com.au property link, or path with its path. Take path from a search result, or listing_path from an address autocomplete result. Any other host returns 422. A property id alone is not enough, because the link needs the state and suburb.

What you get

  • pid, url, path, address, status (For sale, For rent, Off market), property_type, beds, baths, cars, land_size, latitude, longitude, description, features.
  • images[] with phone and desktop sizes in JPG and WebP, and image_counts for photos and floorplans.
  • value_estimates: sale value and weekly rental estimate with range and confidence. null when none exists.
  • timeline[]: every listing, auction, sale and rental event with price, date text, links and the agency and agent shown for it.
  • agents[]: the agents and agencies named in the timeline. Property.com.au has no agent or agency profile page, so this is all there is.
  • market_insights, market_trends, similar_properties, neighbouring_properties, nearby_schools, nearby_childcare, internet_availability, planning_summary, breadcrumbs and json_ld.

What it does not have

Strata, council and water fees are not on the site, so there are no fee fields. Nothing is returned as 0 for them.

Not found

An unknown property returns 404 (not_found), never billed.

Property.com.au Listing Detail API Documentation 1 credit/request

Endpoint

Request preview
GET
https://scrappa.co/api/property-com-au/listing?url=https%3A%2F%2Fwww.property.com.au%2Fnsw%2Fbondi-beach-2026%2Flamrock-ave%2F8-56-pid-11646090%2F
Auth header
x-api-key
Cost
1 credit/request
Response preview
200 OK
{
    "success": true,
    "data": {
        "pid": 11646090,
        "url": "https://www.property.com.au/nsw/bondi-beach-2026/lamrock-ave/8-56-pid-11646090/",
        "path": "/nsw/bondi-beach-2026/lamrock-ave/8-56-pid-11646090/",
        "address": {
            "full": "8/56 Lamrock Avenue, Bondi Beach, NSW 2026",
            "suburb": "Bondi Beach",
            "state": "NSW",
            "postcode": "2026"
        },
        "status": "Off market",
        "property_type": "Flat apartment",
...

Parameters

Start with the required fields, then add optional filters only when your use case needs them.

Runnable path

This endpoint has no required query parameters.

2 optional filters available.

url string Optional
Open example

A property.com.au property link, for example https://www.property.com.au/nsw/bondi-beach-2026/lamrock-ave/8-56-pid-11646090/.

Example value https://www.property.com.au/nsw/bondi-beach-2026/lamrock-ave/8-56-pid-11646090/
path string Optional

The path of a search result or the listing_path of an address autocomplete result. Use instead of url.

Example value example

Request Examples

PHP
<?php

$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => "https://scrappa.co/api/property-com-au/listing?url=https%3A%2F%2Fwww.property.com.au%2Fnsw%2Fbondi-beach-2026%2Flamrock-ave%2F8-56-pid-11646090%2F",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => [
        "x-api-key: YOUR_API_KEY_HERE"
    ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error #:" . $err;
} else {
    echo $response;
}
PHP
<?php

use Illuminate\Support\Facades\Http;

$response = Http::timeout(30)
    ->withHeaders(['x-api-key' => 'YOUR_API_KEY_HERE'])
    ->get('https://scrappa.co/api/property-com-au/listing?url=https%3A%2F%2Fwww.property.com.au%2Fnsw%2Fbondi-beach-2026%2Flamrock-ave%2F8-56-pid-11646090%2F');

if ($response->successful()) {
    echo $response->body();
} else {
    echo "Error: " . $response->status();
}
JavaScript
const options = {
    method: 'GET',
    headers: {
        'x-api-key': 'YOUR_API_KEY_HERE'
    }
};

fetch('https://scrappa.co/api/property-com-au/listing?url=https%3A%2F%2Fwww.property.com.au%2Fnsw%2Fbondi-beach-2026%2Flamrock-ave%2F8-56-pid-11646090%2F', options)
    .then(response => {
        if (!response.ok) {
            throw new Error(`HTTP error! status: ${response.status}`);
        }
        return response.text();
    })
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));
JavaScript
const axios = require('axios');

const options = {
    method: 'GET',
    url: 'https://scrappa.co/api/property-com-au/listing?url=https%3A%2F%2Fwww.property.com.au%2Fnsw%2Fbondi-beach-2026%2Flamrock-ave%2F8-56-pid-11646090%2F',
    headers: {
        x-api-key: 'YOUR_API_KEY_HERE',
    }
};

try {
    const response = await axios(options);
    console.log(response.data);
} catch (error) {
    console.error('Error:', error.message);
}
Ruby
require 'net/http'
require 'uri'

uri = URI.parse("https://scrappa.co/api/property-com-au/listing?url=https%3A%2F%2Fwww.property.com.au%2Fnsw%2Fbondi-beach-2026%2Flamrock-ave%2F8-56-pid-11646090%2F")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == 'https'

request = Net::HTTP::Get.new(uri.request_uri)
request['x-api-key'] = 'YOUR_API_KEY_HERE'

begin
    response = http.request(request)
    puts response.body
rescue => e
    puts "Error: #{e.message}"
end
Python
import http.client
import json

conn = http.client.HTTPSConnection("scrappa.co")

headers = {
    'x-api-key': 'YOUR_API_KEY_HERE',
}

try:
    conn.request("GET", "/api/property-com-au/listing?url=https%3A%2F%2Fwww.property.com.au%2Fnsw%2Fbondi-beach-2026%2Flamrock-ave%2F8-56-pid-11646090%2F", headers=headers)
    res = conn.getresponse()
    data = res.read()
    print(data.decode("utf-8"))
except Exception as e:
    print(f"Error: {e}")
finally:
    conn.close()
Python
import requests

headers = {
    'x-api-key': 'YOUR_API_KEY_HERE',
}

try:
    response = requests.get('https://scrappa.co/api/property-com-au/listing?url=https%3A%2F%2Fwww.property.com.au%2Fnsw%2Fbondi-beach-2026%2Flamrock-ave%2F8-56-pid-11646090%2F', headers=headers)
    response.raise_for_status()
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"Error: {e}")
Java
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;

public class ApiExample {
    public static void main(String[] args) {
        OkHttpClient client = new OkHttpClient();

        Request request = new Request.Builder()
            .url("https://scrappa.co/api/property-com-au/listing?url=https%3A%2F%2Fwww.property.com.au%2Fnsw%2Fbondi-beach-2026%2Flamrock-ave%2F8-56-pid-11646090%2F")
        .addHeader("x-api-key", "YOUR_API_KEY_HERE")
            .build();

        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) {
                System.out.println(response.body().string());
            } else {
                System.out.println("Error: " + response.code());
            }
        } catch (IOException e) {
            System.out.println("Error: " + e.getMessage());
        }
    }
}
Go
package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {
    client := &http.Client{}
    req, err := http.NewRequest("GET", "https://scrappa.co/api/property-com-au/listing?url=https%3A%2F%2Fwww.property.com.au%2Fnsw%2Fbondi-beach-2026%2Flamrock-ave%2F8-56-pid-11646090%2F", nil)
    if err != nil {
        fmt.Println("Error creating request:", err)
        return
    }
    req.Header.Set("x-api-key", "YOUR_API_KEY_HERE")

    resp, err := client.Do(req)
    if err != nil {
        fmt.Println("Error making request:", err)
        return
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println("Error reading response:", err)
        return
    }

    fmt.Println(string(body))
}
Terminal
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/property-com-au/listing?url=https%3A%2F%2Fwww.property.com.au%2Fnsw%2Fbondi-beach-2026%2Flamrock-ave%2F8-56-pid-11646090%2F"
C#
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        using var client = new HttpClient();
        client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY_HERE");

        try
        {
            var response = await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "https://scrappa.co/api/property-com-au/listing?url=https%3A%2F%2Fwww.property.com.au%2Fnsw%2Fbondi-beach-2026%2Flamrock-ave%2F8-56-pid-11646090%2F"));
            var content = await response.Content.ReadAsStringAsync();
            Console.WriteLine(content);
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}
TypeScript
import axios from 'axios';

async function run(): Promise<void> {
    try {
        const response = await axios({
            method: 'GET',
            url: 'https://scrappa.co/api/property-com-au/listing?url=https%3A%2F%2Fwww.property.com.au%2Fnsw%2Fbondi-beach-2026%2Flamrock-ave%2F8-56-pid-11646090%2F',
            headers: {
        'x-api-key': 'YOUR_API_KEY_HERE',
            },
        });

        console.log(response.data);
    } catch (error) {
        console.error('Error:', error);
    }
}

void run();
RUST
use reqwest::Client;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new();

    let response = client
        .get("https://scrappa.co/api/property-com-au/listing?url=https%3A%2F%2Fwww.property.com.au%2Fnsw%2Fbondi-beach-2026%2Flamrock-ave%2F8-56-pid-11646090%2F")
        .header("x-api-key", "YOUR_API_KEY_HERE")
        .send()
        .await?;

    println!("{}", response.text().await?);

    Ok(())
}

Response Schema

Example response fields are illustrative; inspect the JSON before integrating.

Example response fields

Scan these fields before integrating.

success data meta
JSON Response
200 OK
{
    "success": true,
    "data": {
        "pid": 11646090,
        "url": "https://www.property.com.au/nsw/bondi-beach-2026/lamrock-ave/8-56-pid-11646090/",
        "path": "/nsw/bondi-beach-2026/lamrock-ave/8-56-pid-11646090/",
        "address": {
            "full": "8/56 Lamrock Avenue, Bondi Beach, NSW 2026",
            "suburb": "Bondi Beach",
            "state": "NSW",
            "postcode": "2026"
        },
        "status": "Off market",
        "property_type": "Flat apartment",
        "beds": 2,
        "baths": 1,
        "cars": null,
        "land_size": {
            "value": 525,
            "unit": "m2",
            "text": "525m\u00b2"
        },
        "latitude": -33.89082563,
        "longitude": 151.27014554,
        "description": "8/56 Lamrock Avenue is a 2 bedroom, 1 bathroom flat apartment in Bondi Beach. The property was sold on the 24th of October, 2026 for $1,300,000.",
        "features": [
            {
                "name": "Floorboards",
                "value": null
            },
            {
                "name": "Mobile coverage",
                "value": "5G"
            }
        ],
        "images": [
            {
                "caption": "Sep 2026",
                "alt": "Property at 8/56 Lamrock Avenue, Bondi Beach NSW 2026",
                "phone_jpg": "https://i2.au.reastatic.net/1200x900-fit,progressive/653bfe33923b1fdb74d1e1c7f77daa1ff2c14c644a1206b0798d7110748ab1af/main.jpg",
                "phone_webp": "https://i2.au.reastatic.net/1200x900-fit,format=webp,progressive/653bfe33923b1fdb74d1e1c7f77daa1ff2c14c644a1206b0798d7110748ab1af/main.jpg",
                "desktop_jpg": "https://i2.au.reastatic.net/2560x1920-fit,progressive/653bfe33923b1fdb74d1e1c7f77daa1ff2c14c644a1206b0798d7110748ab1af/main.jpg",
                "desktop_webp": "https://i2.au.reastatic.net/2560x1920-fit,format=webp,progressive/653bfe33923b1fdb74d1e1c7f77daa1ff2c14c644a1206b0798d7110748ab1af/main.jpg"
            }
        ],
        "image_counts": {
            "images": 9,
            "floorplans": 1
        },
        "value_estimates": null,
        "timeline": [
            {
                "group": "2026",
                "type": "Sold",
                "title": "$1,300,000",
                "price_numeric": 1300000,
                "details": "24 Oct 2026 by Belle Property - Bondi Junction",
                "caption": null,
                "image_counts": [],
                "links": [
                    {
                        "title": "Realestate.com.au",
                        "url": "https://www.realestate.com.au/sold/property-apartment-nsw-bondi+beach-152423404"
                    }
                ],
                "agent": null,
                "agency": null
            },
            {
                "group": "1992",
                "type": "Sold",
                "title": "$153,000",
                "price_numeric": 153000,
                "details": "Sold 21 Mar 1992",
                "caption": null,
                "image_counts": [],
                "links": [],
                "agent": null,
                "agency": null
            }
        ],
        "agents": [],
        "market_insights": null,
        "market_trends": {
            "title": "Other similar properties recently sold",
            "properties": []
        },
        "similar_properties": [],
        "nearby_schools": [
            {
                "group": "Nearby primary schools",
                "name": "Bondi Beach Public School",
                "in_catchment": true,
                "facts": {
                    "grades": "K-6",
                    "sector": "Government",
                    "no_students": "413",
                    "distance": "0.64km"
                },
                "links": [
                    {
                        "title": "School website",
                        "url": "https://bondibeach-p.schools.nsw.gov.au/"
                    }
                ]
            }
        ],
        "nearby_childcare": [],
        "neighbouring_properties": [],
        "internet_availability": {
            "summary": "8/56 Lamrock Ave, Bondi Beach has an HFC NBN connection, updated Aug 2024",
            "nbn_technology": "HFC",
            "connection_quality": "EXCELLENT"
        },
        "planning_summary": null,
        "breadcrumbs": [
            {
                "title": "Home",
                "path": "/"
            },
            {
                "title": "NSW",
                "path": "/nsw/"
            },
            {
                "title": "Bondi Beach",
                "path": "/nsw/bondi-beach-2026/"
            }
        ],
        "json_ld": [
            {
                "@type": "Residence",
                "address": {
                    "@type": "PostalAddress",
                    "streetAddress": "8/56 Lamrock Avenue",
                    "addressLocality": "Bondi Beach",
                    "addressRegion": "NSW",
                    "postalCode": "2026"
                }
            }
        ]
    },
    "meta": {
        "endpoint_family": "listing",
        "billable": true,
        "attempts": 1
    }
}

Errors

Handle these documented responses before retrying or showing customer-facing failures.

404

Not Found

No property exists at that link (`not_found`). Non-billable.

{
    "meta": {
        "attempts": 1,
        "billable": false,
        "retryable": false,
        "endpoint_family": "listing"
    },
    "error": {
        "code": "not_found",
        "message": "Property.com.au has no record for that address or listing."
    },
    "success": false
}
422

Validation Error

A parameter is missing, unknown, or the link is not a www.property.com.au property link (`invalid_listing`). Other hosts are never fetched. Non-billable.

{
    "errors": {
        "sort": [
            "The selected sort is invalid."
        ]
    },
    "message": "The selected sort is invalid."
}
503

Upstream Unavailable

Property.com.au could not be reached after retries or answered with something unusable (`upstream_unavailable`, `upstream_blocked`, `parser_drift`). Retryable and never billed. Clients are never rate limited.

{
    "meta": {
        "attempts": 3,
        "billable": false,
        "retryable": true,
        "endpoint_family": "listing"
    },
    "error": {
        "code": "upstream_unavailable",
        "message": "Property.com.au is temporarily unavailable. Please retry."
    },
    "success": false
}

Generate Code with AI

Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.

Try It Live

Test this endpoint in our interactive playground with real data.