{
  "openapi": "3.0.1",
  "info": {
    "title": "Rightmove Scraper: UK Properties, Prices & Agents",
    "description": "Rightmove listings for sale or to rent by town, postcode, outcode or pasted results URL, with the agent name and phone, and optionally every property page: full description, postcode, council tax, tenure, floor plans, EPC, stations. Public pages only, no proxy.",
    "version": "0.1",
    "x-build-id": "q0yfFyPIxKVin1TT4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/steadyrows~rightmove-properties/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-steadyrows-rightmove-properties",
        "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/steadyrows~rightmove-properties/runs": {
      "post": {
        "operationId": "runs-sync-steadyrows-rightmove-properties",
        "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/steadyrows~rightmove-properties/run-sync": {
      "post": {
        "operationId": "run-sync-steadyrows-rightmove-properties",
        "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": "Towns, areas, postcodes or outcodes as Rightmove spells them, e.g. `Leeds`, `Hackney`, `SW1W`, `Manchester City Centre`; or Rightmove location codes such as `REGION^904`. Each location is one search.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Results-page or property URLs",
            "type": "array",
            "description": "Paste results pages copied from the site (`https://www.rightmove.co.uk/property-for-sale/find.html?locationIdentifier=REGION%5E904&minPrice=100000&...`, all their filters are kept), sold-prices pages (`https://www.rightmove.co.uk/house-prices/leeds.html?soldIn=1&propertyType=FLAT`) or property pages (`https://www.rightmove.co.uk/properties/123456789`).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "channel": {
            "title": "For sale or to rent",
            "enum": [
              "buy",
              "rent",
              "sold"
            ],
            "type": "string",
            "description": "Which listings the locations above search. **Sold prices** returns past sales (HM Land Registry price paid data as Rightmove shows it, with every earlier sale of the same home, photos, beds, baths and coordinates).",
            "default": "buy"
          },
          "radiusMiles": {
            "title": "Radius (miles)",
            "type": "number",
            "description": "Search radius around each location: 0, 0.25, 0.5, 1, 3, 5, 10, 15, 20, 30 or 40 miles. 0 = the area itself.",
            "default": 0
          },
          "minPrice": {
            "title": "Min price",
            "type": "integer",
            "description": "Lowest price in GBP (per month for rentals). For sold prices: the latest sale price, filtered on the rows read."
          },
          "maxPrice": {
            "title": "Max price",
            "type": "integer",
            "description": "Highest price in GBP (per month for rentals)."
          },
          "minBedrooms": {
            "title": "Min bedrooms",
            "type": "integer",
            "description": "0 = studio."
          },
          "maxBedrooms": {
            "title": "Max bedrooms",
            "type": "integer",
            "description": "Leave empty for no upper limit."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Any of `detached`, `semi-detached`, `terraced`, `flat`, `bungalow`, `land`, `park-home`, `private-halls`. Empty = all types. For sold prices, `bungalow`, `land`, `park-home` and `private-halls` all map to the site's \"Other\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxDaysSinceAdded": {
            "title": "Added in the last N days",
            "type": "integer",
            "description": "Only listings added or reduced within this many days: 1, 3, 7 or 14. Empty = any time."
          },
          "includeSold": {
            "title": "Include sold STC / let agreed",
            "type": "boolean",
            "description": "Also return properties marked Sold Subject To Contract or Let Agreed.",
            "default": false
          },
          "soldWithinYears": {
            "title": "Sold within (years)",
            "type": "integer",
            "description": "Sold prices only: sales within the last 1, 2, 3, 5, 10, 15, 20 or 30 years. 0 = all years (back to 1995).",
            "default": 0
          },
          "tenure": {
            "title": "Tenure (sold prices)",
            "enum": [
              "any",
              "freehold",
              "leasehold"
            ],
            "type": "string",
            "description": "Sold prices only: freehold or leasehold sales.",
            "default": "any"
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "newest",
              "oldest",
              "price-asc",
              "price-desc"
            ],
            "type": "string",
            "description": "Order of each search before the limit is applied.",
            "default": "newest"
          },
          "maxProperties": {
            "title": "Max properties per search",
            "minimum": 1,
            "type": "integer",
            "description": "Upper limit per location or results-page URL. Rightmove lists 1,000 per search; above that the actor splits the search by property type, bedrooms and price bands and removes duplicates. Sold prices are split by property type, tenure and both price ends; for a whole city, list its outcodes (LS1, LS2, ...) for full coverage.",
            "default": 500
          },
          "includeDetails": {
            "title": "Open every property page",
            "type": "boolean",
            "description": "Adds the full description, key features, full postcode, council tax band, tenure years, ground rent and service charge, floor plans, EPC, nearest stations, room list, letting terms and the agent's company and address. One extra request per property. Not used for sold prices (their rows are already complete).",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}