# Rentola Property Search Scraper (`stealth_mode/rentola-property-search-scraper`) Actor

Scrape property listings from Rentola.com with complete rental data. Collect titles, addresses, prices, contact info, photos, and coordinates for studios, apartments, and more — perfect for market research and real estate analytics.

- **URL**: https://apify.com/stealth_mode/rentola-property-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

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

## Rentola Property Scraper: Extract Rental Listings Fast & Easy

***

### What Is Rentola.com?

Rentola.com is a popular European rental property platform aggregating listings across multiple regions. It helps tenants find apartments, studios, and houses while giving landlords and agencies access to a wide audience. For researchers, real estate professionals, and data analysts, manually extracting property details is labor-intensive. The **Rentola Property Scraper** automates this, collecting structured rental data directly from search results.

***

### Overview

The **Rentola Property Scraper** extracts detailed rental listings from Rentola.com search pages, capturing property attributes, pricing, contact details, images, and location coordinates. It is ideal for:

- **Real estate analysts** tracking market prices and inventory trends
- **Investment researchers** evaluating rental yields by location
- **Property aggregators** feeding rental data into custom platforms
- **Market researchers** analyzing housing availability and competition
- **Real estate companies** benchmarking competitor listings

The scraper supports filtered search URLs, handles multiple properties per page, and gracefully skips failed URLs when configured. It delivers clean, structured data with geographic coordinates for mapping integration.

***

### Input Format

The scraper accepts a JSON configuration object:

```json
{
  "urls": [
    "https://rentola.com/for-rent?location=barcelona&property_types=studio&country_code=es"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

#### Configuration Parameters

| Parameter | Type | Description | Example |
|---|---|---|---|
| `urls` | Array | Direct links to Rentola property search results pages. Filter by location, property type, country, etc. | `["https://rentola.com/for-rent?location=barcelona&property_types=studio"]` |
| `ignore_url_failures` | Boolean | If `true`, the scraper continues running even if individual URLs fail to load. If `false`, the entire run stops on the first error. | `true` |
| `max_items_per_url` | Integer | Maximum number of properties to extract per URL. Limits data volume and processing time. | `20` |

#### Tips for Building URLs

- Start with a Rentola search (e.g., location, property type, price range)
- Copy the resulting URL from your browser address bar
- Use filters like `?location=barcelona`, `?property_types=studio`, `?country_code=es`
- Paste multiple URLs to scrape different locations or property types in a single run

> **Best practice:** Set `ignore_url_failures: true` for bulk runs to avoid interruptions if a single URL times out.

***

### Output Format

**Sample output**

```json
{
  "title": "Habitación en piso compartido en alquiler, La Prosperitat, Barcelona.",
  "address": "Escola Víctor Català, Carrer de Santa Engràcia, 08016 Barcelona, Spain",
  "property_type": "room",
  "monthly_rent": 545,
  "weekly_rent": 126,
  "rent_currency": "EUR",
  "rent_frequency": "monthly",
  "country_code": "es",
  "area": "220.0",
  "rooms": 1,
  "contact_email": null,
  "contact_phone": null,
  "contact_firstname": null,
  "contact_lastname": null,
  "contact_preference": null,
  "source": "spider",
  "created_at": "2026-09-29T05:09:12Z",
  "images": [
    {
      "data": {
        "id": "670953888",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/cc7c093f2b4d9de3c6db5a1918cab0696f12f1488d3b1ba4fcec3494.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953889",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/2af2750ece5572fcd45763dc4488b25a4fb92075e0fa966bbd1a2e0c.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953890",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/6f40fcbc20701974c5e07fe1fc47ea1f6f533de9dc4e4363c24b3187.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953891",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/fcb95a9f532a034b0f6491e74ee8fc36e3d37a7f4ea467b15d97d794.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953892",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/2a115a53cf7430f87db05a461c3bcc477edae4b67bec3e3912b10030.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953893",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/b4d95af37c5ceae1d47098a68e2d3d56549ce663031b3910dd11af43.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953894",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/d106e43707ce06d2dd8b836e664082aad041c91a600ac38c54f26420.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953895",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/7920b23a691c0d00e1d82b33048d24022798c24df03bae83fc8e31b2.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953896",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/b33e7e51f974ff827bb7bd34a631a117734f8ef5baec94f0884ed22d.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953897",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/bf75b8830adbaf202bf0036c125d3332b06a9d3deebb77d92d569741.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953898",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/814096878fa8ce49ff9754d64741de16cb169bf6edbad313501b888f.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953899",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/b4de2a88057ba0f34eb48776e1e34cb90f956d3c33470e1336f2c603.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953900",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/03a61c40175205a5b19a55d241c597f8cda59d0bc54cb7c88d470659.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953901",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/c1282a0fd4671e7f645ef9990f1fbadadc27e923a8a183d31489b6f2.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953902",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/e3b9366f68a06d0bb377978da88aad4fe30471ac647e862cd95814f3.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953903",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/0eadfdb1f3bc7b43a34c364f02db2baab5590567423b0af84cee8642.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953904",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/d1211539879f6a7a2b973c19ef0236909cc4e16002b4ceec86449085.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953905",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/76bcf807cdb08e3fb0694a1a0991b5dc86e4e43c596754bd3f6cf3f3.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    },
    {
      "data": {
        "id": "670953906",
        "attributes": {
          "external_url": "https://photos.spotahome.com/pt_640_480/80d2694bf145aee34d4954403b1fc2501cc9678f8e0af1658e985b0b.jpg",
          "imageable_id": 39087648,
          "imageable_type": "Property"
        },
        "type": "images"
      }
    }
  ],
  "example_image_url": null,
  "estimated_area": false,
  "slug": "habitacion-en-piso-compartido-en-alquiler-la-prosperitat-barcelona-p8109ce",
  "coordinates": {
    "longitude": 2.1768662,
    "latitude": 41.4394329
  },
  "from_url": "https://rentola.com/for-rent/es/barcelona"
}
```

Each scraped property returns a comprehensive record with 22+ fields:

#### Property Identification & Location

| Field | Meaning | Example |
|---|---|---|
| `Title` | Property headline as listed on Rentola | "Modern Studio Near Metro Station" |
| `Address` | Full street address of the property | "Carrer de la Pau 45, Barcelona" |
| `Slug` | URL-friendly identifier for the property | "modern-studio-near-metro-station" |
| `Property Type` | Classification (studio, apartment, house, etc.) | "studio" |
| `Country Code` | ISO country code where the property is located | "es" for Spain |
| `Area` | Listed area or neighborhood | "Eixample" |
| `Estimated Area` | Calculated or estimated property size in m² | `45` |
| `Coordinates` | GPS latitude/longitude for mapping integration | `[41.3851, 2.1734]` |

#### Pricing & Rental Terms

| Field | Meaning | Example |
|---|---|---|
| `Monthly Rent` | Monthly rental price as displayed | `950` |
| `Weekly Rent` | Weekly rental price (if applicable) | `250` |
| `Rent Currency` | Currency code for rent amounts | "EUR" |
| `Rent Frequency` | Billing cycle (monthly, weekly, daily) | "monthly" |
| `Rooms` | Number of bedrooms/living spaces | `1` |

#### Contact Information

| Field | Meaning | Example |
|---|---|---|
| `Contact Email` | Landlord or agent email address | "landlord@example.com" |
| `Contact Phone` | Phone number for inquiries | "+34912345678" |
| `Contact First Name` | Contact person's first name | "Maria" |
| `Contact Last Name` | Contact person's last name | "Garcia" |
| `Contact Preference` | Preferred contact method | "email" |

#### Media & Metadata

| Field | Meaning | Example |
|---|---|---|
| `Images` | Array of all property image URLs | `["https://cdn.rentola.com/img1.jpg", ...]` |
| `Example Image URL` | Primary or thumbnail image URL | "https://cdn.rentola.com/thumb.jpg" |
| `Source` | Data source identifier | "rentola" |
| `Created At` | When the listing was published | "2024-01-15T10:30:00Z" |

***

### How to Use

1. **Prepare search URLs** — On Rentola.com, use filters (location, property type, price) to define your search. Copy the resulting URL.
2. **Build the configuration** — Paste one or more URLs into the `urls` array. Set `max_items_per_url` to control data volume (e.g., `20` for testing, `100+` for bulk collection).
3. **Enable error handling** — Set `ignore_url_failures: true` for unattended runs to skip problematic URLs without stopping.
4. **Run the scraper** — Execute the actor and monitor progress in real time.
5. **Export and analyze** — Download results as JSON, CSV, or Excel for use in spreadsheets, databases, or business intelligence tools.

**Troubleshooting:**

- **No data returned:** Verify the URL points to a search results page (not a single property detail).
- **Incomplete records:** Some fields may be missing if landlords did not fill them out. This is normal.
- **Rate limiting:** If Rentola blocks requests, increase `max_items_per_url` to reduce the number of page loads.

***

### Use Cases & Business Value

- **Price benchmarking:** Compare rental rates across neighborhoods, cities, or countries
- **Market intelligence:** Monitor listing inventory, new properties, and market saturation
- **Investment analysis:** Build datasets for rental yield calculations and location profiling
- **Competitive research:** Track what competitor landlords and agencies are charging
- **Custom property portals:** Power your own rental aggregator with live Rentola data
- **Academic research:** Study housing markets, affordability trends, or urbanization patterns

The **Rentola Property Scraper** transforms scattered web listings into unified, actionable data — eliminating manual copy-paste and enabling data-driven decision-making in real estate.

***

### Conclusion

The **Rentola Property Scraper** is a practical tool for anyone needing rental property data at scale. With 22+ fields per listing and flexible URL filtering, it captures the full picture: prices, locations, contact details, photos, and coordinates. Whether you're analyzing markets, building an aggregator, or conducting research, this scraper delivers clean, structured data ready for analysis and integration.

> **Legal note:** Always respect Rentola.com's Terms of Service and robots.txt when scraping. Ensure your use complies with applicable data protection laws (GDPR, etc.).

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the property list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://rentola.com/for-rent?location=barcelona&property_types=studio&country_code=es"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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 = {
    "urls": [
        "https://rentola.com/for-rent?location=barcelona&property_types=studio&country_code=es"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/rentola-property-search-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 = {
    "urls": ["https://rentola.com/for-rent?location=barcelona&property_types=studio&country_code=es"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/rentola-property-search-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 '{
  "urls": [
    "https://rentola.com/for-rent?location=barcelona&property_types=studio&country_code=es"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/rentola-property-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,stealth_mode/rentola-property-search-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/dnmNKFkVKt982VIuZ/builds/87d91JQIIZ1EjxfmH/openapi.json
