Appearance
Listings API Reference
List Listings
GET /api/v1/listings
Retrieve a list of listings based on various filter criteria.
Query Parameters
Parameter | Type | Description | Options |
---|---|---|---|
page | Number | Page number (default: 1) | |
limit | Number | Number of items per page (default: 20, max: 100) | |
status | String | Listing status. Default is "current". Use "all" to include all statuses. | all, current, sold, leased, withdrawn, offmarket |
listingType | String | Type of listing. Can be comma-separated for multiple types. | residential, rental, land, rural, commercial, business |
id | Number | Numeric ID of the listing | |
excludeids | String | Comma-separated list of IDs to exclude | |
bedrooms | Number | Exact number of bedrooms | |
minbedrooms | Number | Minimum number of bedrooms | |
maxbedrooms | Number | Maximum number of bedrooms | |
bathrooms | Number | Exact number of bathrooms | |
minbathrooms | Number | Minimum number of bathrooms | |
maxbathrooms | Number | Maximum number of bathrooms | |
carspaces | Number | Exact number of car spaces | |
mincarspaces | Number | Minimum number of car spaces | |
maxcarspaces | Number | Maximum number of car spaces | |
garages | Number | Number of garages | |
carports | Number | Number of carports | |
openSpaces | Number | Number of open parking spaces | |
ensuite | Number | Number of ensuites | |
toilets | Number | Number of toilets | |
livingAreas | Number | Number of living areas | |
airConditioning | Boolean | Has air conditioning | |
alarmSystem | Boolean | Has alarm system | |
balcony | Boolean | Has balcony | |
broadband | Boolean | Has broadband | |
builtInRobes | Boolean | Has built-in robes | |
courtyard | Boolean | Has courtyard | |
deck | Boolean | Has deck | |
dishwasher | Boolean | Has dishwasher | |
ductedCooling | Boolean | Has ducted cooling | |
ductedHeating | Boolean | Has ducted heating | |
evaporativeCooling | Boolean | Has evaporative cooling | |
gasHeating | Boolean | Has gas heating | |
gym | Boolean | Has gym | |
hydronicHeating | Boolean | Has hydronic heating | |
insideSpa | Boolean | Has inside spa | |
intercom | Boolean | Has intercom | |
openFirePlace | Boolean | Has open fireplace | |
outdoorEnt | Boolean | Has outdoor entertainment area | |
outsideSpa | Boolean | Has outside spa | |
payTV | Boolean | Has pay TV | |
poolInGround | Boolean | Has in-ground pool | |
poolAboveGround | Boolean | Has above-ground pool | |
remoteGarage | Boolean | Has remote garage | |
reverseCycleAircon | Boolean | Has reverse cycle air conditioning | |
rumpusRoom | Boolean | Has rumpus room | |
secureParking | Boolean | Has secure parking | |
splitSystemAircon | Boolean | Has split system air conditioning | |
splitSystemHeating | Boolean | Has split system heating | |
tennisCourt | Boolean | Has tennis court | |
vacuumSystem | Boolean | Has vacuum system | |
workshop | Boolean | Has workshop | |
furnished | Boolean | Is furnished | |
petFriendly | Boolean | Is pet friendly | |
smokers | Boolean | Allows smokers | |
study | Boolean | Has study | |
floorboards | Boolean | Has floorboards | |
shed | Boolean | Has shed | |
fullyFenced | Boolean | Is fully fenced | |
category | String | Property category (changes based on listingType) | Residential: house, townhouse, apartment Rental: Land: Rural: Commercial: Business: |
businessCategory | String | Business category | |
commercialCategory | String | Commercial property category | |
commercialListingType | String | Commercial listing Type | sale, lease |
landCategory | String | Land category | |
ruralCategory | String | Rural property category | |
minPrice | Number | Minimum price | |
maxPrice | Number | Maximum price | |
uniqueID | String | Unique identifier for the listing | |
uniqueIDs | String | Comma-separated list of unique identifiers | |
agentID | String | ID of the agent | |
websiteID | Number | ID of the website | |
agent | String | Name or ID of the agent | |
agents | String | Name or slug of the agents, can be comma-separated | |
agentSlug | String | Slug of the agent | |
address | String | Full or partial address | |
street | String | Street name | |
suburb | String | Suburb name(s), can be comma-separated | |
fullSuburb | String | Full suburb details including state and postcode, can be comma-separated | |
state | String | State name(s), can be comma-separated | |
postcode | String | Postcode(s), can be comma-separated | |
region | String | Region Names(s), can be comma-separated | |
areaname | String | Area Names(s), can be comma-separated | |
surroundingsuburb | Boolean or Number | get all surrouding suburb(s) based on filter suburbs | true, false or 1, 0 |
isInspections | Boolean | Has inspection times | true, false |
isAuctions | Boolean | Has auction details | true, false |
isOffMarket | Boolean | Is off market | |
baseDate | String | Base date for filtering. | inspection, auctions, updatedAt, availableDate |
datefrom | Date | Start date for filtering | Format: YYYY-MM-DDTH:m:iZ |
dateto | Date | End date for filtering | Format: YYYY-MM-DDTH:m:iZ |
dates | String | Specific dates for filtering, comma-separated | format: YYYY-MM-DD |
updatedAt | Date | Filter by last update date | format: YYYY-MM-DD |
createdAt | Date | Filter by creation date | format: YYYY-MM-DD |
sort | String | Sorting option. | available-asc, available-desc, alphabetical, newest, oldest, price-asc, price-desc |
Example Request
javascript
const headers = {
"x-access-key": "your_access_key_here",
"x-secret-key": "your_secret_key_here",
};
fetch("https://agencyhubapi.stepps.net/api/v1/listings?category=house&bedrooms=3&suburb=ALDERLEY&sort=price-asc", {
headers,
})
.then((response) => response.json())
.then((data) => console.log(data));
Example Response
json
{
"total": 14852,
"hasNext": true,
"totalPage": 743,
"data": [
{
"_id": "66e11530effa544215c6eee3",
"uniqueID": "0000513576",
"agentID": "61",
"address": {
"display": true,
"fullAddress": "4 Saxby Street Girraween NSW 2145",
"streetAddress": "4 Saxby Street",
"fullSuburb": "Girraween NSW 2145",
"streetview": false,
"subNumber": "",
"lotNumber": "",
"streetNumber": "4",
"street": "Saxby Street",
"suburb": "Girraween",
"state": "NSW",
"postcode": "2145",
"country": "Australia",
"latitude": "-33.8026095",
"longitude": "150.9495537",
"_id": "66e11530213bd09ca176656d"
},
"agents": [
{
"_id": "65b82f5c8d2c8f800832a45",
"id": 107446,
"name": "Leasing Department"
}
]
}
// ... other listing details
]
}
Get a Single Listing
GET /api/v1/listings/{_id}
Retrieve details of a specific listing by its ID.
Path Parameters
Parameter | Type | Description |
---|---|---|
id | String | Unique identifier of the listing |
Example Request
javascript
const headers = {
"x-access-key": "your_access_key_here",
"x-secret-key": "your_secret_key_here",
};
fetch("https://agencyhubapi.stepps.net/api/v1/listings/R2-3865102", { headers })
.then((response) => response.json())
.then((data) => console.log(data));
Example Response
json
{
"_id": "66e11530effa544215c6eee3",
"uniqueID": "0000513576",
"agentID": "61",
"address": {
"display": true,
"fullAddress": "4 Saxby Street Girraween NSW 2145",
"streetAddress": "4 Saxby Street",
"fullSuburb": "Girraween NSW 2145",
"streetview": false,
"subNumber": "",
"lotNumber": "",
"streetNumber": "4",
"street": "Saxby Street",
"suburb": "Girraween",
"state": "NSW",
"postcode": "2145",
"country": "Australia",
"latitude": "-33.8026095",
"longitude": "150.9495537"
},
"agents": [
{
"id": 107446,
"name": "Leasing Department",
"telephone": [
{
"number": "02 8848 0000",
"type": "BH"
}
],
"email": "sample@realestatewebsite.com.au",
"profileVisibility": true,
"profileImage": "https://secure.gravatar.com/avatar/8783a6899084955a14e36fad9642b3ad?s=800&d=mm&r=g",
"profileLink": "https://realestatewebsite.com.au/agents/leasing-department/",
"hasCurrentListings": true
}
],
"auctionDetails": {},
"authority": "",
"buildingDetails": {
"area": {
"value": 0,
"unit": "squareMeter"
},
"energyRating": ""
},
"businessCategory": [],
"category": "house",
"commercialAuthority": "",
"commercialCategory": [],
"commercialListingType": "",
"commercialRent": {
"value": 0,
"period": "",
"tax": ""
},
"createdAt": "2024-09-11T03:57:36.532Z",
"description": "sample listing description goes here",
"diakritLinks": {
"furnish": [],
"kitchenStyling": [],
"panorama": []
},
"documents": [],
"ecoFriendly": {},
"exclusivity": "",
"externalLinks": [],
"features": {
"bedrooms": 3,
"bathrooms": 1,
"garages": 1,
"carports": 0,
"openSpaces": 0,
"parkingSpaces": 1
},
"firstdate": "2024-09-11T13:52:00.000Z",
"headline": "3 Bedroom Family Home",
"id": 520752,
"images": [
{
"id": "m",
"url": "https://propertyimages.stepps.net/realestatewebsite/61-rental-0000513576-17260270546zTZwj.jpg",
"type": "featured"
},
{
"id": "a",
"url": "https://propertyimages.stepps.net/realestatewebsite/61-rental-0000513576-1726027054NxCwJ0.jpg",
"type": "img"
},
{
"id": "b",
"url": "https://propertyimages.stepps.net/realestatewebsite/61-rental-0000513576-17260270546Q5PHK.jpg",
"type": "img"
},
{
"id": "c",
"url": "https://propertyimages.stepps.net/realestatewebsite/61-rental-0000513576-1726027054ZFfhcx.jpg",
"type": "img"
}
],
"inspectionTimes": [
{
"dateFrom": "2024-09-14T10:00:00.000Z",
"dateTo": "2024-09-14T10:15:00.000Z"
}
],
"isOffMarket": false,
"landCategory": "",
"landDetails": {
"area": {
"value": 0,
"unit": "squareMeter"
}
},
"listingType": "rental",
"modtime": "2024-09-11T13:52:00.000Z",
"newConstruction": false,
"outgoings": "",
"price": {
"priceView": "$695 Per Week",
"display": false,
"value": 0,
"rent": {
"price": 695,
"period": "weekly",
"display": true,
"available": "2024-10-08T00:00:00.000Z"
}
},
"ruralCategory": "",
"ruralFeatures": "",
"status": "current",
"tenancy": "",
"underOffer": false,
"updatedAt": "2024-09-11T03:57:36.532Z",
"videoLinks": [],
"vrTourLink": [],
"propertyID": 319749,
"website": {
"websiteID": 294,
"logo": {
"light": "https://images.realestatewebsite.com.au/logo-light.png",
"dark": "https://images.realestatewebsite.com.au/logo-light.png",
"override": ""
},
"favicon": "",
"name": "Real Estate Name",
"link": "https://realestatewebsite.com.au/",
"type": "sub-account",
"config": {
"primaryColor": "#000000",
"secondaryColor": "#f2f2f2",
"tertiaryColor": "",
"video": "",
"cloudFrontCDN": "https://sample.cloudfront.net/",
"cloudFlareCDN": "https://images.realestatewebsite.com.au/",
"listingTypes": {
"hasForSale": true,
"hasForRent": true
}
},
"contacts": {
"email": {
"office": "admin@realestatewebsite.com.au",
"sales": "",
"pm": ""
},
"phone": {
"office": "(02) 8848 0000",
"sales": "",
"pm": ""
},
"fax": {
"office": "(02) 9688 0000",
"sales": "",
"pm": ""
}
},
"integrations": {
"reviews": "default",
"offmarketLink": "",
"propertyEstimateLink": "https://{realestatewebsite.com.au}/property-estimate/",
"propertyAppraisalLink": "https://{realestatewebsite.com.au}/property-appraisal/",
"switchToUsLink": "https://{realestatewebsite.com.au}/property-management/",
"suburbProfileLink": "",
"privacyPolicyLink": "https://{realestatewebsite.com.au}/privacy"
}
},
"slug": "/rental/house-nsw-girraween-0000513576",
"link": "https://{realestatewebsite.com.au}/rental/house-nsw-girraween-0000513576/"
}
Error Handling
The API uses conventional HTTP response codes to indicate the success or failure of an API request. Codes in the 2xx range indicate success, codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted), and codes in the 5xx range indicate an error with our servers.
Code | Description |
---|---|
200 | OK - The request was successful |
400 | Bad Request - The request was invalid or cannot be served |
401 | Unauthorized - The request requires authentication |
403 | Forbidden - The server understood the request but refuses to authorize it |
404 | Not Found - The requested resource could not be found |
500 | Internal Server Error - The server encountered an unexpected condition |
For more information on using these endpoints, please refer to our Authentication Guide and Quick Start Guide.