Domain APIdomain.com.au ↗
Access Domain.com.au property listings for sale, rent, and sold, plus agent profiles and suburb insights via a structured REST API.
What is the Domain API?
The Domain.com.au API exposes 8 endpoints covering residential property listings, agent profiles, and suburb market data from Australia's major real estate platform. You can query search_properties_for_sale to retrieve paginated listings filtered by suburb slug, price range, bedrooms, bathrooms, and property type, or pull sold price history, rental listings, and detailed neighbourhood demographics — all returned as structured JSON.
curl -X GET 'https://api.parse.bot/scraper/974154e5-ea89-4a21-b5a4-dff744547193/search_properties_for_sale?page=1&location=melbourne-vic-3000&max_price=2000000&min_price=500000&max_bedrooms=5&min_bedrooms=1&min_bathrooms=1&property_type=townhouse' \ -H 'X-API-Key: $PARSE_API_KEY'
Search properties listed for sale on Domain.com.au by suburb location. Returns paginated results including listing details (id, address, price, features, branding, images). Supports filtering by price range, bedrooms, bathrooms, and property type. Paginates via integer page number; totalPages in meta indicates last page.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| locationrequired | string | Suburb, state and postcode slug (e.g., 'sydney-nsw-2000', 'pyrmont-nsw-2009', 'melbourne-vic-3000'). |
| max_price | integer | Maximum price filter. |
| min_price | integer | Minimum price filter. |
| max_bedrooms | integer | Maximum number of bedrooms (1-5). |
| min_bedrooms | integer | Minimum number of bedrooms (1-5). |
| min_bathrooms | integer | Minimum number of bathrooms (1-3). |
| property_type | string | Property type filter. Accepted values include 'house', 'unit', 'townhouse', 'villa', 'land', 'acreage', 'rural', 'block-of-units'. |
{
"type": "object",
"fields": {
"meta": "object containing totalListings, totalPages, currentPage, suburb info",
"page": "integer current page number",
"results": "array of property listing objects with id, listingType, listingModel containing url, price, address, features, branding, images",
"location": "string location slug used"
},
"sample": {
"data": {
"meta": {
"totalPages": 47,
"currentPage": 1,
"totalListings": 957
},
"page": 1,
"results": [
{
"id": 4839,
"listingType": "project",
"listingModel": {
"url": "/project/4839/111-castlereagh-sydney-nsw/",
"address": {
"state": "NSW",
"street": "Castlereagh",
"suburb": "Sydney",
"postcode": "2000"
},
"promoType": "premium",
"projectName": "111 Castlereagh",
"displayAddress": "111 CASTLEREAGH STREET, SYDNEY, NSW 2000"
}
}
],
"location": "sydney-nsw-2000"
},
"status": "success"
}
}About the Domain API
Property Search and Listing Detail
Three endpoints cover the core listing lifecycle. search_properties_for_sale and search_properties_for_rent both accept a required location slug in the format suburb-state-postcode (e.g., pyrmont-nsw-2009) and return paginated arrays of listing objects. Each result includes id, listingType, and a listingModel containing url, price, address, features (bedrooms, bathrooms, parking), branding, and images. The meta object carries totalListings, totalPages, and currentPage so you can iterate through results. search_sold_properties follows the same shape but adds a sold field with sale date and final price. search_residential_listings is a more flexible alternative that unifies all three listing types under a single endpoint via the listing_type parameter (sale, rent, or sold) and adds features filtering (e.g., swimmingpool, airconditioning), free-text keywords, and sort ordering. Its applied_filters response object echoes the exact filter state used.
Property, Agent, and Suburb Detail
get_property_details accepts the slug exactly as emitted in a search result's listingModel.url and returns a pageProps object containing full page data: gallery, agents, schoolCatchment, and neighbourhoodInsights, alongside core fields like saleMethod, agentNames, and propertyType. search_agents finds agents by suburb and returns each agent's totalSoldAndAuctioned, averageSoldPrice, and reputation (review count and score). get_agent_profile takes the profileUrl slug from those results and returns the full Apollo state including biography, statistics, active listings, and reviews.
Suburb Profiles
get_suburb_profile returns demographic, market, and geographic data for a suburb: median prices, rental data, nearby schools, and surrounding suburbs. The response is structured around layout.__APOLLO_STATE__ which contains the detailed suburb statistics, and details which includes a Google Maps image URL. Coverage varies — some smaller suburbs return limited market data rather than the full statistical set.
Location Slugs and Pagination
All search endpoints require location as a slug (e.g., sydney-nsw-2000, melbourne-vic-3000). Pagination is integer-based via the page parameter. Most endpoints return up to 20 results per page, and the meta object tells you the total available pages. The search_residential_listings endpoint additionally returns surroundingSuburbs inside meta, which is useful for expanding a geographic search.
The Domain API is a managed, monitored endpoint for domain.com.au — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when domain.com.au changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official domain.com.au API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build an automated property alert system that polls
search_properties_for_saledaily for new listings in target suburbs within a set price band. - Aggregate sold price history across multiple suburbs using
search_sold_propertiesto analyse market trends over time. - Create a rental vacancy dashboard by comparing
totalListingscounts fromsearch_properties_for_rentacross suburbs week over week. - Enrich a property CRM by calling
get_property_detailsto pull school catchment zones and neighbourhood demographics for each listed address. - Rank agents in a suburb by
averageSoldPriceandtotalSoldAndAuctionedusingsearch_agentsto identify top performers. - Generate suburb comparison reports by calling
get_suburb_profilefor a list of postcodes and extracting median prices and demographic data. - Filter listings for specific amenities like swimming pools or pet-friendly rentals using
search_residential_listingswith thefeaturesparameter.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Domain.com.au have an official developer API?+
How do I filter listings by property type or specific features like a pool?+
search_properties_for_sale accepts a property_type parameter with values such as house, unit, townhouse, villa, land, acreage, and rural. For feature-level filtering (e.g., swimmingpool, airconditioning, builtinwardrobes, petsallowed), use search_residential_listings instead, which accepts a comma-separated features parameter and also supports free-text keywords matched against listing text.What does `get_property_details` return beyond what's in the search results?+
pageProps object that includes schoolCatchment data, neighbourhoodInsights, a full gallery array, individual agents with contact details, and saleMethod. The search endpoints only surface summary fields like price text, a thumbnail image array, and feature counts. The slug passed to this endpoint must match the listingModel.url value exactly as returned from a search call.Is commercial property or new development project data available?+
Does suburb profile data always include full median price statistics?+
get_suburb_profile endpoint notes that coverage varies by suburb — some locations return limited market data. Smaller or less-transacted suburbs may have sparse or missing median price and rental yield fields within the __APOLLO_STATE__ payload. The endpoint still returns available demographic and geographic fields even when market statistics are incomplete.