# Rightmove Scraper - UK Property Listings & Agent Leads (`scrapesage/rightmove-scraper`) Actor

Scrape Rightmove UK property listings for sale & to rent: price, beds/baths, address, geo, floor area, EPC, council tax, tenure, description, photos, nearest stations - plus estate-agent leads (branch, phone). New-listing & price-drop monitoring. No login, key or browser.

- **URL**: https://apify.com/scrapesage/rightmove-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** Real estate, Lead generation, Agents
- **Features:** Limited permissions
- **Stats:** 5 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.12 / 1,000 property scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Rightmove Scraper - UK Property Listings, Prices & Agent Leads

> **Disclaimer:** This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Rightmove plc or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "Rightmove" is referenced only to describe the publicly available website this Actor collects data from.

Extract **complete Rightmove property data** for **sale and rent** across the UK - prices, beds/baths, full address & geo, floor area, EPC, council tax band, ground rent, service charge, tenure, full description, key features, photos and nearest stations. Optionally turn every estate agent into a **ready-to-contact B2B lead** (branch, brand, phone, valuation page), and run in **monitoring mode** to capture only new listings and price drops.

No login, no cookies, no browser - fast JSON extraction with 99%+ reliability.

### Why this Rightmove scraper?

This actor pulls the **full property detail layer** too - the same fields a buyer sees on the property page - and adds estate-agent leads and change monitoring, shipping **a complete dataset**:

| Data | This actor |
| --- | --- |
| Price, beds/baths, address, geo, type | ✅ |
| Full description + all key features | ✅ |
| Floor area (sq ft **and** sq m) | ✅ |
| EPC, council tax band, ground rent, service charge | ✅ |
| Tenure + years remaining on lease | ✅ |
| Nearest stations + distances | ✅ |
| Added/reduced reason & date, price history flag | ✅ |
| Estate-agent **leads** (branch, brand, phone, valuation URL) | ✅ opt-in |
| New-listing & **price-drop monitoring** | ✅ opt-in |
| Location auto-resolve (type a place name) | ✅ |

### Use cases

- **Property investment & sourcing** - find below-market and reduced stock fast; filter by yield-relevant fields (price, beds, floor area, tenure, ground rent, service charge) and watch a patch for new listings and price drops.
- **Lead generation** - estate agents are active B2B buyers (and sellers): they need proptech, mortgage & conveyancing referrals, photography, EPC assessors, floorplans, cleaning and marketing. Output one deduplicated lead per branch with brand, phone and valuation page.
- **Market & pricing intelligence** - track asking prices, £/sq ft, days-on-market signals (`addedOrReduced`, `listingUpdateReason`) and stock levels by town, outcode or postcode.
- **Comparables & valuation** - pull every active comparable around a postcode with size, tenure and council tax band for AVM and CMA workflows.
- **Relocation & portals** - feed property search apps, newsletters and dashboards with structured, photo-rich listings for any UK area.

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) - the free plan is enough to try this actor.
2. Open the **Rightmove Scraper**, enter one or more `locations` (e.g. `London`, `Manchester`, `SW1A`), pick **for sale** or **to rent**, set your filters, and click **Start**.
3. Watch results stream into the dataset table.
4. **Export** as JSON, CSV, Excel, XML, or RSS - or pull results programmatically via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "searchType": "for-sale",
    "locations": ["London", "Manchester", "SW1A"],
    "minPrice": 400000,
    "maxPrice": 800000,
    "minBedrooms": 2,
    "propertyTypes": ["flat"],
    "radius": "1.0",
    "sortType": "6",
    "includePropertyDetails": true,
    "deduplicateAgents": true,
    "maxResults": 500
}
```

- **searchType** - `for-sale` or `to-rent` (applies to `locations` searches).
- **locations** - place names (`London`), outcodes/postcodes (`SW1A`, `M1`), station names, Rightmove identifiers (`REGION^87490`, `OUTCODE^2506`), or a full Rightmove search URL. Each is auto-resolved via Rightmove's own autocomplete.
- **startUrls** - paste Rightmove search-results URLs (paginated with your filters) or individual property URLs (scraped in full detail).
- **propertyUrls** - direct property URLs or numeric IDs to scrape detail records for.
- **minPrice / maxPrice / minBedrooms / maxBedrooms / propertyTypes / radius / sortType / maxDaysSinceAdded / keywords** - search filters.
- **includeSSTC / includeLetAgreed / furnishTypes** - include Sold STC (sale) or Let Agreed (rent); restrict rentals by furnishing.
- **includePropertyDetails** *(default true)* - open each property page for the full detail layer (description, key features, floor area, EPC, council tax, ground rent, service charge, tenure, nearest stations, photos, full agent profile). Turn off for a faster, cheaper listing-only run.
- **deduplicateAgents** *(default false)* - also output one lead record per unique estate-agent branch (`type: "agent"`).
- **maxResults** - global cap (Rightmove returns up to ~1,000 results per individual search).
- **monitorMode** *(default false)* - only emit new and price-changed listings (see below).

### Output

One record per property (`type: "property"`), plus optional estate-agent lead records (`type: "agent"`):

```json
{
    "type": "property",
    "id": "173885045",
    "url": "https://www.rightmove.co.uk/properties/173885045",
    "channel": "for-sale",
    "displayAddress": "Michael Road, Kings Road Park, SW6",
    "propertyType": "2 bedroom flat for sale",
    "bedrooms": 2,
    "bathrooms": 2,
    "price": 1150000,
    "currency": "GBP",
    "displayPrice": "£1,150,000",
    "pricePerSqFt": "£1232.58 per sq ft",
    "addedOrReduced": "Reduced on 27/04/2026",
    "listingUpdateReason": "price_reduced",
    "latitude": 51.477491,
    "longitude": -0.18878,
    "postcode": "SW6 2RN",
    "outcode": "SW6",
    "ukCountry": "England",
    "tenureType": "LEASEHOLD",
    "yearsRemainingOnLease": 994,
    "councilTaxBand": "G",
    "annualGroundRent": 800,
    "annualServiceCharge": 6062.66,
    "sizeSqFt": 933,
    "sizeSqM": 87,
    "keyFeatures": ["Turn-key lateral ground floor apartment", "Two bedrooms, two bathrooms"],
    "description": "A turn-key apartment within this newly formed development…",
    "nearestStations": [{ "name": "Imperial Wharf Station", "types": ["NATIONAL_TRAIN"], "distanceMiles": 0.31, "unit": "miles" }],
    "imageCount": 10,
    "floorplanCount": 1,
    "mainImage": "https://media.rightmove.co.uk/.../173885045_max_476x317.jpeg",
    "agentName": "Chestertons",
    "agentBranch": "Fulham Parsons Green",
    "agentPhone": "020 3870 3072",
    "agentBranchAddress": "78 New Kings Road, Fulham, London, SW6 4LT",
    "agentProfileUrl": "https://www.rightmove.co.uk/estate-agents/agent/Chestertons/Fulham-Parsons-Green-48856.html",
    "searchLocation": "London",
    "scrapedAt": "2026-06-16T12:00:00.000Z"
}
```

In **monitoring mode**, records are tagged `changeType` (`new` or `price_changed`) and price changes include `previousPrice` and `priceDelta`.

### Monitoring mode & scheduling

Turn on **monitorMode** to remember the properties already returned and emit **only** ones that are new or whose price/status changed since the last run. This is the cleanest way to track fresh stock and price drops in a patch.

It is **fully compatible** with [Apify Schedules](https://docs.apify.com/platform/schedules) - they do different jobs: the schedule decides *when* the run fires (e.g. every morning), and monitoring mode decides *what* is returned (only the deltas). Point each scheduled search at its own `monitorStoreName` to keep histories separate.

### How much does it cost to scrape Rightmove?

This Actor uses Apify's **pay-per-event** pricing: you are charged only for the results it delivers, with no monthly rental and no start fee. The events it can charge are:

- **Property scraped** - One Rightmove property: price, beds and baths, address, geo, property type and, with full details on, description, key features, floor area, EPC, council tax band, tenure, nearest stations, photos and the estate-agent profile.
- **Estate-agent lead scraped** - One deduplicated estate-agent branch lead: agent and brand name, branch, phone, branch address, profile and valuation URLs and a sample listing.

The current price of each event is shown on the **Pricing** tab of this page. Set a maximum total charge on the run if you want a hard cap on spend, and use the input limits to control how much the Actor fetches.

### Automate & schedule

Run this actor on autopilot and pull results into your own stack:

- **[Apify API](https://docs.apify.com/api/v2)** - start runs, fetch datasets, and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** - official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** - run it hourly/daily/weekly to monitor new stock and price drops in a town, outcode or postcode; perfect for alerts and lead pipelines.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** - trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/rightmove-scraper').call({
    searchType: 'for-sale',
    locations: ['Manchester'],
    minBedrooms: 2,
    maxPrice: 350000,
    includePropertyDetails: true,
    deduplicateAgents: true,
    maxResults: 500,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} properties & agent leads`);
```

### Integrate with any app

Connect the dataset to 5,000+ apps - no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** - multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** - push new property alerts or agent leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** - get notified when a monitored search finds new stock or a price drop.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** - auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** - pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** - trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. You can call this actor from Claude, ChatGPT, or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** - ask your assistant to "find 2-bed flats under £350k in Manchester added this week and list the agents' phone numbers" and let it run this scraper for you.

### Agent-ready: autonomous payments (x402 & Skyfire)

This actor is **agent-ready**: AI agents can discover it, run it, and **pay for it autonomously**, with no Apify account and no human in the loop. It uses [pay-per-event](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)**: an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp), with no account and no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/skyfire)**: agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

### More scrapers from scrapesage

Build a complete **property & local-leads stack**:

- **[Rent.com Scraper](https://apify.com/scrapesage/rent-com-scraper)** - US rental listings, prices & property-management leads.
- **[FastExpert Agent Scraper](https://apify.com/scrapesage/fastexpert-agent-scraper)** - US real-estate agent leads, stats & reviews.
- **[Airbnb Scraper](https://apify.com/scrapesage/airbnb-scraper)** - short-let listings, prices & availability.
- **[Houzz Scraper](https://apify.com/scrapesage/houzz-scraper)** - home-improvement pros, contacts & reviews.
- **[Companies House Scraper](https://apify.com/scrapesage/companies-house-scraper)** - UK companies, directors & PSCs (qualify agents & developers).
- **[Craigslist Scraper](https://apify.com/scrapesage/craigslist-scraper)** - classifieds incl. housing & for-sale-by-owner.
- **[99.co Property Scraper](https://apify.com/scrapesage/99-co-property-scraper)** - Singapore property listings & agent leads.
- **[EdgeProp.sg Scraper](https://apify.com/scrapesage/edgeprop-singapore-scraper)** - Singapore property & agent leads.

### Tips

- **Big cities**: Rightmove caps each individual search at ~1,000 results. To exhaust a large area, split runs by outcode/postcode, by `propertyTypes`, or by price band.
- **Fresh stock only**: set `maxDaysSinceAdded` (e.g. `1` or `7`) and/or turn on `monitorMode` to capture just new and reduced listings.
- **Cost control**: turn off `includePropertyDetails` for a fast listing-only run (still 30+ fields per card including agent name & phone); agent leads are deduplicated per branch.
- **Proxies**: the default Apify Proxy works well and keeps costs low. If you hit rate limiting on very large runs, switch the proxy to Residential.

### FAQ

**How do I scrape Rightmove for a specific area?** Put the place in `locations` - a name (`Leeds`), an outcode/postcode (`LS1`), a station, or a Rightmove identifier (`REGION^87490`). Combine with filters to narrow by price, beds, type and radius. You can also paste a full Rightmove search URL.

**Can I get sale and rental data?** Yes - set `searchType` to `for-sale` or `to-rent`. Rental records include the rent frequency (e.g. pcm) and a per-week equivalent where Rightmove provides it.

**Where do the agent phone numbers come from?** From the property's own listing - Rightmove publishes the marketing branch's display name and contact telephone on every listing. With `deduplicateAgents` on, the actor rolls these up into one lead per branch.

**How do I monitor new listings and price drops automatically?** Turn on `monitorMode` and create an [Apify Schedule](https://docs.apify.com/platform/schedules). Each run returns only new and price-changed properties; add a [webhook](https://docs.apify.com/platform/integrations/webhooks) or [Zapier zap](https://docs.apify.com/platform/integrations/zapier) to push them into your CRM or a Slack channel.

**Can I export to Google Sheets, CSV, or Excel?** Yes - one click in the dataset view, or automatically on every run via the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**A field is null - why?** Some listings genuinely don't publish a value (e.g. freehold houses have no lease years; online-only developments omit a station). Fields are `null` only when the data doesn't exist, not because the scraper skipped them.

**Is scraping Rightmove legal?** This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws (UK GDPR for personal data) and Rightmove's terms.

### Disclaimer

**This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Rightmove plc or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.**

"Rightmove" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official Rightmove product, is not authorised or certified by Rightmove plc, and does not distribute Rightmove software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.

### Need help?

Open an issue on the actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests are welcome - this actor is actively maintained.

# Actor input Schema

## `searchType` (type: `string`):

Scrape properties **for sale** or **to rent**. Applies to the `locations` searches below (start URLs keep their own channel).

## `locations` (type: `array`):

Places to search. Use plain names (`London`, `Manchester`, `Bristol`), outcodes/postcodes (`SW1A`, `M1`), station names, or Rightmove location identifiers (`REGION^87490`, `OUTCODE^2506`) - each is auto-resolved via Rightmove's own autocomplete. You can also paste a full Rightmove search URL here.

## `startUrls` (type: `array`):

Optional. Paste Rightmove **search-results URLs** (`/property-for-sale/find.html?...`, `/property-to-rent/find.html?...`) or individual **property URLs** (`/properties/<id>`). Search URLs are paginated and crawled with your filters baked in; property URLs are scraped in full detail.

## `propertyUrls` (type: `array`):

Optional. Direct Rightmove property URLs or numeric IDs (`https://www.rightmove.co.uk/properties/173885045` or `173885045`) to scrape the full detail record for each.

## `minPrice` (type: `integer`):

Minimum price. For rentals this is per the listing's frequency (usually pcm). Leave empty for no minimum.

## `maxPrice` (type: `integer`):

Maximum price. Leave empty for no maximum.

## `minBedrooms` (type: `integer`):

Minimum number of bedrooms (use 0 for studios).

## `maxBedrooms` (type: `integer`):

Maximum number of bedrooms.

## `propertyTypes` (type: `array`):

Restrict to specific property types. Leave empty for all.

## `radius` (type: `string`):

Expand the search around the location. `0` = this area only.

## `sortType` (type: `string`):

How Rightmove orders the results before they are collected.

## `maxDaysSinceAdded` (type: `string`):

Only listings added/updated within this many days. Great for fresh-stock monitoring.

## `keywords` (type: `string`):

Optional free-text keyword filter (e.g. `garden`, `garage`, `sea view`).

## `includeSSTC` (type: `boolean`):

Include properties marked Sold Subject To Contract. Applies to for-sale searches.

## `includeLetAgreed` (type: `boolean`):

Include properties marked Let Agreed. Applies to to-rent searches.

## `furnishTypes` (type: `array`):

Restrict rentals by furnishing. Applies to to-rent searches only.

## `includePropertyDetails` (type: `boolean`):

Open each property page for the rich record: full description, all key features, floor area (sq ft & sq m), EPC count, council tax band, ground rent & service charge, tenure + years remaining on lease, nearest stations with distances, postcode, image & floorplan URLs, and the full agent profile. Turn off for a faster, cheaper listing-only run (still 30+ fields per card, including agent name & phone). Adds one page fetch per property.

## `deduplicateAgents` (type: `boolean`):

Emit one extra **lead record per unique estate-agent branch** found across the results (`type: "agent"`) - agent/brand name, branch, phone, branch address, profile & valuation URLs, and a sample listing. Perfect for B2B prospecting (proptech, mortgage, conveyancing, photography, EPC, cleaning).

## `maxResults` (type: `integer`):

Global cap on the total number of properties emitted in this run. Rightmove returns up to ~1,000 results per individual search.

## `monitorMode` (type: `boolean`):

Remember the properties already returned and emit ONLY ones that are **new** or whose **price/status changed** since the last run (tagged `changeType` = `new` | `price_changed`, with `previousPrice` and `priceDelta`). Ideal for tracking fresh stock and price drops in a patch. Pairs with Apify Schedules - schedule the run, this flag handles the de-duplication.

## `monitorStoreName` (type: `string`):

Named key-value store that holds the 'already seen' properties for monitoring mode. Use a different name per tracked search to keep histories separate (lowercase letters, digits and hyphens).

## `maxConcurrency` (type: `integer`):

Maximum parallel requests. Keep it moderate to stay friendly to Rightmove's servers and avoid rate limiting.

## `proxyConfiguration` (type: `object`):

Proxy settings. Rightmove serves clean pages to datacenter IPs, so the default Apify Proxy works well and keeps costs low. If you hit rate limiting on very large runs, switch to Residential.

## `urlsFromFile` (type: `string`):

Paste a list of URLs (one per line), OR one link to a .txt/.csv file, Google Sheet or Google Drive file containing them. Lets you import many Start URLs at once instead of typing each. Google Sheet/Drive share links are handled automatically.

## Actor input object example

```json
{
  "searchType": "for-sale",
  "locations": [
    "London"
  ],
  "propertyTypes": [],
  "radius": "0.0",
  "sortType": "6",
  "maxDaysSinceAdded": "",
  "includeSSTC": false,
  "includeLetAgreed": false,
  "furnishTypes": [],
  "includePropertyDetails": true,
  "deduplicateAgents": false,
  "maxResults": 100,
  "monitorMode": false,
  "monitorStoreName": "rightmove-monitor",
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "urlsFromFile": ""
}
```

# Actor output Schema

## `results` (type: `string`):

All scraped Rightmove properties and agent leads in the default dataset.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "locations": [
        "London"
    ],
    "urlsFromFile": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/rightmove-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "locations": ["London"],
    "urlsFromFile": "",
}

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/rightmove-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "locations": [
    "London"
  ],
  "urlsFromFile": ""
}' |
apify call scrapesage/rightmove-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapesage/rightmove-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/R2KNhqeW7xpTNLyJR/builds/ddPpWC7STRJrXjalg/openapi.json
