# Rightmove Estate Agents Scraper

> Get every estate and letting agent on Rightmove in any UK town, county or postcode, with phone numbers, address and services, plus how many homes each one has for sale and to let.

Rightmove Estate Agents Scraper finds every estate and letting agent branch on Rightmove in the UK towns, counties or postcodes you type, with phone numbers, address and services. Switch on full details to add how many homes each branch has for sale and to let right now, its recent sales and lets, and the company behind it.

- Web page: https://keklik.io/scrapers/rightmove-agents-scraper
- Apify Actor: `keklik/rightmove-agents-scraper` (https://apify.com/keklik/rightmove-agents-scraper)
- You enter: UK towns, counties or postcodes
- You get: Branch name, brand, phone numbers, address, postcode and services
- Status: working, last tested 11 Nov 2026
- Needs: an Apify account (free is enough to try). No login to the site itself.

## Price per 1,000 agent branches

US dollars, on each Apify plan. Apify's platform costs are included. Add-ons are charged only when switched on in the input.

| Charge | Free | Starter | Scale | Business |
|---|---:|---:|---:|---:|
| Agent branch: Each agent branch the scraper saves. | $0.75 | $0.70 | $0.60 | $0.50 |
| Full branch details (add-on): Only when full details are on, and only for branches whose profile loaded. Charged on top of the branch itself. | $0.75 | $0.70 | $0.60 | $0.50 |

Apify's plans and a calculator: https://keklik.io/pricing.md

## Input

The run input is a JSON object with these keys:

- `locations` (array, optional): Locations. Towns, cities, counties or postcode districts, such as Manchester, Surrey or SW11. Each one is matched to the nearest Rightmove location.
- `startUrls` (array, optional): Rightmove estate agent URLs. Optional. A "Find an agent" search or a single branch page copied from rightmove.co.uk. You can use these instead of Locations or as well as them.
- `radius` (string, optional, default "0", one of "0", "0.25", "0.5", "1", "3", "5", "10", "15", "20", "30", "40"): Search radius. How far around each location to look, up to 40 miles. Pasted search URLs ignore it and keep their own radius.
- `agentType` (string, optional, default "ALL", one of "ALL", "SALES", "LETTINGS"): Agent type. All agents, or only the ones doing sales or lettings. A pasted branch page is always returned.
- `brandName` (string, optional): Agent name filter. Keeps only branches whose agent name matches, for example Foxtons. It works with Locations only.
- `fetchBranchDetails` (boolean, optional, default false): Fetch full branch details. Adds the full branch profile. It is charged per branch on top of the branch itself and makes the run slower.
- `maxResults` (integer, optional): Max results. Stops after this many branches in total. Leave it empty to collect every branch. Runs on the Apify Free plan stop at 100.

Example input:

```json
{
  "locations": [
    "London"
  ],
  "fetchBranchDetails": true,
  "maxResults": 600,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "radius": "0",
  "agentType": "ALL"
}
```

## Output: one row per agent branch

42 fields in 8 groups.

### Branch

- `name`: Agent branch. Agent and branch name, such as "Abatoria, Wapping".
- `brand`: Brand. The agent's brand.
- `branch`: Branch name. The branch, such as "Wapping".
- `company_type`: Company type. iea (independent estate agent), ila (independent letting agent), corporate, commercial or buildtorent.
- `sales`: Does sales. True when the branch sells homes.
- `lettings`: Does lettings. True when the branch lets homes.
- `logo`: Logo. Link to the branch logo.
- `summary`: Summary. Short description of the branch.

### Contact and address

- `phone`: Direct phone. The branch's own phone line.
- `sales_phone`: Sales phone. The number Rightmove shows for sales.
- `lettings_phone`: Lettings phone. The number Rightmove shows for lettings.
- `address`: Address. Full branch address.
- `postcode`: Postcode. Branch postcode.
- `contact_url`: Enquiry form. Link to the branch's enquiry form on Rightmove.

### Company and map location (add-on)

- `details.company_name`: Registered company. The company behind the branch.
- `details.trading_name`: Trading name. The name the agent trades under.
- `details.postcode`: Postcode (profile). Postcode from the branch profile.
- `details.latitude`: Latitude. Latitude of the branch.
- `details.longitude`: Longitude. Longitude of the branch.

### All services (add-on)

- `details.services.sales`: Sales service. True when the branch sells homes.
- `details.services.lettings`: Lettings service. True when the branch lets homes.
- `details.services.commercial`: Commercial. True when the branch handles commercial property.
- `details.services.build_to_rent`: Build to rent. True for a build-to-rent operator.
- `details.services.overseas`: Overseas property. True when the branch handles property abroad.
- `details.services.new_homes`: New homes. True when the branch sells new homes.

### Properties listed now (add-on)

- `details.for_sale.count`: For sale now. Number of properties the branch has for sale right now.
- `details.for_sale.url`: For sale link. Link to those listings on Rightmove.
- `details.to_let.count`: To let now. Number of properties the branch has to let right now.
- `details.to_let.url`: To let link. Link to those listings on Rightmove.

### Recent sales and lets (add-on)

- `details.recently_sold`: Recently sold. Recent sales: address, price, status, bedrooms, bathrooms and property type.
- `details.recently_let`: Recently let. Recent lets: address, price, status, bedrooms, bathrooms and property type.

### Descriptions and memberships (add-on)

- `details.description`: Full description. The branch's full description.
- `details.sales_description`: Sales description. The branch's description of its sales service.
- `details.lettings_description`: Lettings description. The branch's description of its lettings service.
- `details.affiliations`: Memberships. Industry bodies the branch belongs to, such as NAEA and ARLA.
- `details.testimonials`: Testimonials. Number of customer testimonials.
- `details.network_branches`: Network branches. Number of other branches in the same network.

### Search and Rightmove IDs

- `search_location`: Searched location. The location you typed that found this branch.
- `id`: Branch ID. Rightmove branch ID.
- `company_id`: Company ID. Rightmove company ID.
- `brand_id`: Brand ID. Rightmove brand ID.
- `url`: Rightmove page. The branch's page on Rightmove.

## How it works

1. Type where. Add more towns, counties or postcodes and each one is searched. A branch found twice appears once.
2. Keep only the agents you want. Choose sales or lettings agents, look up to 40 miles around, or keep one brand's branches, such as Foxtons.
3. See how busy each branch is. Switch on full details for the homes each branch has for sale and to let right now, its recent sales and lets, and the company behind it.
4. Download your list. As a spreadsheet, in Google Sheets, or into your CRM.

## Use cases

- Prospect lists for selling to agents: Branches with phone numbers and postcodes for anyone whose customers are agents: software vendors, property photographers, EPC assessors, conveyancers and mortgage brokers.
- Mapping a local market: See which agents operate in a town or county, how many are independent and how many belong to a chain, and where agents are thin on the ground.
- Ranking branches by stock: With full details on, compare how many homes each branch has for sale and to let today, next to its recent sales and lets.
- Covering one agent group: Every branch of a national brand in the areas you serve, for account-based outreach.

## Good to know

Runs on the Apify Free plan stop at 100 branches. Any paid Apify plan lifts that cap. Rightmove doesn't publish agents' email addresses or websites, so they are not in the data.

## Questions

### Is it legal to scrape Rightmove?

The scraper only collects information that Rightmove shows publicly to every visitor: business listings of estate and letting agents. Branch phone numbers and addresses are business contact details, but some agents are sole traders, so the data can still count as personal data. If you store or contact agents in the UK or EU, follow UK GDPR and PECR, have a legitimate reason, and offer an opt-out. Check with a lawyer if you are unsure.

### Do I need a Rightmove account?

No. The scraper needs no Rightmove account, login or cookies.

### Can I get agent email addresses or websites?

No. Rightmove does not publish agent email addresses or websites, so they are not in the data. To reach a branch, use its phone numbers or its contact_url, which opens the branch's enquiry form on Rightmove.

### How do I get every agent in a city or county?

Enter it in Locations, for example Surrey or London, and leave Max results empty. To widen the area around a town or postcode, set Search radius.

### How do I find only lettings agents, or all branches of one brand?

Set Agent type to lettings agents only (or sales agents only). For one brand, put its name in Agent name filter, for example Foxtons, and add the area in Locations.

### Can I see how many properties each agent has?

Yes. Turn on Fetch full branch details to add how many properties each branch has for sale and to let right now, with links to those listings, plus its recently sold and let properties, its registered company name and where it is on a map. It is charged per branch, only for branches whose full profile loaded.

### Why is a phone number empty?

Rightmove doesn't show every number for every branch. A branch that only does sales normally has no lettings phone.

### What happens when a run fails?

The run's status message says why, and the log names each input that failed. If a mistake in the input stops the run before anything is scraped, the run ends without results and its status message says what to change. Either way the Actor sends us a short error report, so we can fix the cause even if you never open an issue: the Actor's build, the reason, the counts from the end-of-run summary, whether your Apify plan is free or paid and, for an unexpected error, where in our code it happened. Web addresses and @usernames are blanked out first. The report never includes your input, your account, the pages you scraped or your results. Every run, failed or not, also sends one usage line as it ends, so we can see which options people use, what runs cost us and how well the data is filled: how many of each charged event it used (for example 120 full details) and the price your plan paid for them; the run's platform cost by item and its resources (time, memory, proxy traffic); whether it stopped at your maximum cost or maximum items; how it was started (Console, API, schedule, saved task, and for API runs the kind of tool, such as Make, Zapier or the Apify client, never the tool's full identity); our scraper's own retry and timing counts; and for each output field, how many results had it filled (counts only, never the values). That never includes your input, your account, your IP address, the pages you scraped or your results either. If you need help with a run, open an issue on the Issues tab and attach the run, or email support@kekliktech.com with the run's link; the run's log ends with both.

## Run it

- In Apify Console: https://apify.com/keklik/rightmove-agents-scraper
- With the Apify API: POST https://api.apify.com/v2/acts/keklik~rightmove-agents-scraper/run-sync-get-dataset-items?token=APIFY_TOKEN with the input JSON as the body. It returns the rows.
- From an AI agent: connect the Apify MCP server (https://mcp.apify.com), add the Actor `keklik/rightmove-agents-scraper` and call it with the input.
