# Engel & Völkers Scraper - Luxury Real Estate (`recordsdata/engelvoelkers-scraper`) Actor

Scrape engelvoelkers.com: homes, land and commercial property for sale or rent in 34 country markets with prices, coordinates, specs, photos, energy data and agency details. Also lists agency offices and price per m2 statistics for Germany and Spain. No login, no API key.

- **URL**: https://apify.com/recordsdata/engelvoelkers-scraper.md
- **Developed by:** [RecordsData](https://apify.com/recordsdata) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 listing (search card)s

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

![RecordsData](https://api.apify.com/v2/key-value-stores/AAm3a1h3Z9nYfrvh9/records/banner?v=3)

## 🏡 Engel & Völkers Scraper - Luxury Real Estate Listings, Offices and Prices - RecordsData

> 🚀 **Quick answer: this Actor exports Engel & Völkers real estate listings from 34 country markets for $0.02 per search-card listing and $0.02727 per full-page listing ($20.00 or $27.27 per 1,000), with no login and no API key.** Export Engel & Völkers real estate listings in minutes.\*\* Search any of 34 country markets by deal type, property type and place, read single listings by address or code, crawl the public catalog of about 90,000 listings, list the agency offices, and pull price per square meter statistics for Germany and Spain. Every listing returns price, address with coordinates, area, rooms, energy data, description, photos and the office that markets it. Export CSV, Excel, JSON or XML.

**Engel & Völkers Scraper is an Apify Actor that collects public listings from engelvoelkers.com, the luxury residential and commercial brokerage with offices on five continents: houses, apartments, land, new developments, offices, shops, hotels and investment properties, for sale or rent.** A detailed listing has about 50 fields, and a 3-listing cloud run takes about 6 seconds.

### 📋 What the Engel & Völkers Scraper does

The Actor reads the same public pages and sitemaps the Engel & Völkers website serves to every visitor, so rows are exact and no browser is needed. Five modes cover the site.

- **search**: listings for one or more countries, by deal type (buy, rent, both), residential or commercial, 12 property types, place (region, city or district) and filters for price, bedrooms and living area. The site shows 35 listings per place page, so the Actor walks down into the smaller places inside it to reach more.
- **urls**: paste listing pages, search pages, agency pages or market price pages, or just listing codes such as `W-047IFY` or the listing UUID. Several kinds can be mixed.
- **catalog**: walk the public listing sitemaps, newest first, optionally only listings updated since a date. The fastest way to see what is new across a whole country.
- **agencies**: the Engel & Völkers offices (shops) of 24 countries with address, phone, email, languages, ratings and live listing counts.
- **market**: price per square meter statistics (houses and apartments, sale and rent) for German and Spanish places, with the change over time and quarterly series.

### 📊 Output

Every row has a `recordType` (`listing`, `listing-detail`, `changed-listing`, `agency` or `market-stat`). Fields without a value are left out, never filled with `null`.

| Field | Main fields |
|---|---|
| Identity | `listingId`, `url`, `title`, `recordType`, `operation`, `businessArea`, `propertyType`, `propertySubtype`, `status`, `referenceCode` |
| Price | `price`, `currency`, `priceEur`, `priceMax`, `pricePerM2`, `rentNet`, `priceOnRequest`, `commissionPercent`, `previousPrice`, `priceChangePct` |
| Location | `address`, `neighborhood`, `city`, `region`, `postalCode`, `latitude`, `longitude`, `country`, `countryName` |
| Specs | `bedrooms`, `bathrooms`, `rooms`, `areaBuilt`, `areaLand`, `areaTotal`, `floor`, `yearBuilt`, `parkingSpaces`, `condition`, `furnished` |
| Energy | `energyCertificate`, `energyDemandKwh`, `energyConsumptionKwh`, `co2Emission`, `heatingType`, `heatingMaterial` |
| Text and media | `description`, `locationDescription`, `images`, `imageCount`, `floorPlans`, `videoUrl`, `virtualTourUrl`, `amenities` |
| Dates | `publishedAt`, `updatedAt`, `availableFrom`, `scrapedAt` |
| Office | `agencyName`, `agencyId`, `officeId`, `agencyUrl`, `agencyPhone`, `agencyEmail`, `agencyAddress`, `legalEntityName`, `languages` |
| Agencies | `rating`, `reviewCount`, `activeListingsSale`, `activeListingsRent`, `soldListings`, `expertises`, `languagesSpoken`, `socialLinks` |
| Market | `avgPricePerM2House`, `avgPricePerM2Apartment`, `houseChangePct`, `apartmentChangePct`, `quarterlySeriesHouse`, `priceHistoryApartment` |

Sample row from a real cloud run (shortened):

```json
{
  "imageUrl": "https://uploadcare.engelvoelkers.com/bd1b2d8a-d68d-4092-9680-ef14f7a497a8/",
  "recordType": "listing-detail",
  "title": "Stunning Renovated Cottage",
  "listingId": "9e6777d5-accb-5a06-911a-c379d6e2c81e",
  "url": "https://www.engelvoelkers.com/ie/en/exposes/9e6777d5-accb-5a06-911a-c379d6e2c81e",
  "sourceSite": "engelvoelkers.com",
  "country": "IE",
  "countryName": "Ireland",
  "operation": "sale",
  "businessArea": "residential",
  "propertyType": "house",
  "status": "ACTIVE",
  "price": 535000,
  "currency": "EUR",
  "pricePerM2": 3203.59,
  "address": "Slievereagh, Ballyvourney, County Cork, Ireland",
  "city": "Ballyvourney",
  "region": "County Cork",
  "latitude": 51.95173593641193,
  "longitude": -9.181430236777667,
  "bedrooms": 4,
  "bathrooms": 4,
  "areaBuilt": 167,
  "areaLand": 5100,
  "description": "Located just on the edge of Ballyvourney village just a 35-minute drive from the Bishopstown Roundabout and c. 45 mins from Cork city...",
  "images": ["https://uploadcare.engelvoelkers.com/bd1b2d8a-d68d-4092-9680-ef14f7a497a8/"],
  "imageCount": 36,
  "publishedAt": "2026-10-07T14:34:17.752Z",
  "updatedAt": "2026-10-07T14:38:57.227Z",
  "agencyName": "Engel & Völkers West Cork",
  "agencyPhone": "+353214773200",
  "referenceCode": "W-047IFY",
  "scrapedAt": "2026-10-11T08:02:49.841Z"
}
```

### ✨ Why choose this Actor

- **Complete data.** Prices are numbers in the listing currency, plus `priceEur` when the site converts them. Areas are in square meters.
- **Real place filtering.** The site's place pages also show neighbours (the page of a small town can list a nearby city). The Actor keeps only listings whose address really names the place you asked for.
- **Goes beyond 35 per page.** The site shows only the 35 newest listings per place. The Actor continues with the smaller places inside it, so a state, region or country search returns hundreds of listings.
- **Five record types in one Actor.** Listings, detailed listings, price-change records, agency offices and market statistics.
- **Monitor mode.** Run the same search on a schedule and receive only listings that are new, or whose price changed, with the previous price and the change in percent.
- **Privacy by design.** Agent and manager names, emails and phones are off by default. Agency (office) contact data is business information and is always included.

### 📈 How does this Engel & Völkers scraper compare to alternatives?

Competitor page read on 2026-10-11; a feature counts as missing only if the page does not show it. Only one other Engel & Völkers Actor exists on the Apify Store.

| Capability | This Actor | rainminer/engelvoelkers-com-scraper |
|---|---|---|
| Input | Countries, deal type, places, price, bedrooms, area | Start URLs only, no filters listed |
| Record types | Listings, offices, price statistics, price changes | Listings only on the page |
| Whole catalog by sitemap | Yes, with updated-since date | Not shown |
| Monitoring | Only-new mode and price-change records | Not shown |
| Price per 1,000 | $20.00 cards, $27.27 full pages | From $1.49 |

The rival is far cheaper per listing, roughly 13 times less than our search-card price, and it is the better fit if you only need basic rows from search URLs you already have. This Actor costs clearly more per row; the extra cost buys filters, the walk past 35 listings per page, full page data, offices, market statistics and monitoring. The rival has 3 users in total, so both are small tools.

### 💰 How much does the Engel & Völkers Scraper cost?

Pricing is pay per event, charged only for rows saved to your dataset.

| Event | Price (free tier) |
|---|---|
| Listing from a search card | $0.02 ($20.00 per 1,000) |
| Listing with full page data | $0.02727 ($27.27 per 1,000) |
| Changed listing (monitor) | $0.02727 |
| Agency office | $0.02727 |
| Market price statistic | $0.02727 |

Full page data is on by default, so a typical listing row costs $0.02727. Skipped rows, error rows and searches with no match are not charged.

- 100 detailed listings cost $2.73.
- 1,000 search-card listings (details off) cost $20.00.
- 50 agency offices cost $1.36.
- 20 price-change records on a scheduled monitor cost $0.55.

### ⚙️ Engel & Völkers Scraper input

| Parameter | Meaning |
|---|---|
| `mode` | search, urls, catalog, agencies or market |
| `countries`, `places` | Country codes and places such as `florida/miami` |
| `operation`, `businessArea`, `propertyTypes` | Sale, rent or both; residential or commercial; types |
| `minPrice`, `maxPrice`, `minBedrooms`, `minAreaM2` | Filters (prices in euros) |
| `startUrls`, `listingIds`, `updatedSince` | Pages, codes or a catalog date |
| `includeDetails`, `includeContactDetails` | Full page data (default on); agent personal data (default off) |
| `onlyNew`, `trackPriceChanges` | Monitor mode |
| `language`, `maxItems`, `maxSearchPages` | Page language and limits |

### 🚀 How to use

1. Create a free account on [Apify Console](https://console.apify.com) (new accounts include free monthly credit).
2. Open **Engel & Völkers Scraper - Luxury Real Estate** and pick **What to collect**.
3. For a search choose countries, deal type, property types and optional places such as `florida/miami`, `mallorca` or `county-cork/kinsale`. For other modes fill the addresses, listing codes, catalog date or country.
4. Set **Maximum items**. Free plans return up to 10 items per run.
5. Press **Start**, then download the dataset as CSV, Excel, JSON, XML or HTML, or read it through the API.

Example: apartments for sale in Mallorca, 2 bedrooms or more, up to 1.5 million euros:

```json
{
  "mode": "search",
  "countries": ["es"],
  "operation": "sale",
  "propertyTypes": ["apartment"],
  "places": ["mallorca"],
  "maxPrice": 1500000,
  "minBedrooms": 2,
  "maxItems": 100
}
```

### 💼 Business use cases

- **Investors and analysts:** group listings by `pricePerM2`, `areaBuilt` and `agencyName` to rank districts, and compare asking prices with market-mode quarterly series.
- **Brokers and proptech teams:** track competitor inventory by `agencyId`, spot new stock with monitor mode, and build lead lists of offices.
- **Relocation and wealth advisers:** shortlist premium homes across countries; `priceEur` makes a Florida villa and a Lisbon flat comparable.
- **Developers:** read development projects (`propertyType: development`) with unit codes and counts.

### 🔌 Automating the Engel & Völkers Scraper

Schedule runs in Apify Console and send results to Make, Zapier, n8n, Google Sheets, Slack, Airbyte or your own webhook. The Apify API and the JavaScript and Python clients start runs and read datasets.

### 🤖 Engel & Völkers Scraper MCP server for AI agents

Agents can call this Actor through the Apify MCP server at `https://mcp.apify.com?tools=RecordsData/engelvoelkers-scraper`. The URL loads only this Actor as a tool.

Config (Claude Desktop, Cursor, VS Code): `{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=RecordsData/engelvoelkers-scraper"}}}`

Example agent prompt: "Use the Engel & Völkers Scraper to get 50 apartments for sale in Mallorca with at least 2 bedrooms under 1.5 million euros, then rank them by price per square meter."

Tool description: collects Engel & Völkers listings, agency offices and German or Spanish price statistics as typed rows, with filters for country, place, property type, price, bedrooms and area. It takes the same JSON input as the examples above.

### Frequently Asked Questions

#### 🏠 What data can I scrape from Engel & Völkers?

Residential and commercial listings for sale and rent, development projects, agency offices and market price statistics, from 34 country markets. Each listing has a price, an address, coordinates, area, rooms, energy data, description, photos and the office that markets it, where the site publishes them.

#### 🔎 How do I scrape Engel & Völkers listings for one city or region?

Choose a country, then type the place in **Places**: a path such as `florida/miami`, a bare name such as `kinsale` (the Actor finds the page), or a search address copied from the site. Place names are the English page names of the site; common local names such as `bayern`, `andalucia` and German umlauts (`Grünwald`) are understood.

#### 🔢 How many listings can one search return?

The site shows 35 listings per place page. With **Go deeper than 35 per place** on (the default), the Actor continues with the cities and districts inside the place until **Maximum items** or **Maximum search pages** is reached. A US state search returns hundreds of listings; a single small town returns what the town has.

#### 📍 Why does the Actor drop some listings that a place page shows?

The site fills a place page with neighbours when the place is small. The Actor keeps only listings whose address names the place you asked for, and says in the log how many neighbours it left out. It is a deliberate quality choice, so a Grünwald search does not return homes from a neighbouring town.

#### 🛏️ Why does the bedroom filter skip some countries?

In the United States, Canada, Mexico, Costa Rica, Panama, Czechia and the Caribbean markets (Bahamas, Belize, Cayman Islands, Turks and Caicos, British Virgin Islands) the site publishes only a total room count, never a bedroom count. When **Minimum bedrooms** is set, those countries are skipped and the log says so; use the price and area filters there instead. In the other markets some listings omit the bedroom or area number on the search card, so the Actor opens the full listing page to settle it when **Read the full listing page** is on, and leaves the listing out when it is off.

#### 💶 Which currency are prices in?

`price` is in the listing currency (`currency`). When that is not the euro, `priceEur` holds the site's euro conversion. The minimum and maximum price filters use euros so one filter works across countries. For example a Swiss listing keeps its franc price, and a euro value sits next to it for comparison.

#### 🧑 Does it return agent names, phones or emails?

Not by default. Turn on **Include agent and manager names** only if you have a lawful reason to process personal data. Agency office data (name, address, phone, email) is business information and is always included. Agent fields are left out of the dataset unless you enable the option, and no agent field is ever charged separately.

#### 🔁 How do I get only new listings or price changes?

Switch on **Only new listings** and run the same search on a schedule. Add **Also report price changes** to receive a `changed-listing` record, with `previousPrice` and `priceChangePct`, when a known listing changes price. Skipped listings are not charged. The first run saves what it saw under your state key, and later runs deliver only the difference.

#### 🛡️ Do I need a proxy or an API key?

No key or login. The site blocks cloud servers without a proxy, so the Actor uses the Apify datacenter proxy by default and keeps it on even if you switch it off. Leave the default unless you have a reason to change it. Leave the proxy setting at its default.

#### 📈 Where does market mode work?

Germany and Spain only, because the site publishes price per square meter pages only for those two countries. Other countries return a clear message instead of rows. Each market row holds price per square meter for houses and apartments, the percent change and quarterly series.

#### 🧪 What happens if my input is wrong or nothing matches?

Invalid input ends the run as succeeded with one error row that explains the fix. An unknown place gives a "Not found" error row. A valid search with no matches succeeds with zero rows. None of these return billable results.

#### 🆓 What do free plans get?

Free Apify plans can collect up to 10 items per run, enough to test every mode and see the full output of detailed listings, agencies and market statistics. Paid plans use the **Maximum items** value you set, and you pay only the per-event prices in the pricing table above. Skipped and error rows are free.

### ⚖️ Limits and legal notes

- The site shows 35 listings per place page, so deeper searches walk the smaller places inside it and stop at **Maximum search pages**.
- Bedroom filters skip countries that publish no bedroom count.
- Market statistics exist for Germany and Spain only.
- The Actor collects only public listing data and leaves personal data off by default. The site's terms of use restrict automated reading and commercial reuse of its listing database, so you are responsible for your own use, including those terms and data protection law such as the GDPR.

### 🔗 Recommended Actors

- [RecordsData collection](https://apify.com/RecordsData): other real estate and public data scrapers by the same team.

**🆘 Need help?** Write to contact.punkrecordsdata@gmail.com or open an issue in the Issues tab.

Last updated: 2026-10-11

> **⚠️ Disclaimer:** This is an independent tool and is not affiliated with, endorsed by or sponsored by Engel & Völkers. Engel & Völkers is a trademark of its owner. It collects only publicly available data.

# Actor input Schema

## `mode` (type: `string`):

search = listings for the chosen countries, deal type, property types and places. urls = the Engel & Völkers addresses and listing codes you list below. catalog = walk the public listing sitemaps (everything, or only what changed since a date). agencies = Engel & Völkers offices (shops) with contact data, ratings and live listing counts. market = price per square metre statistics for German and Spanish places.

## `maxItems` (type: `integer`):

Stops after this many rows (all record types together). Free plans are limited to 10 items per run.

## `countries` (type: `array`):

Engel & Völkers markets to read, by two-letter code (search and catalog modes). Agencies mode accepts the 24 countries that publish agency pages. Market mode accepts de and es only. Empty means Ireland (market mode: Germany).

## `operation` (type: `string`):

Buy, rent or both. Also filters the catalog and the market statistics.

## `businessArea` (type: `string`):

Residential homes and land, commercial property (offices, stores, hotels, industrial), or both.

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

Only these types. Empty means all types of the chosen business area. House, apartment, land and development are residential; office, store, industry, investment, gastronomy, hotel, commercial space and agriculture are commercial; land exists in both.

## `places` (type: `array`):

Regions, cities or districts, one per line: a place path such as florida/miami or county-cork/kinsale, a bare name such as kinsale (the actor finds it), or an Engel & Völkers search address. Empty means the whole country. The names are the English page names of the site.

## `drillDown` (type: `boolean`):

A place page shows only its 35 newest listings. When on, the actor continues with the smaller places inside it (cities, districts) until maxItems is reached or maxSearchPages runs out.

## `maxSearchPages` (type: `integer`):

Cap on the number of place pages read per search combination while going deeper. Each page costs one request.

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

Keep listings at or above this price. The site converts every price to euros, so one filter works across countries. Leave empty for no minimum.

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

Keep listings at or below this price (euros as converted by the site). Rent filters use the monthly rent.

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

Keep listings with at least this many bedrooms. Markets that publish only total rooms (US, Canada, Mexico, Costa Rica, Panama, Bahamas, Belize, Cayman, Turks and Caicos, British Virgin Islands, Czechia) are skipped when this is set.

## `minAreaM2` (type: `integer`):

Keep listings with at least this living area in square metres (land plots use the plot size).

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

Used in urls mode. Listing pages (/exposes/...), search pages (/properties/res/sale/house/...), agency pages (/shops/...) and market price pages (/properties-prices/...). Several kinds can be mixed.

## `listingIds` (type: `array`):

Used in urls mode. Listing UUIDs or display codes such as W-047IFY, one per line.

## `updatedSince` (type: `string`):

Catalog mode: only listings whose sitemap date is on or after this day (YYYY-MM-DD). Empty means all.

## `agencyQuery` (type: `string`):

Agencies mode: keep only agencies whose page name contains this text (for example miami or west-cork). Empty means every agency of the chosen countries.

## `includeDetails` (type: `boolean`):

On: one extra request per listing for the description, all photos, coordinates, features, energy data and agency details (listing-detail record). Off: only the search-card data (listing record), much faster.

## `includeContactDetails` (type: `boolean`):

Adds the listing agent name, email and phone, and the agency manager name. Agency (office) contact data is always included. Turn on only if you have a lawful reason to process personal data.

## `includeRaw` (type: `boolean`):

Adds a raw field with the remaining unmapped data of the listing.

## `language` (type: `string`):

Language of the full listing pages (title, description, country and place names). Search pages and sitemaps are always read in English, so rows without the full page keep English place names. If a country does not offer the language, English is used.

## `onlyNew` (type: `boolean`):

Skips records delivered by an earlier run of the same search. Nothing skipped is charged.

## `trackPriceChanges` (type: `boolean`):

With Only new listings on: a listing seen before comes back as a changed-listing record when its price differs from the last delivered price, with the previous price and the change in percent.

## `stateKey` (type: `string`):

Optional label to keep several monitors with identical filters apart.

## `resetSeen` (type: `boolean`):

Clears the memory of this search before the run, so everything counts as new.

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

How many detail requests run at the same time. The actor also spaces requests politely.

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

Apify datacenter proxy is used by default and is required on the platform.

## Actor input object example

```json
{
  "mode": "search",
  "maxItems": 10,
  "countries": [
    "ie"
  ],
  "operation": "sale",
  "businessArea": "residential",
  "propertyTypes": [],
  "places": [],
  "drillDown": true,
  "maxSearchPages": 30,
  "startUrls": [],
  "listingIds": [],
  "updatedSince": "",
  "agencyQuery": "",
  "includeDetails": true,
  "includeContactDetails": false,
  "includeRaw": false,
  "language": "en",
  "onlyNew": false,
  "trackPriceChanges": false,
  "stateKey": "",
  "resetSeen": false,
  "maxConcurrency": 4,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields per row

## `fullData` (type: `string`):

Complete dataset with all fields

# 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 = {
    "maxItems": 10,
    "countries": [
        "ie"
    ],
    "propertyTypes": [],
    "places": [],
    "startUrls": [],
    "listingIds": [],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("recordsdata/engelvoelkers-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 = {
    "maxItems": 10,
    "countries": ["ie"],
    "propertyTypes": [],
    "places": [],
    "startUrls": [],
    "listingIds": [],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("recordsdata/engelvoelkers-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 '{
  "maxItems": 10,
  "countries": [
    "ie"
  ],
  "propertyTypes": [],
  "places": [],
  "startUrls": [],
  "listingIds": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call recordsdata/engelvoelkers-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,recordsdata/engelvoelkers-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/Hxlq2g6tN6bJ9wJIZ/builds/gZ6aq5S7DjNSuttmi/openapi.json
