# Pararius Scraper - Dutch Rental Listings & Prices (`studio-amba/pararius-scraper`) Actor

Scrape rental and sale listings from Pararius.nl, the Netherlands' #2 property portal. Extract prices, addresses, property details, photos, agency info, and availability. No login or cookies required.

- **URL**: https://apify.com/studio-amba/pararius-scraper.md
- **Developed by:** [Studio Amba](https://apify.com/studio-amba) (community)
- **Categories:** Real estate
- **Stats:** 2 total users, 0 monthly users, 88.5% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 result scrapeds

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Pararius Scraper

Scrape rental and sale property listings from [Pararius.nl](https://www.pararius.nl), the Netherlands' second-largest real estate portal focused on the private rental market.

Extract monthly rent, addresses, surface area, number of rooms, furnished status, availability dates, property photos, descriptions, and agency info. Works with both rental (huurwoningen) and sale (koopwoningen) listings across all Dutch cities.

No login or cookies required.

### How to scrape Pararius data

1. **Go to** [this actor's page on Apify](https://apify.com/store) and click "Start".
2. **Enter a city name** in the `searchQuery` field (e.g., `amsterdam`, `rotterdam`, `utrecht`, `den-haag`).
3. **Select listing type** — `huurwoningen` (rentals) or `koopwoningen` (sale).
4. **Set max results** to control how many listings you want (default: 100).
5. **Configure proxy** — Residential proxies with NL country code are strongly recommended.
6. **Run the actor** and download your data as JSON, CSV, or Excel.

Alternatively, provide specific Pararius URLs via the `startUrls` field to scrape particular pages or individual listings.

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQuery` | string | `amsterdam` | City name in Dutch. Used to build the search URL. |
| `listingType` | enum | `huurwoningen` | `huurwoningen` (rent) or `koopwoningen` (sale). |
| `startUrls` | array | — | Specific Pararius URLs to scrape. Overrides `searchQuery`. |
| `maxResults` | integer | 100 | Maximum number of listings to return (1 to 10,000). |
| `proxyConfiguration` | object | Residential NL | Proxy settings. Residential proxies recommended. |

### Output format

Each listing includes the following fields:

| Field | Type | Description |
|-------|------|-------------|
| `title` | string | Property listing title |
| `price` | number | Monthly rent or sale price in EUR |
| `currency` | string | Currency code (always EUR) |
| `listingType` | string | `rent` or `sale` |
| `propertyType` | string | apartment, house, studio, room, etc. |
| `address` | string | Street address |
| `city` | string | City name |
| `neighborhood` | string | Neighborhood or district |
| `postalCode` | string | Dutch postal code (e.g., 1012 AB) |
| `surface` | number | Living area in square meters |
| `rooms` | number | Total number of rooms |
| `bedrooms` | number | Number of bedrooms |
| `furnished` | string | Furnished, unfurnished, upholstered, etc. |
| `availableFrom` | string | Availability date |
| `description` | string | Full listing description |
| `agencyName` | string | Real estate agency name |
| `agencyUrl` | string | Agency profile URL on Pararius |
| `imageUrl` | string | Primary photo URL |
| `imageUrls` | array | All listing photo URLs |
| `url` | string | Full listing URL on Pararius |
| `scrapedAt` | string | ISO 8601 timestamp of when the data was scraped |

### Example output

```json
{
    "title": "Apartment Prinsengracht",
    "price": 1850,
    "currency": "EUR",
    "listingType": "rent",
    "propertyType": "Appartement",
    "address": "Prinsengracht 123",
    "city": "Amsterdam",
    "neighborhood": "Jordaan",
    "postalCode": "1015 DT",
    "surface": 75,
    "rooms": 3,
    "bedrooms": 2,
    "furnished": "Gemeubileerd",
    "availableFrom": "Per direct",
    "description": "Prachtig gerenoveerd appartement aan de Prinsengracht...",
    "agencyName": "Amsterdam Housing Agency",
    "agencyUrl": "https://www.pararius.nl/makelaardij/amsterdam-housing-agency",
    "imageUrl": "https://images.pararius.nl/photo/123456.jpg",
    "imageUrls": [
        "https://images.pararius.nl/photo/123456.jpg",
        "https://images.pararius.nl/photo/123457.jpg"
    ],
    "url": "https://www.pararius.nl/huurwoning/amsterdam/appartement-prinsengracht-123456",
    "scrapedAt": "2026-05-29T12:00:00.000Z"
}
```

### Supported cities

Pararius covers all cities in the Netherlands. Common searches include:

- Amsterdam, Rotterdam, Den Haag (The Hague), Utrecht, Eindhoven
- Groningen, Tilburg, Almere, Breda, Nijmegen
- Haarlem, Arnhem, Leiden, Maastricht, Delft

Enter the Dutch city name in the `searchQuery` field (e.g., `den-haag` instead of "The Hague").

### Proxy configuration

Pararius uses anti-bot protection that blocks datacenter IP addresses. **Residential proxies with NL country code are strongly recommended** for reliable scraping.

The default configuration uses:

- Apify Proxy residential group
- Country: NL (Netherlands)

If you experience blocks or empty results, try:

- Reducing `maxResults` to smaller batches
- Using residential proxies from a different provider
- Adding delays between requests

### Use cases

- **Rental market analysis** — Track average rents by city, neighborhood, or property type across the Netherlands.
- **Property monitoring** — Set up scheduled runs to detect new listings matching your criteria.
- **Real estate investment** — Compare rental yields across Dutch cities and neighborhoods.
- **Academic research** — Collect housing market data for urban planning or economics studies.
- **Relocation planning** — Quickly scan available rentals in your target Dutch city.

### Integrations

Connect this actor with other tools via Apify integrations:

- **Google Sheets** — Automatically export listings to a spreadsheet.
- **Slack / Email** — Get notified when new listings match your criteria.
- **Zapier / Make** — Connect to 1000+ other apps for custom workflows.
- **API** — Access results programmatically via the Apify API.

### Cost estimate

This actor is billed $0.02 per run plus $0.002 per result — **1,000 results cost about $2.02**. Usage cost only settles once a run reports **SUCCEEDED** — reading a dataset mid-run will show a cost far below the real total.

### Limitations

- Pararius enforces rate limiting and bot detection. Residential proxies are essential.
- Very large scraping runs (5000+ listings) should be split across multiple runs.
- Some listing details may only be available on the detail page, not in search results.
- Listing availability can change quickly — data reflects the state at scrape time.

### Legal and ethical use

This actor is designed for legitimate data collection purposes such as market research, academic study, and personal property search. Always comply with Pararius's terms of service and applicable data protection regulations when using scraped data.

### Need this data on a schedule, or a custom version?

We run this scraper as a managed service for businesses: scheduled runs,
deduplication, delta detection, and delivery to your inbox, Google Sheets,
or API — maintenance included. We can also build a custom version with your
exact fields and filters, or combine multiple sources into one feed.

See [studioamba.dev/services](https://studioamba.dev/services/) or email
<hello@studioamba.dev> for a free data sample.
We maintain 300+ European web scrapers and answer within one business day.

# Actor input Schema

## `searchQuery` (type: `string`):

City name in Dutch (e.g. 'amsterdam', 'rotterdam', 'utrecht', 'den-haag'). Used to build the search URL.

## `listingType` (type: `string`):

Filter by rent (huurwoningen) or buy (koopwoningen).

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

Provide specific Pararius URLs to scrape. Overrides searchQuery when provided. Supports both search pages and detail pages.

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

Maximum number of listings to return.

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

Proxy settings. Residential proxies with NL country are strongly recommended for Pararius.

## Actor input object example

```json
{
  "searchQuery": "amsterdam",
  "listingType": "huurwoningen",
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "NL"
  }
}
```

# Actor output Schema

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

No description

# 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 = {
    "searchQuery": "amsterdam",
    "maxResults": 5,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "NL"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/pararius-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 = {
    "searchQuery": "amsterdam",
    "maxResults": 5,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "NL",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/pararius-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 '{
  "searchQuery": "amsterdam",
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "NL"
  }
}' |
apify call studio-amba/pararius-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,studio-amba/pararius-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/Bfvv57cop8jlLGWAk/builds/9nbkBzCO5xYQ5iXQE/openapi.json
