# Domain.com.au Search ## Overview | Property | Value | |----------|-------| | **Status** | active | | **Method** | `GET` | | **Endpoint** | `/v2/domaincomau/search` | | **Base URL** | `https://api.piloterr.com` | | **Credit Cost** | 2 credits per call | | **Documentation** | https://www.piloterr.com/library/domaincomau-search | ## Description Search Domain.com.au by suburb. mode is sale, rent, or sold. page starts at 1. Each card has a dollar price and a price label rebuilt from that amount. ## Authentication - **Key Name:** `x-api-key` - **Location:** HTTP Header - **Get an API key:** https://app.piloterr.com/register ## Example Request ```bash curl --location --request GET 'https://api.piloterr.com/v2/domaincomau/search' \ --header 'Content-Type: application/json' \ --header 'x-api-key: YOUR_API_KEY' ``` ## Example Response ### Bondi sale, 7D/27-31 Ocean Street N ```json { "results": [ { "id": 2021178032, "tag": null, "url": "https://www.domain.com.au/7d-27-31-ocean-street-n-bondi-nsw-2026-2021178032", "image": "https://rimh2.domainstatic.com.au/KAIUr4MxPgKd34aNY5ZXvaragds=/720x540/filters:format(webp):quality(85)/2021178032_1_1_260923_012858-w4134-h2756", "price": 1750000, "state": "NSW", "title": "7D/27-31 Ocean Street N, Bondi NSW 2026", "agents": [ "Danny Taylor", "Nathan Ryland" ], "suburb": "Bondi", "address": "7D/27-31 Ocean Street N, Bondi NSW 2026", "bedrooms": 2, "currency": "AUD", "latitude": -33.8919, "postcode": "2026", "bathrooms": 1, "carspaces": 1, "longitude": 151.26239, "price_max": null, "auction_at": null, "promo_type": "premium_plus", "agency_name": "Ray White Double Bay", "listing_type": "listing", "price_period": null, "land_area_sqm": null, "price_display": "$1,750,000", "property_type": "Apartment / Unit / Flat", "inspection_end": "2026-10-31T13:30:00", "inspection_start": "2026-10-31T13:00:00" } ], "pagination": { "next": "https://www.domain.com.au/sale/bondi-nsw-2026/?page=2", "page": 1, "per_page": 20, "total_pages": 17, "total_results": 351 } } ``` ## Documentation ## Overview Search Domain.com.au for sale, rent, or sold listings. `query` is a suburb with state and postcode, a location slug, or a full search URL. `price` is a whole dollar amount. `price_display` is that amount written again. A guide with two amounts sets `price` to the lower amount, `price_max` to the higher amount, and `price_display` to `$4,400,000 - $4,800,000`. ## Quickstart Bondi homes for sale. `mode` defaults to `sale`. ``` GET https://api.piloterr.com/v2/domaincomau/search?query=Bondi%20NSW%202026 ``` Bondi rentals. Weekly rent keeps the dollar amount in `price` and sets `price_period` to `week`. ``` GET https://api.piloterr.com/v2/domaincomau/search?query=bondi-nsw-2026&mode=rent ``` Sold listings, page 2. Domain receives `page=2`. ``` GET https://api.piloterr.com/v2/domaincomau/search?query=Bondi%20NSW%202026&mode=sold&page=2 ``` A search URL keeps its own path. `mode` is ignored. ``` GET https://api.piloterr.com/v2/domaincomau/search?query=https://www.domain.com.au/sale/bondi-nsw-2026/ ``` ## Parameters ### query Required string. - Place: suburb, state, and postcode, such as `Bondi NSW 2026`. The slug `bondi-nsw-2026` is the same place. - With the default `mode` of `sale`, cards are for-sale listings. - A full Domain search URL keeps `/sale/`, `/rent/`, or `/sold-listings/` and any filters already on it. - A property URL returns 400. Use `/v2/domaincomau/property` for one listing. - There is no default. ### mode Optional string. Default `sale`. Used only when `query` is a place. - `sale` requests `/sale/`. Aliases: `buy`, `for-sale`. - `rent` requests `/rent/`. Aliases: `rental`, `lease`. Weekly rent sets `price_period` to `week`. - `sold` requests `/sold-listings/`. - Any other value returns 400. - Ignored when `query` is already a search URL. ### page Optional integer. Default `1`. - Page 1 omits `page` from the Domain URL and sets `pagination.page` to 1. - Page 2 sends `page=2` and replaces any page already on a search URL. - `pagination.next` is the next Domain URL, or null on the last page. - A value below 1 returns 400. ### return_page_source Optional boolean. Default `false`. `true` returns `{ "result": "" }` instead of `results` and `pagination`. ## Response fields | Field | Type | Description | |---|---|---| | `results[].id` | integer | Listing or project id | | `results[].url` | string | Listing URL for the property endpoint | | `results[].title` | string | Address, or the project name | | `results[].listing_type` | string | `listing` or `project` | | `results[].price` | integer or null | Dollar amount, or the lower amount of a range | | `results[].price_max` | integer or null | Upper amount when the guide is a range | | `results[].price_display` | string or null | Price rebuilt from those amounts | | `results[].currency` | string or null | `AUD` when a price is present | | `results[].price_period` | string or null | `week`, `month`, or `year` when the label says so | | `results[].bedrooms` | integer or null | Bedrooms | | `results[].bathrooms` | integer or null | Bathrooms | | `results[].carspaces` | integer or null | Car spaces | | `results[].property_type` | string or null | Property type | | `results[].land_area_sqm` | number or null | Land size in square metres | | `results[].address` | string or null | Display address | | `results[].suburb` | string or null | Suburb | | `results[].state` | string or null | State | | `results[].postcode` | string or null | Postcode | | `results[].latitude` | number or null | Latitude | | `results[].longitude` | number or null | Longitude | | `results[].image` | string or null | Hero photo | | `results[].agency_name` | string or null | Agency | | `results[].agents` | array | Agent names on the card | | `results[].promo_type` | string or null | Promotion label | | `results[].tag` | string or null | Card tag | | `results[].inspection_start` | string or null | Inspection open time | | `results[].inspection_end` | string or null | Inspection close time | | `results[].auction_at` | string or null | Auction time | | `pagination.page` | integer | Current page | | `pagination.per_page` | integer | Page size, usually 20 | | `pagination.total_results` | integer or null | Matching listings | | `pagination.total_pages` | integer or null | Page count. Null when the total is approximate | | `pagination.next` | string or null | Next Domain URL, or null | ## Notes A trailing dash on the source label is not kept. When `price` is present, that number is the first amount in `price_display`. `currency` is `AUD` only when a price is present. ## Use cases - Page through Bondi homes for sale - Collect rentals in a suburb with `mode=rent` - Open a card URL in the property endpoint ## Error codes | Code | Meaning | |---|---| | 400 | Missing query, unknown mode, page below 1, bad domain, or a property URL | | 401 | Missing API key | | 403 | Domain blocked the page | | 404 | No listings | | 500 | Render or parse failure |