Skip to content

Listings API Reference

List Listings

GET /api/v1/listings

Retrieve a list of listings based on various filter criteria.

Query Parameters

ParameterTypeDescriptionOptions
pageNumberPage number (default: 1)
limitNumberNumber of items per page (default: 20, max: 100)
statusStringListing status. Default is "current". Use "all" to include all statuses.all, current, sold, leased, withdrawn, offmarket
listingTypeStringType of listing. Can be comma-separated for multiple types.residential, rental, land, rural, commercial, business
idNumberNumeric ID of the listing
excludeidsStringComma-separated list of IDs to exclude
bedroomsNumberExact number of bedrooms
minbedroomsNumberMinimum number of bedrooms
maxbedroomsNumberMaximum number of bedrooms
bathroomsNumberExact number of bathrooms
minbathroomsNumberMinimum number of bathrooms
maxbathroomsNumberMaximum number of bathrooms
carspacesNumberExact number of car spaces
mincarspacesNumberMinimum number of car spaces
maxcarspacesNumberMaximum number of car spaces
garagesNumberNumber of garages
carportsNumberNumber of carports
openSpacesNumberNumber of open parking spaces
ensuiteNumberNumber of ensuites
toiletsNumberNumber of toilets
livingAreasNumberNumber of living areas
airConditioningBooleanHas air conditioning
alarmSystemBooleanHas alarm system
balconyBooleanHas balcony
broadbandBooleanHas broadband
builtInRobesBooleanHas built-in robes
courtyardBooleanHas courtyard
deckBooleanHas deck
dishwasherBooleanHas dishwasher
ductedCoolingBooleanHas ducted cooling
ductedHeatingBooleanHas ducted heating
evaporativeCoolingBooleanHas evaporative cooling
gasHeatingBooleanHas gas heating
gymBooleanHas gym
hydronicHeatingBooleanHas hydronic heating
insideSpaBooleanHas inside spa
intercomBooleanHas intercom
openFirePlaceBooleanHas open fireplace
outdoorEntBooleanHas outdoor entertainment area
outsideSpaBooleanHas outside spa
payTVBooleanHas pay TV
poolInGroundBooleanHas in-ground pool
poolAboveGroundBooleanHas above-ground pool
remoteGarageBooleanHas remote garage
reverseCycleAirconBooleanHas reverse cycle air conditioning
rumpusRoomBooleanHas rumpus room
secureParkingBooleanHas secure parking
splitSystemAirconBooleanHas split system air conditioning
splitSystemHeatingBooleanHas split system heating
tennisCourtBooleanHas tennis court
vacuumSystemBooleanHas vacuum system
workshopBooleanHas workshop
furnishedBooleanIs furnished
petFriendlyBooleanIs pet friendly
smokersBooleanAllows smokers
studyBooleanHas study
floorboardsBooleanHas floorboards
shedBooleanHas shed
fullyFencedBooleanIs fully fenced
categoryStringProperty category (changes based on listingType)Residential: house, townhouse, apartment

Rental:

Land:

Rural:

Commercial:

Business:
businessCategoryStringBusiness category
commercialCategoryStringCommercial property category
commercialListingTypeStringCommercial listing Typesale, lease
landCategoryStringLand category
ruralCategoryStringRural property category
minPriceNumberMinimum price
maxPriceNumberMaximum price
uniqueIDStringUnique identifier for the listing
uniqueIDsStringComma-separated list of unique identifiers
agentIDStringID of the agent
websiteIDNumberID of the website
agentStringName or ID of the agent
agentsStringName or slug of the agents, can be comma-separated
agentSlugStringSlug of the agent
addressStringFull or partial address
streetStringStreet name
suburbStringSuburb name(s), can be comma-separated
fullSuburbStringFull suburb details including state and postcode, can be comma-separated
stateStringState name(s), can be comma-separated
postcodeStringPostcode(s), can be comma-separated
regionStringRegion Names(s), can be comma-separated
areanameStringArea Names(s), can be comma-separated
surroundingsuburbBoolean or Numberget all surrouding suburb(s) based on filter suburbstrue, false or 1, 0
isInspectionsBooleanHas inspection timestrue, false
isAuctionsBooleanHas auction detailstrue, false
isOffMarketBooleanIs off market
baseDateStringBase date for filtering.inspection, auctions, updatedAt, availableDate
datefromDateStart date for filteringFormat: YYYY-MM-DDTH:m:iZ
datetoDateEnd date for filteringFormat: YYYY-MM-DDTH:m:iZ
datesStringSpecific dates for filtering, comma-separatedformat: YYYY-MM-DD
updatedAtDateFilter by last update dateformat: YYYY-MM-DD
createdAtDateFilter by creation dateformat: YYYY-MM-DD
sortStringSorting 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

ParameterTypeDescription
idStringUnique 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.

CodeDescription
200OK - The request was successful
400Bad Request - The request was invalid or cannot be served
401Unauthorized - The request requires authentication
403Forbidden - The server understood the request but refuses to authorize it
404Not Found - The requested resource could not be found
500Internal 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.