{
  "openapi": "3.0.1",
  "info": {
    "title": "realestate.com.au Scraper: Buy, Rent, Sold Prices",
    "description": "Scrape realestate.com.au buy, rent and sold listings by suburb, postcode, region, link, map area or address, past the 2,000 row limit, no login. Each gives asking price, weekly rent, sold price and date, bedrooms, parking, land size, agency and inspection days. JSON, CSV, Excel; pay per listing.",
    "version": "0.1",
    "x-build-id": "5wUleH6V6oSo8tiHL"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automation_craft~realestate-com-au-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automation_craft-realestate-com-au-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/automation_craft~realestate-com-au-scraper/runs": {
      "post": {
        "operationId": "runs-sync-automation_craft-realestate-com-au-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/automation_craft~realestate-com-au-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-automation_craft-realestate-com-au-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "locations": {
            "title": "Places (suburb, postcode, state or region)",
            "type": "array",
            "description": "Places as realestate.com.au names them, one per line: a suburb with its state (\"Richmond, VIC 3121\" or \"Bondi NSW\"), a postcode (\"3121\"), a state (\"VIC\" or \"Victoria\") or a region (\"Inner East Melbourne, VIC\"). A place is searched only when exactly one realestate.com.au place is that text; otherwise a free row lists the matching places to pick from (a bare \"Richmond\" matches ten suburbs in five states).",
            "items": {
              "type": "string"
            }
          },
          "channel": {
            "title": "Channel",
            "enum": [
              "buy",
              "rent",
              "sold",
              "all"
            ],
            "type": "string",
            "description": "Which listings each place, address and map area is searched for: homes for sale (\"buy\"), for rent (\"rent\"), recently sold (\"sold\"), or all three (\"all\", one search per channel). Search links keep their own channel. Address lookups read the buy and rent listings."
          },
          "searchUrls": {
            "title": "realestate.com.au search links",
            "type": "array",
            "description": "Search links copied from realestate.com.au (buy, rent or sold, a list or a map page), for example https://www.realestate.com.au/rent/property-unit+apartment-between-400-700-in-richmond,+vic+3121/list-1?misc=pets-allowed. The link is read by realestate.com.au itself, with every filter it holds (surrounding suburbs included when the link has them); the filters you set below replace only the same filter of the link. Paste the link of page 1. A link part realestate.com.au would silently drop (an inspection or auction date) refuses the link with a free row; use the matching setting below instead.",
            "items": {
              "type": "string"
            }
          },
          "listingUrls": {
            "title": "Listing links or ids",
            "type": "array",
            "description": "Listing links (https://www.realestate.com.au/property-house-vic-richmond-147474464, /sold/property-...) or listing ids (147474464), one per line, read 200 at a time. A listing realestate.com.au no longer returns is a free row. Each listing is billed as one Home, plus its add-ons.",
            "items": {
              "type": "string"
            }
          },
          "addresses": {
            "title": "Street addresses (current listings)",
            "type": "array",
            "description": "Street addresses written \"number street, suburb, STATE postcode\", for example \"95 Richmond Terrace, Richmond, VIC 3121\" or \"409/10 Burnley Street, Richmond, VIC 3121\": the current listing at exactly that address (unit, number, street, suburb, state and postcode), looked up among the suburb's buy or rent listings (the channel above). No exact match is a free row.",
            "items": {
              "type": "string"
            }
          },
          "mapAreas": {
            "title": "Map areas",
            "type": "array",
            "description": "Map areas, each one search: a circle {\"latitude\": -37.8186, \"longitude\": 145.005, \"radiusKm\": 1.5} (0.1 to 50 km), a box {\"north\": -37.80, \"south\": -37.83, \"east\": 145.02, \"west\": 144.98} or a polygon {\"polygon\": [[-37.81, 144.99], [-37.82, 145.01], [-37.83, 144.98]]} (latitude, longitude pairs). The box is searched by realestate.com.au; a circle or polygon is searched as its box and each listing kept only when its map position is inside (a listing the map does not place is left out, free, and counted)."
          },
          "minPrice": {
            "title": "Minimum price (AUD)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price. Buy: the asking price; rent: the weekly rent; sold: the sold price, checked on each row (realestate.com.au's sold search has no price filter), so a sale whose price is not shown is left out, free."
          },
          "maxPrice": {
            "title": "Maximum price (AUD)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price, same meaning as the minimum."
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Fewest bedrooms (0 = studio). Buy, rent and sold."
          },
          "maxBedrooms": {
            "title": "Maximum bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Most bedrooms (0 = studio). Buy, rent and sold."
          },
          "minBathrooms": {
            "title": "Minimum bathrooms",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Fewest bathrooms. Buy, rent and sold."
          },
          "minParking": {
            "title": "Minimum parking spaces",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Fewest car spaces. Buy, rent and sold."
          },
          "minLandSize": {
            "title": "Minimum land size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest land size in square metres. Buy, rent and sold."
          },
          "maxLandSize": {
            "title": "Maximum land size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Largest land size in square metres. Buy, rent and sold."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Only these property types (any of them). Buy, rent and sold.",
            "items": {
              "type": "string",
              "enum": [
                "house",
                "townhouse",
                "apartment",
                "villa",
                "land",
                "acreage",
                "rural",
                "retirement",
                "block-of-units"
              ],
              "enumTitles": [
                "House",
                "Townhouse",
                "Apartment and unit",
                "Villa",
                "Land",
                "Acreage",
                "Rural",
                "Retirement living",
                "Block of units"
              ]
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Words realestate.com.au matches in the listing (for example \"pool\", \"north facing\"), up to 10. Buy, rent and sold.",
            "items": {
              "type": "string"
            }
          },
          "features": {
            "title": "Features",
            "type": "array",
            "description": "Features from realestate.com.au's own feature list (it sends them as keyword terms, like its search form). Buy, rent and sold.",
            "items": {
              "type": "string",
              "enum": [
                "air conditioning",
                "alarm system",
                "balcony",
                "broadband",
                "built in robes",
                "dishwasher",
                "ensuite",
                "floorboards",
                "fully fenced",
                "garage",
                "gym",
                "heating",
                "outdoor area",
                "remote garage",
                "rumpus room",
                "secure parking",
                "shed",
                "solar hot water",
                "solar panels",
                "study",
                "swimming pool",
                "tennis court",
                "undercover parking",
                "water tank",
                "workshop"
              ]
            }
          },
          "includeSurroundingSuburbs": {
            "title": "Include surrounding suburbs",
            "type": "boolean",
            "description": "Also deliver the listings realestate.com.au shows from surrounding suburbs after a suburb's own (each marked \"surroundingSuburb\": true). They come from the first 2,000 rows of a search; a search split past 2,000 reads its own suburb only beyond that. Buy, rent and sold."
          },
          "excludeAddressHidden": {
            "title": "Exclude listings without an address",
            "type": "boolean",
            "description": "Leave out listings whose street address is hidden (\"Address available on request\"). Buy, rent and sold."
          },
          "constructionStatus": {
            "title": "New or established (buy)",
            "enum": [
              "any",
              "new",
              "established"
            ],
            "type": "string",
            "description": "Buy only."
          },
          "saleMethod": {
            "title": "Sale method (buy)",
            "enum": [
              "any",
              "auction",
              "private"
            ],
            "type": "string",
            "description": "Buy only: auctions only, or private treaty sales only."
          },
          "excludeUnderContract": {
            "title": "Exclude under contract (buy)",
            "type": "boolean",
            "description": "Buy only: leave out listings under contract or under offer."
          },
          "excludeNoDisplayPrice": {
            "title": "Exclude listings without a shown price (buy)",
            "type": "boolean",
            "description": "Buy only: leave out listings that show no price (\"Contact agent\")."
          },
          "excludeProjects": {
            "title": "Exclude new developments (buy)",
            "type": "boolean",
            "description": "Buy only: leave out off the plan projects (developments listed as one project)."
          },
          "auctionDate": {
            "title": "Auction day (buy)",
            "type": "string",
            "description": "Buy only: listings whose auction is on this day (YYYY-MM-DD), read in order of the next auction; the day is the one realestate.com.au shows on the listing."
          },
          "inspectionDate": {
            "title": "Inspection day (buy, rent)",
            "type": "string",
            "description": "Buy and rent: listings with an inspection on this day (YYYY-MM-DD). Without Home details each listing's next inspection is checked; with Home details every inspection time it lists."
          },
          "newListingsOnly": {
            "title": "New listings only (buy, rent)",
            "type": "boolean",
            "description": "Buy and rent: only listings realestate.com.au marks as recently added (\"Added yesterday\", \"Added 3 days ago\"), read newest first."
          },
          "furnished": {
            "title": "Furnished (rent)",
            "type": "boolean",
            "description": "Rent only: furnished rentals."
          },
          "petsAllowed": {
            "title": "Pets allowed (rent)",
            "type": "boolean",
            "description": "Rent only: rentals that allow pets."
          },
          "excludeDepositTaken": {
            "title": "Exclude deposit taken (rent)",
            "type": "boolean",
            "description": "Rent only: leave out rentals with a deposit taken."
          },
          "soldWithinDays": {
            "title": "Sold within the last days (sold)",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Sold only: sales of the last N days, counted to the run's day in Sydney time."
          },
          "soldAfter": {
            "title": "Sold on or after (sold)",
            "type": "string",
            "description": "Sold only: the first sale day (YYYY-MM-DD)."
          },
          "soldBefore": {
            "title": "Sold on or before (sold)",
            "type": "string",
            "description": "Sold only: the last sale day (YYYY-MM-DD)."
          },
          "excludeNoSalePrice": {
            "title": "Exclude sales without a shown price (sold)",
            "type": "boolean",
            "description": "Sold only: leave out sales whose price is withheld."
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "relevance",
              "newest",
              "oldest",
              "price-low",
              "price-high",
              "next-inspection",
              "next-auction",
              "sold-newest",
              "sold-oldest",
              "sold-price-high",
              "sold-price-low"
            ],
            "type": "string",
            "description": "The order of each search. A search larger than 2,000 listings that is split (below) is read in bands: price bands in ascending price (buy, rent) or sold day windows (sold)."
          },
          "maxItems": {
            "title": "Maximum listings in the run",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "The run stops after this many listing rows (looked up and searched together). Default 1,000; set a larger number for bigger runs.",
            "default": 1000
          },
          "maxItemsPerSearch": {
            "title": "Maximum listings per search",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Each search stops after this many listing rows."
          },
          "splitPastCap": {
            "title": "Read past the 2,000 listing window",
            "type": "boolean",
            "description": "realestate.com.au lists at most 2,000 rows of one search. On (the default), a larger search is read in bands (price bands for buy and rent, sold day windows for sold) until every listing is met; each search's coverage row says whether it was read in full. Off: the first 2,000."
          },
          "includeDetails": {
            "title": "Home details (add-on)",
            "type": "boolean",
            "description": "Read each listing's full record: title, description, feature list, exact map position, every inspection time, the auction time, the statement of information (Victoria), the agency's name, address and phone, each agent's rating and contacts (agents behind the personal data switch). Billed as one Home details event per row where the record was read."
          },
          "includeNearbySchools": {
            "title": "Nearby schools (with Home details)",
            "type": "boolean",
            "description": "With Home details: the nearest schools to each listing from realestate.com.au's school service (name, sector, years, type, distance, website). No extra event."
          },
          "nearbySchoolsCount": {
            "title": "Schools per listing",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many nearby schools per listing (default 10)."
          },
          "includePropertyHistory": {
            "title": "Property history and estimates (add-on)",
            "type": "boolean",
            "description": "Read each listing's public address page on realestate.com.au: the dated sale, lease and listing events with prices and agencies, the estimated value range with its confidence, the estimated weekly rent, the home's attributes and the suburb's median prices. Read through Apify's own unblocker proxy (about 25 s a page, six at a time). Billed as one Property history event per row whose page was read and is that home; a listing without a street address or without an exact address match is a free status on its row."
          },
          "includeCoordinates": {
            "title": "Map positions on search rows",
            "type": "boolean",
            "description": "On (the default): each search row gets its latitude and longitude from realestate.com.au's map of the same search, where the map places it (hidden addresses are not placed). No extra event. Home details always gives the listing's own position."
          },
          "includePersonalData": {
            "title": "Include agents' personal data",
            "type": "boolean",
            "description": "Off by default. On: each agent's name, profile id, profile link, photo, mobile and phone numbers, rating and review count. Agents are people: you are responsible for a lawful use of their data (the GDPR, the Australian Privacy Act and the Spam Act included). Agencies (name, id, address, office phone, profile link) are businesses and always delivered."
          },
          "maxPhotos": {
            "title": "Photos per listing",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "At most this many photo links per row (default 50). \"photoCount\" always gives the full number."
          },
          "outputFields": {
            "title": "Output fields",
            "type": "array",
            "description": "Keep only these fields in each listing row (dotted names allowed, for example \"price\", \"address.suburb\", \"details.description\"); \"type\" and \"id\" are always kept.",
            "items": {
              "type": "string"
            }
          },
          "suggestPlaces": {
            "title": "Place lookups",
            "type": "array",
            "description": "Texts to look up in realestate.com.au's place suggestions (suburbs, postcodes, states, regions), one per line: each gives a free row with up to 10 suggestions, to find the exact text for \"Places\".",
            "items": {
              "type": "string"
            }
          },
          "maxConcurrency": {
            "title": "Parallel reads",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "Reads at once (default 2). Each read waits about a second between calls on one connection."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave as is: the Actor reads realestate.com.au's app backend through Apify's datacenter proxy. Your own proxy links (http://) are used in turn if given."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}