{
  "openapi": "3.0.1",
  "info": {
    "title": "Rightmove Scraper: Price Drops & Land Registry Sold Prices",
    "description": "UK homes for sale on Rightmove by town, postcode district or search link, with Rightmove's own 'reduced on' date, new listings and price drops since your last run, and HM Land Registry sold prices in the same postcode district (median for the same property type). Optional full details.",
    "version": "1.0",
    "x-build-id": "EgTPJCgghNqlwm8Jv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/wellbuilt_zythem~rightmove-listings/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-wellbuilt_zythem-rightmove-listings",
        "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/wellbuilt_zythem~rightmove-listings/runs": {
      "post": {
        "operationId": "runs-sync-wellbuilt_zythem-rightmove-listings",
        "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/wellbuilt_zythem~rightmove-listings/run-sync": {
      "post": {
        "operationId": "run-sync-wellbuilt_zythem-rightmove-listings",
        "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",
        "required": [
          "locations"
        ],
        "properties": {
          "locations": {
            "title": "Areas",
            "type": "array",
            "description": "One per line: a town (\"Bristol\"), a postcode district (\"N5\", \"SW1A\"), a Rightmove id (\"OUTCODE^1683\") or a Rightmove search link with your filters. Rightmove shows at most 42 pages (about 1,000 homes) per area: for a big city, give its postcode districts.",
            "items": {
              "type": "string"
            }
          },
          "pagesPerLocation": {
            "title": "Pages per area",
            "minimum": 1,
            "maximum": 42,
            "type": "integer",
            "description": "Result pages per area, 24 homes each, newest first. 1 to 42.",
            "default": 3
          },
          "minPrice": {
            "title": "Min price £",
            "minimum": 1,
            "type": "integer",
            "description": "Rightmove search filter."
          },
          "maxPrice": {
            "title": "Max price £",
            "minimum": 1,
            "type": "integer",
            "description": "Rightmove search filter."
          },
          "minBedrooms": {
            "title": "Min bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Rightmove search filter."
          },
          "maxBedrooms": {
            "title": "Max bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Rightmove search filter."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Rightmove search filter: detached, semi-detached, terraced, flat, bungalow, land, park-home.",
            "items": {
              "type": "string"
            }
          },
          "maxDaysSinceAdded": {
            "title": "Added in the last N days",
            "minimum": 1,
            "type": "integer",
            "description": "Rightmove search filter: 1, 3, 7 or 14."
          },
          "includeSoldSTC": {
            "title": "Include sold subject to contract",
            "type": "boolean",
            "description": "Also list homes already under offer.",
            "default": false
          },
          "onlyReduced": {
            "title": "Only homes Rightmove marks as reduced",
            "type": "boolean",
            "description": "Deliver only listings whose last update on Rightmove was a price reduction.",
            "default": false
          },
          "includeAreaSales": {
            "title": "Compare with Land Registry sold prices",
            "type": "boolean",
            "description": "For each postcode district, the sales HM Land Registry registered in the last months: count and median price for the same property type, and the asking price compared with it. One query per district, 25 to 45 seconds each.",
            "default": true
          },
          "areaMonths": {
            "title": "Months of sales to compare",
            "minimum": 1,
            "maximum": 36,
            "type": "integer",
            "description": "1 to 36.",
            "default": 12
          },
          "maxPriceVsSameTypeMedianPct": {
            "title": "Asking price vs sold median, max %",
            "minimum": -90,
            "maximum": 500,
            "type": "integer",
            "description": "Deliver only homes whose asking price is at most this % above the median sold price of the same type in their district. -10 keeps homes asking 10 % below it. Needs the Land Registry comparison."
          },
          "includeDetails": {
            "title": "Open each listing's page",
            "type": "boolean",
            "description": "Adds the full postcode, size, lease years left, council tax band, service charge, agent phone, nearest station, key features, description, and the last 5 sales HM Land Registry registered at that exact postcode. One extra request per home.",
            "default": false
          },
          "maxDetails": {
            "title": "Max listing pages per run",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Listing pages opened per run, at most 500.",
            "default": 100
          },
          "onlyChanges": {
            "title": "Only new listings and price drops since the last run",
            "type": "boolean",
            "description": "Deliver only homes not seen in the previous run of this feed, or whose price fell at least \"Price drop %\" since then. On the first run of an area, only homes Rightmove marks as reduced.",
            "default": false
          },
          "priceDropThresholdPct": {
            "title": "Price drop %",
            "minimum": 1,
            "type": "integer",
            "description": "A home counts as a price drop when its price is at least this much lower than in the last run.",
            "default": 1
          },
          "includeOffMarket": {
            "title": "Include homes that left the market",
            "type": "boolean",
            "description": "Also deliver homes seen in the previous run that are no longer listed (sold, withdrawn or re-listed), when all pages of the area were read.",
            "default": false
          },
          "maxResults": {
            "title": "Max rows",
            "minimum": 1,
            "type": "integer",
            "description": "Cap for the run. Empty for no cap."
          },
          "stateStoreName": {
            "title": "Feed memory name",
            "type": "string",
            "description": "Key-value store that remembers the homes and prices seen. One name per feed, the same every run.",
            "default": "rightmove-listings-seen"
          },
          "resetState": {
            "title": "Forget previous runs",
            "type": "boolean",
            "description": "Start the feed memory from scratch in this run: everything will count as new.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed: measured without proxy from Apify.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}