curl --request GET \
--url https://{defaultHost}/api/v1/agency/list_packages \
--header 'Authorization: Bearer <token>'import requests
url = "https://{defaultHost}/api/v1/agency/list_packages"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{defaultHost}/api/v1/agency/list_packages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{defaultHost}/api/v1/agency/list_packages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{defaultHost}/api/v1/agency/list_packages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{defaultHost}/api/v1/agency/list_packages")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{defaultHost}/api/v1/agency/list_packages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"type": "<string>",
"attributes": {
"details": {
"address": "<string>",
"status": "<string>",
"floor_area": "<string>",
"contract_pricing": "<string>",
"id": "<string>",
"unit_number": "<string>",
"street_number": "<string>",
"street_address": "<string>",
"suburb": "<string>",
"state": "<string>",
"postcode": "<string>",
"region": "<string>",
"full_address": "<string>",
"property_type": "<string>",
"design": "<string>",
"facade": "<string>",
"contract_type": "<string>",
"bedrooms": "<string>",
"living_spaces": "<string>",
"bathrooms": "<string>",
"garages": "<string>",
"package_price": "<string>",
"land_price": "<string>",
"lot_size": "<string>",
"land_width": 123,
"land_length": 123,
"land_registration_date": "<string>",
"estimated_rental": "<string>",
"estimated_yield": "<string>",
"commission_rate": "<string>",
"tags": [
"<string>"
],
"inclusions": [
"<string>"
],
"building_type_in_location": "<string>",
"project_title": "<string>",
"project_description": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"verified_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"marketing_images": [
{
"url": "<string>"
}
],
"floor_plan_images": [
{
"url": "<string>"
}
],
"brochure_url": "<string>"
}
}
}
],
"meta": {
"total_count": 123,
"page": 123,
"per_page": 123,
"total_pages": 123
},
"facets": {
"states": {
"NSW": 120,
"QLD": 85
},
"regions": {},
"property_types": {},
"categories": {},
"contract_types": {},
"bedrooms": {},
"land_reg_dates": {},
"suppliers": {},
"statuses": {}
}
}List the packages of the agency's saved lists
The packages the agency’s saved lists serve to the embeddable widget: for each list switched on for the website, its members, plus everything its saved search matches right now, minus the builds removed from that list by hand. Without list, every switched-on list is served together; with it, just that list. A list that doesn’t belong to the API key’s agency or isn’t switched on is a 404, as is a feed with no list switched on. Requires the lists scope. The filter parameters below narrow within the lists.
curl --request GET \
--url https://{defaultHost}/api/v1/agency/list_packages \
--header 'Authorization: Bearer <token>'import requests
url = "https://{defaultHost}/api/v1/agency/list_packages"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{defaultHost}/api/v1/agency/list_packages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{defaultHost}/api/v1/agency/list_packages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{defaultHost}/api/v1/agency/list_packages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{defaultHost}/api/v1/agency/list_packages")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{defaultHost}/api/v1/agency/list_packages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"type": "<string>",
"attributes": {
"details": {
"address": "<string>",
"status": "<string>",
"floor_area": "<string>",
"contract_pricing": "<string>",
"id": "<string>",
"unit_number": "<string>",
"street_number": "<string>",
"street_address": "<string>",
"suburb": "<string>",
"state": "<string>",
"postcode": "<string>",
"region": "<string>",
"full_address": "<string>",
"property_type": "<string>",
"design": "<string>",
"facade": "<string>",
"contract_type": "<string>",
"bedrooms": "<string>",
"living_spaces": "<string>",
"bathrooms": "<string>",
"garages": "<string>",
"package_price": "<string>",
"land_price": "<string>",
"lot_size": "<string>",
"land_width": 123,
"land_length": 123,
"land_registration_date": "<string>",
"estimated_rental": "<string>",
"estimated_yield": "<string>",
"commission_rate": "<string>",
"tags": [
"<string>"
],
"inclusions": [
"<string>"
],
"building_type_in_location": "<string>",
"project_title": "<string>",
"project_description": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"verified_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"marketing_images": [
{
"url": "<string>"
}
],
"floor_plan_images": [
{
"url": "<string>"
}
],
"brochure_url": "<string>"
}
}
}
],
"meta": {
"total_count": 123,
"page": 123,
"per_page": 123,
"total_pages": 123
},
"facets": {
"states": {
"NSW": 120,
"QLD": 85
},
"regions": {},
"property_types": {},
"categories": {},
"contract_types": {},
"bedrooms": {},
"land_reg_dates": {},
"suppliers": {},
"statuses": {}
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Token authentication using format: Bearer <api_key>
Query Parameters
public_uid of one saved list to serve (must be switched on for the website). Omit to serve every switched-on list.
"LS-123456"
Number of packages per page
1 <= x <= 5000Comma-separated Australian states (also accepts singular 'state' param)
"NSW,QLD"
Comma-separated region names
"Western Sydney"
Comma-separated suburb names
"Marsden Park"
Comma-separated bedroom counts
"3,4"
Comma-separated property types
"House,Townhouse"
Comma-separated category or contract type tags
"Premium,Turnkey"
Comma-separated supplier names
Comma-separated build statuses
"available"
Minimum package price
500000
Maximum package price
800000
Sort order (defaults to listed_desc)
price_asc, price_desc, listed_asc, listed_desc, verified_asc, verified_desc Page number (0-indexed)
x >= 0Include filter facets with counts (adds ~9 queries, cached for 5 minutes). Request once to build filter UI, omit on pagination.