# Green-Acres Property Scraper: Listings, Prices, Rooms & Areas (`getascraper/green-acres-scraper`) Actor

Scrapes Green-Acres property adverts from the France, Spain, Italy, Portugal, Greece and UAE sites into one table. Filter by property type, bedrooms, bathrooms, rooms, features, EUR price, area and town. Rows keep the published price and currency. $1.76 per 1,000 adverts.

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

## Pricing

from $1.36 / 1,000 property adverts

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

## 🏡 Green-Acres Property Scraper: Listings, Prices & Locations

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#F2F7F3;border:1px solid #C5DCCB;border-top:4px solid #2F6B3F;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Green-Acres listings from six countries, in one table</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Read adverts from the French, Spanish, Italian, Portuguese, Greek and UAE Green-Acres sites. Each row keeps the published price and currency, and adds a EUR price when the site publishes one in EUR.</span>
</td>
</tr>
</table>
<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C5DCCB;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1F4D2C">💶 EUR beside the original</span><br>
<span style="font-size:12px;color:#57534E">The published price and currency stay in the row. A EUR field appears when the advert is priced in EUR.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C5DCCB;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1F4D2C">🌍 Six country sites</span><br>
<span style="font-size:12px;color:#57534E">Each row carries a country code and name from the site the advert came from.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C5DCCB;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1F4D2C">📐 Areas as published</span><br>
<span style="font-size:12px;color:#57534E">Surface and land area keep the site's own units, such as sq ft or acres.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C5DCCB;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#1F4D2C">🧹 Gaps stay empty</span><br>
<span style="font-size:12px;color:#57534E">A field the listing does not publish is left out of the row, never filled with a guess.</span>
</td>
</tr>
</table>

Give this Actor a Green-Acres listing page and it returns each advert as one row. Each row has the title, location, rooms, areas, photo count and advert link, plus the price as published. No login is needed.

### 🔍 What does this Actor do?

Green-Acres lists property for sale on six country sites: France, Spain, Italy, Portugal, Greece and the United Arab Emirates. Each advert is also published in English, which this Actor reads so every row uses the same field names.

Listing pages can show prices converted into another currency for the visitor. This Actor ignores those converted figures and keeps the price the advert publishes, with its currency. A EUR price field is filled only when the advert is priced in EUR. Other currencies are not converted, because exchange rates change.

### 👥 Who uses it?

- **I am a buyer comparing homes across France and southern Europe.** I want one table of asking prices, rooms and areas, not six websites with six display currencies.
- **I am a relocation agent.** I need the city, postal code and property type for every advert in one region, so I can shortlist properties for a client.
- **I am a property analyst.** I track asking prices and areas by country and region, and I need the published currency beside every number.

### 🚀 How to use it

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#F2F7F3;border:1px solid #C5DCCB;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#2F6B3F;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Paste listing pages</span><br>
<span style="font-size:12px;color:#57534E">Add one or more Green-Acres listing pages, such as a region or property type page.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F2F7F3;border:1px solid #C5DCCB;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#2F6B3F;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Set the size</span><br>
<span style="font-size:12px;color:#57534E">Choose how many adverts to save. The default is 20, which finishes in about two minutes.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F2F7F3;border:1px solid #C5DCCB;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#2F6B3F;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Download the rows</span><br>
<span style="font-size:12px;color:#57534E">Get one row per advert as JSON, CSV or Excel from the Output tab.</span>
</td>
</tr>
</table>

### 📥 Input

The form is grouped into sections. Any filter you leave empty, or at 0, is ignored. When a filter is set, an advert with no value for that field is left out.

**Sources**

| Field | Type | Required | Description |
|---|---|---|---|
| `startUrls` | array of URLs | Yes | Green-Acres listing pages on www.green-acres.fr, .es, .it, .pt, .gr or .ae. Each page is read once. The country comes from the domain. |

**Property & search filters**

| Field | Type | Description |
|---|---|---|
| `propertyType` | string | Keeps adverts whose property type includes this word, such as villa or house. |
| `minBedrooms` | integer | Keeps adverts with at least this many bedrooms. |
| `minBathrooms` | integer | Keeps adverts with at least this many bathrooms. |
| `minRooms` | integer | Keeps adverts with at least this many rooms in total. |
| `features` | list of keywords | Keeps adverts whose feature list contains every keyword, such as terrace, garage or fireplace. |

**Price & size filters**

| Field | Type | Description |
|---|---|---|
| `minPriceEur` / `maxPriceEur` | integer | Price range in euros. Only adverts priced in EUR can be compared. |
| `minSurfaceArea` / `maxSurfaceArea` | integer | Living area range, in the unit the advert shows. Numbers are not converted. |
| `minLandArea` / `maxLandArea` | number | Plot size range, in the unit the advert shows (sq ft or acres). Numbers are not converted. |
| `areaUnit` | select | Set to sq ft or acres to keep only adverts that show their area in that unit. Any unit skips the check. |

**Location filters**

| Field | Type | Description |
|---|---|---|
| `countries` | list | Keeps adverts from the chosen countries (France, Spain, Italy, Portugal, Greece, UAE). |
| `cityContains` | string | Keeps adverts whose town includes this text, such as Fecamp. |

**Output & limits**

| Field | Type | Description |
|---|---|---|
| `maxItems` | integer | Stops the run after this many adverts that pass your filters are saved. Default 20. The maximum is 100. Free plan runs cap at 25. |
| `includeImageUrls` | boolean | Adds the list of gallery photo URLs to each row. Off by default. |

**Advanced**

| Field | Type | Description |
|---|---|---|
| `proxyConfiguration` | proxy settings | Network setting for the run. The default works for this site. Change it only if runs start failing. |

With filters on, a run reads more adverts than it saves, because some are filtered out. It may take longer than a run without filters.

### 📊 Data table

| Field | Type | Description |
|---|---|---|
| `advertId` | string | Green-Acres advert reference, unique per advert. |
| `url` | string | English advert page the row was read from. |
| `title` | string | Advert headline as published in English. |
| `countryCode` | string | ISO country code of the site the advert came from: FR, ES, IT, PT, GR or AE. |
| `countryName` | string | English country name for `countryCode`. |
| `sourceDomain` | string | Green-Acres domain the advert was read from. |
| `contentLanguage` | string | Language of the text fields. Always `en`. |
| `propertyType` | string | Property type as the advert states it, for example "Villa". Left out when not published. |
| `city` | string | Town or city the advert gives. Left out when not published. |
| `postalCode` | string | Postal code shown in the location, when the site gives one. |
| `locationText` | string | Location line exactly as published. |
| `priceAmount` | number | Asking price as published, in `priceCurrency`. Left out when the advert shows no price. |
| `priceCurrency` | string | Currency code of `priceAmount` as published, for example EUR or AED. |
| `priceEur` | number | Same as `priceAmount`, set only when `priceCurrency` is EUR. Left out for other currencies. |
| `priceDisplayed` | string | Price line as the advert shows it, for example "Price in euros : 1,365,000 €". |
| `surfaceArea` | number | Living area as published, without the unit. |
| `surfaceAreaUnit` | string | Unit of `surfaceArea` as published, for example "sq ft". |
| `surfaceAreaText` | string | Living area exactly as published, with its unit. |
| `landArea` | number | Land area as published, without the unit. |
| `landAreaUnit` | string | Unit of `landArea` as published, for example "acres". |
| `landAreaText` | string | Land area exactly as published, with its unit. |
| `rooms` | number | Number of rooms the advert states. |
| `bedrooms` | number | Number of bedrooms the advert states. |
| `bathrooms` | number | Number of bathrooms the advert states. Left out when not published. |
| `features` | array of strings | Features the advert lists, such as "Terrace" or "Fireplace". Left out when not published. |
| `photoCount` | number | Number of gallery photos on the advert. |
| `imageUrls` | array of strings | Gallery photo URLs. Only present when `includeImageUrls` is on. |
| `scrapedAt` | string | Time the row was saved, in ISO 8601 format. |

You can download the dataset in JSON, CSV, Excel or HTML from the Output tab of any run. The Output tab has two views: a listings table and a prices and locations table.

### 📤 Sample output

```json
{
    "advertId": "Ayivze08jw6ijxkg",
    "url": "https://www.green-acres.fr/en/properties/house/la-cerlangue/Ayivze08jw6ijxkg.htm",
    "title": "Sale: Manor with 21 Rooms",
    "countryCode": "FR",
    "countryName": "France",
    "sourceDomain": "www.green-acres.fr",
    "contentLanguage": "en",
    "propertyType": "Villa",
    "city": "La Cerlangue",
    "postalCode": "76430",
    "locationText": "La Cerlangue (76430)",
    "priceAmount": 2315000,
    "priceCurrency": "EUR",
    "priceEur": 2315000,
    "priceDisplayed": "Price in euros : 2,315,000 €",
    "surfaceArea": 7976,
    "surfaceAreaUnit": "sq ft",
    "surfaceAreaText": "7,976 sq ft",
    "landArea": 8.4,
    "landAreaUnit": "acres",
    "landAreaText": "8.4 acres",
    "rooms": 21,
    "photoCount": 7,
    "scrapedAt": "2026-10-06T17:51:25.460Z"
}
```

### 💰 Pricing

Pricing is shown on this Actor's Store page.

Free plan runs are limited to 25 adverts per run, 3 runs per day, and a 30-minute wait between runs. These limits do not apply to paid plans. When a limit is reached, the run stops with a message that explains the limit and the upgrade path.

### ⭐ Enjoying Green-Acres Property Scraper?

<table width="100%">
<tr>
<td style="padding:20px 24px 14px;background:#F2F7F3;border:1px solid #C5DCCB;border-left:5px solid #2F6B3F;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">One run put the adverts on a listing page into one table, with each price as published.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other buyers and analysts find this Actor. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#2F6B3F;border:1px solid #C5DCCB;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/green-acres-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ✨ Tips

- **Compare on `priceEur` when it is present.** Adverts priced in other currencies keep their `priceAmount` and `priceCurrency`, so check the currency before you compare.
- **Cover more than one page.** A listing page shows only part of its adverts. Add a page for each region or property type you care about.
- **Start with the default.** Run the default of 20 adverts first, then raise `maxItems` once the fields fit your needs.

### ❓ FAQ

##### Which Green-Acres sites does it cover?

It reads listing pages on the French, Spanish, Italian, Portuguese, Greek and UAE Green-Acres sites. The country code on each row follows the site the listing came from.

##### Why does a run return fewer adverts than a listing shows?

A listing page shows only some of its adverts on its own. One run reads the adverts on the pages you give it. Add more listing pages to cover more adverts.

##### What does "normalized" mean for prices and areas?

Each row keeps the price, currency and area exactly as the advert publishes them. A EUR price field is set only when the currency is EUR. The Actor does not convert other currencies or change area units, so you can see the original value every time.

##### Does it need a Green-Acres account?

No. It reads public advert pages. You do not need a login, API key or cookie.

##### Is scraping Green-Acres allowed?

The site's terms of use restrict copying its text, and its robots.txt blocks some paths. This Actor skips the paths robots.txt blocks and waits about one second between requests. Read the terms yourself before you publish or resell the data, since this is not legal advice.

### 🔗 Other actors

- [🏘️ Bradesco Imóveis Scraper: Brazil Property Auction Prices & Data](https://apify.com/getascraper/bradesco-imoveis-scraper) ↗ - reads Brazilian property auction listings with prices and data.
- [🏢 CommercialRealEstate.com.au Scraper: Prices, Agents, Lease Data](https://apify.com/getascraper/commercialrealestate-au-scraper) ↗ - collects commercial property prices, agents and lease data in Australia.
- [🏠 Property24 Scraper: Real Estate Listings, Prices & Broker Leads](https://apify.com/getascraper/property24-scraper) ↗ - gathers real estate listings and prices from Property24.
- [🏠 Lianjia Scraper 链家: China Resale Listings, Prices & Communities](https://apify.com/getascraper/lianjia-real-estate-scraper) ↗ - reads resale listings, prices and communities from Lianjia in China.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/green-acres-scraper/changelog.md

# Actor input Schema

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

Green-Acres listing pages to read adverts from. Use a category or region page from www.green-acres.fr, .es, .it, .pt, .gr or .ae (for example a villa or house page for one region). The country of each advert is taken from the domain you pick.

## `propertyType` (type: `string`):

Keeps only adverts whose property type includes this word, such as villa, house or apartment. Leave empty to keep every property type.

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

Keeps only adverts with at least this many bedrooms. Adverts that do not list a bedroom count are left out when this is set. Set to 0 to turn off.

## `minBathrooms` (type: `integer`):

Keeps only adverts with at least this many bathrooms. Adverts that do not list a bathroom count are left out when this is set. Set to 0 to turn off.

## `minRooms` (type: `integer`):

Keeps only adverts with at least this many rooms in total. Adverts that do not list a room count are left out when this is set. Set to 0 to turn off.

## `features` (type: `array`):

Keywords that must each appear in the advert's feature list, such as terrace, garage or fireplace. Matching ignores capital letters. Adverts with no feature list are left out when this is set.

## `minPriceEur` (type: `integer`):

Keeps only adverts priced at or above this amount in euros. Only adverts priced in EUR can be compared, so adverts priced in another currency are left out when this is set. Set to 0 to turn off.

## `maxPriceEur` (type: `integer`):

Keeps only adverts priced at or below this amount in euros. Only adverts priced in EUR can be compared, so adverts priced in another currency are left out when this is set. Set to 0 to turn off.

## `minSurfaceArea` (type: `integer`):

Keeps only adverts whose living area is at least this number, in the unit the advert shows (usually sq ft). The number is not converted. Set to 0 to turn off.

## `maxSurfaceArea` (type: `integer`):

Keeps only adverts whose living area is at most this number, in the unit the advert shows (usually sq ft). The number is not converted. Set to 0 to turn off.

## `minLandArea` (type: `number`):

Keeps only adverts whose land or plot size is at least this number, in the unit the advert shows (sq ft or acres). The number is not converted. Set to 0 to turn off.

## `maxLandArea` (type: `number`):

Keeps only adverts whose land or plot size is at most this number, in the unit the advert shows (sq ft or acres). The number is not converted. Set to 0 to turn off.

## `areaUnit` (type: `string`):

Set this to sq ft or acres to keep only adverts that show their area in that unit. Choose Any unit to skip the check. This applies to the living area and plot size filters.

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

Keeps only adverts from the chosen countries. Leave empty to keep adverts from every country you read.

## `cityContains` (type: `string`):

Keeps only adverts whose town includes this text, such as Fecamp or Gournay. Matching ignores capital letters. Adverts that do not show a town are left out when this is set.

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

Stops the run after this many adverts that pass your filters are saved. The default keeps a run short. Raise it only when you need a larger batch.

## `includeImageUrls` (type: `boolean`):

Adds the list of gallery photo URLs to each advert. Off by default because the list makes each row much wider.

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

Proxy used for every request. The default Apify datacenter proxy is enough for this site. Change it only if requests start failing.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.green-acres.fr/maison/villas/haute-normandie"
    }
  ],
  "propertyType": "",
  "minBedrooms": 0,
  "minBathrooms": 0,
  "minRooms": 0,
  "features": [],
  "minPriceEur": 0,
  "maxPriceEur": 0,
  "minSurfaceArea": 0,
  "maxSurfaceArea": 0,
  "minLandArea": 0,
  "maxLandArea": 0,
  "areaUnit": "any",
  "countries": [],
  "cityContains": "",
  "maxItems": 20,
  "includeImageUrls": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.green-acres.fr/maison/villas/haute-normandie"
        }
    ],
    "propertyType": "",
    "minBedrooms": 0,
    "minBathrooms": 0,
    "minRooms": 0,
    "features": [],
    "minPriceEur": 0,
    "maxPriceEur": 0,
    "minSurfaceArea": 0,
    "maxSurfaceArea": 0,
    "minLandArea": 0,
    "maxLandArea": 0,
    "areaUnit": "any",
    "countries": [],
    "cityContains": "",
    "maxItems": 20,
    "includeImageUrls": false,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/green-acres-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 = {
    "startUrls": [{ "url": "https://www.green-acres.fr/maison/villas/haute-normandie" }],
    "propertyType": "",
    "minBedrooms": 0,
    "minBathrooms": 0,
    "minRooms": 0,
    "features": [],
    "minPriceEur": 0,
    "maxPriceEur": 0,
    "minSurfaceArea": 0,
    "maxSurfaceArea": 0,
    "minLandArea": 0,
    "maxLandArea": 0,
    "areaUnit": "any",
    "countries": [],
    "cityContains": "",
    "maxItems": 20,
    "includeImageUrls": False,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/green-acres-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 '{
  "startUrls": [
    {
      "url": "https://www.green-acres.fr/maison/villas/haute-normandie"
    }
  ],
  "propertyType": "",
  "minBedrooms": 0,
  "minBathrooms": 0,
  "minRooms": 0,
  "features": [],
  "minPriceEur": 0,
  "maxPriceEur": 0,
  "minSurfaceArea": 0,
  "maxSurfaceArea": 0,
  "minLandArea": 0,
  "maxLandArea": 0,
  "areaUnit": "any",
  "countries": [],
  "cityContains": "",
  "maxItems": 20,
  "includeImageUrls": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/green-acres-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/green-acres-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/wt70Z8DBS960olcFA/builds/Knxw9Edyp21iUPeXb/openapi.json
