{
  "openapi": "3.0.1",
  "info": {
    "title": "Rightmove Property Scraper: UK Sale & Rent Listings",
    "description": "Scrape Rightmove properties for sale or to rent by location, filters or search URL, past the 1,000-result limit. Price, beds, baths, address, coordinates, agent, dates, tags; optional details: description, postcode, tenure, council tax, floorplans, EPC, stations. Unofficial. JSON/CSV/API.",
    "version": "0.1",
    "x-build-id": "h8XxTXlzt4FeHIxsK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kyungminlee~rightmove-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kyungminlee-rightmove-property-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/kyungminlee~rightmove-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-kyungminlee-rightmove-property-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/kyungminlee~rightmove-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-kyungminlee-rightmove-property-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": "Locations",
            "type": "array",
            "description": "Places to search, one per line: a town, city or area (`Manchester`, `Clapham`), a postcode district (`SW1A`, `M32`) or a Rightmove location identifier (`REGION^87490`, `OUTCODE^2506`). Each name is looked up with Rightmove's own location search and the first match is used; the resolved name is saved with every result and in the SUMMARY record. The filters below apply to these locations.",
            "items": {
              "type": "string"
            }
          },
          "searchUrls": {
            "title": "Rightmove search or property URLs",
            "type": "array",
            "description": "Paste URLs from rightmove.co.uk, one per line: a search results page (`/property-for-sale/find.html?...`, `/property-to-rent/find.html?...`, map view, or area pages such as `/property-for-sale/London.html`), or single property pages (`/properties/123456789`). Every filter in a search URL is kept as it is; the filters below do not change URLs. Property pages always return the full detail record.",
            "items": {
              "type": "string"
            }
          },
          "listingType": {
            "title": "For sale or to rent",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Search properties for sale or to rent.",
            "default": "sale"
          },
          "minPrice": {
            "title": "Minimum price (£)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price in pounds. For rentals this is rent per calendar month (pcm), like on Rightmove. Any whole number works."
          },
          "maxPrice": {
            "title": "Maximum price (£)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price in pounds (rentals: per calendar month). Leave empty for no limit."
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Minimum number of bedrooms (0 = studio)."
          },
          "maxBedrooms": {
            "title": "Maximum bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Maximum number of bedrooms."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Only these property types. Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "detached",
                "semi-detached",
                "terraced",
                "flat",
                "bungalow",
                "land",
                "park-home"
              ],
              "enumTitles": [
                "Detached",
                "Semi-detached",
                "Terraced",
                "Flats / apartments",
                "Bungalows",
                "Land",
                "Park homes"
              ]
            }
          },
          "radius": {
            "title": "Search radius",
            "enum": [
              "0.0",
              "0.25",
              "0.5",
              "1.0",
              "3.0",
              "5.0",
              "10.0",
              "15.0",
              "20.0",
              "30.0",
              "40.0"
            ],
            "type": "string",
            "description": "Also include properties within this distance of the location, as on Rightmove.",
            "default": "0.0"
          },
          "addedWithin": {
            "title": "Added to site",
            "enum": [
              "any",
              "1",
              "3",
              "7",
              "14"
            ],
            "type": "string",
            "description": "Only listings added to Rightmove recently. Useful for daily monitoring of new listings.",
            "default": "any"
          },
          "includeUnderOffer": {
            "title": "Include under offer / sold STC / let agreed",
            "type": "boolean",
            "description": "Also return listings that are under offer or sold subject to contract (for sale), or let agreed (to rent). Their `status` field says which.",
            "default": false
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "newest",
              "oldest",
              "price_high",
              "price_low"
            ],
            "type": "string",
            "description": "Order in which Rightmove returns listings. When a search is split into price bands (more than about 1,000 results and you want more), results come cheapest first instead.",
            "default": "newest"
          },
          "maxProperties": {
            "title": "Maximum properties per search",
            "minimum": 0,
            "type": "integer",
            "description": "How many properties to save for each location or search URL. 0 = all of them. Properties already saved by another search in the same run are skipped and do not count. The run's maximum charge can lower this.",
            "default": 200
          },
          "splitByPrice": {
            "title": "Get more than 1,000 results per search (split by price)",
            "type": "boolean",
            "description": "Rightmove shows at most about 1,000 listings (42 pages) for any search. When a search has more and you ask for more, the Actor reads it in price bands (cheapest first) and merges them without duplicates, so you can collect a whole city. Turn off to stop at Rightmove's 1,000.",
            "default": true
          },
          "includeDetails": {
            "title": "Include property details",
            "type": "boolean",
            "description": "Also open each property page to add the full description, key features, full postcode, tenure and lease years left, council tax band, service charge and ground rent, size, rooms, nearest stations, floorplan, EPC and brochure links, deposit and furnishing for rentals. One extra request per property, charged as `property-detail` instead of `property`.",
            "default": false
          },
          "detailConcurrency": {
            "title": "Parallel detail pages",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "How many property pages are loaded at the same time when details are on, each through its own proxy IP at about one request per second. Higher is faster; lower is gentler.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "The Apify datacenter proxy (default) spreads requests over several IPs and switches to a fresh IP whenever Rightmove slows one down. You can turn it off; requests then come from the run's own IP.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}