{
  "openapi": "3.0.1",
  "info": {
    "title": "Rightmove Property Scraper",
    "description": "Scrape UK property listings from Rightmove - price, address, bedrooms, tenure, floor area, coordinates, agent and photos, for sale or to rent, by town, postcode or region.",
    "version": "0.1",
    "x-build-id": "YkbxdVrWRm9E9BHIp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/superslowsloth~rightmove-listings-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-superslowsloth-rightmove-listings-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/superslowsloth~rightmove-listings-scraper/runs": {
      "post": {
        "operationId": "runs-sync-superslowsloth-rightmove-listings-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/superslowsloth~rightmove-listings-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-superslowsloth-rightmove-listings-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",
        "required": [
          "locations"
        ],
        "properties": {
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Where to search, one per line: a town, a region, a postcode or an outcode, e.g. \"London\", \"Manchester\", \"SW1A\". Each is looked up in Rightmove's own location list and the best match is used. If you already have a Rightmove location id such as REGION^87490, paste it instead and it is used as given, with no lookup request spent.",
            "items": {
              "type": "string"
            }
          },
          "channel": {
            "title": "For sale or to rent",
            "enum": [
              "buy",
              "rent"
            ],
            "type": "string",
            "description": "Which Rightmove channel to search. \"buy\" reads property for sale, \"rent\" reads property to rent. The two are different pages on the site and a listing belongs to exactly one of them.",
            "default": "buy"
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price to include, in pounds. For rentals this is per calendar month, which is the unit Rightmove prices lettings in. Rightmove only accepts prices from its own list of steps and answers anything else with a page-not-found, which this actor reports rather than retrying."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price to include, in pounds; per calendar month for rentals. Same caveat as the minimum: Rightmove accepts only its own price steps."
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Fewest bedrooms to include. 0 is a real value on Rightmove and selects studios."
          },
          "maxBedrooms": {
            "title": "Maximum bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Most bedrooms to include."
          },
          "radius": {
            "title": "Search radius (miles)",
            "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": "How far beyond the location to search. Rightmove accepts only these steps; anything else is refused by the site. A radius makes overlapping searches likely, which is fine - a property matched by two of your locations is still delivered and charged once.",
            "default": "0.0"
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Restrict to certain property types, using Rightmove's own names: detached, semi-detached, terraced, flat, bungalow, land, park-home. Leave empty for every type.",
            "items": {
              "type": "string"
            }
          },
          "includeSSTC": {
            "title": "Include sold STC / let agreed",
            "type": "boolean",
            "description": "Include properties already under offer. Rightmove hides them by default; this actor always states the choice explicitly so a change to that default cannot quietly change what a saved run returns.",
            "default": false
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "",
              "6",
              "1",
              "2",
              "10"
            ],
            "type": "string",
            "description": "How Rightmove should order the results before they are read. \"Newest first\" is what makes a repeated run useful for monitoring new stock.",
            "default": "6"
          },
          "maxItems": {
            "title": "Maximum listings",
            "minimum": 1,
            "type": "integer",
            "description": "Budget for the whole run, across every location, not per location. A property that matches more than one of your searches, or that Rightmove repeats in a paid featured slot, is delivered and charged once.",
            "default": 100
          },
          "maxPages": {
            "title": "Maximum pages per location",
            "minimum": 1,
            "type": "integer",
            "description": "How deep to walk a single location. A page carries 24 results plus any featured listings the agents paid to insert above them. Rightmove itself refuses to page past index 1008, so roughly 42 pages is the site's own ceiling whatever is set here.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Rightmove answered a plain datacenter address on 2026-09-12 with no proxy at all. It does rate-limit an address that walks pages quickly, and a proxy is what gives the scraper a fresh address to retry on when that happens."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}