# Logic-Immo Scraper — French Real Estate Listings & Properties (`studio-amba/logicimmo-scraper`) Actor

Scrape real estate listings from logic-immo.com — apartments, houses, prices, photos, and details for the French property market.

- **URL**: https://apify.com/studio-amba/logicimmo-scraper.md
- **Developed by:** [Studio Amba](https://apify.com/studio-amba) (community)
- **Categories:** Real estate
- **Features:** Limited permissions
- **Stats:** 15 total users, 1 monthly users, 100.0% 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?

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

## Logic-Immo Scraper

Scrape real estate listings from [Logic-Immo.com](https://www.logic-immo.com) — France's leading property portal — and get structured data on apartments, houses, prices, photos, and agent details across every French city.

### What is Logic-Immo Scraper?

**Logic-Immo Scraper** extracts property listings from one of France's most-visited real estate websites, giving you clean, structured data that would take hours to collect manually. Whether you're tracking the Paris apartment market or analyzing rental yields in Lyon, this actor delivers the data you need.

- **Track property prices across France:** monitor asking prices for apartments and houses in any city, arrondissement, or department to spot trends and undervalued areas
- **Build rental market datasets:** extract thousands of rental listings with prices per square meter, helping landlords and investors benchmark returns across French cities
- **Automate competitor research:** real estate agencies can monitor what other agencies list, at what price points, and in which neighborhoods
- **Power property alerts:** schedule daily runs and pipe new listings to Slack, email, or Google Sheets so you never miss a deal in your target area
- **Feed AI valuation models:** combine listing data with surface area, bedrooms, and location to train pricing models or build comparison tools

Logic-Immo.com has **no public API**. This scraper navigates the site using a real browser (Playwright) with residential proxies to handle DataDome anti-bot protection, so you get reliable results every time.

### What data does Logic-Immo Scraper extract?

🏠 **Title** — full listing headline as displayed on Logic-Immo
📍 **Address** — city, postal code, and street when available
💰 **Price** — asking price in euros (sale or monthly rent)
🏗️ **Property type** — apartment, house, land, villa, loft, castle, and more
🔑 **Transaction type** — sale (vente) or rent (location)
🛏️ **Bedrooms** and **bathrooms** count
📐 **Surface area** — living space in square meters
🌳 **Land surface** — plot size for houses and land
📸 **Main image** and **all photo URLs** from the listing gallery
📝 **Description** — full property description in French
🏢 **Agency name** — the listing agent or agency
🔗 **Direct URL** to the original listing on Logic-Immo.com
🕐 **Scraped timestamp** — when the data was collected

### How to scrape Logic-Immo.com

Configure the scraper through the Apify Console UI or via the API. You can provide a search URL directly from Logic-Immo, or let the scraper build one from your filters.

#### Input options

| Input | Type | Description |
|-------|------|-------------|
| **Search URL** | string | Paste any Logic-Immo search results URL with your filters already applied. This overrides all other filters below. |
| **Listing Type** | `sale` / `rent` | Choose between properties for sale (vente) or for rent (location). Default: `sale` |
| **City / Location** | string | City name like `paris`, `lyon`, `marseille`, `bordeaux`. Only used when no search URL is provided. |
| **Max Results** | integer | Maximum number of listings to return (1 – 10,000). Default: `100` |
| **Scrape Detail Pages** | boolean | Visit each listing's detail page for full descriptions, all photos, and agency info. Slower but much richer data. Default: `false` |
| **Proxy Configuration** | object | Proxy settings. **Residential proxies are required** — Logic-Immo uses DataDome anti-bot protection. |

#### Tips for best results

- **Use the Search URL for complex filters:** go to logic-immo.com, set your exact criteria (price range, property type, number of rooms, arrondissement), and paste the URL directly into the actor
- **Enable detail scraping for investment research:** the detail pages contain full descriptions, all photos, and agency contacts that aren't available from the search results alone
- **Start with a small `maxResults`** (50-100) to verify data quality before scaling up to thousands
- **Residential proxies are mandatory** — Logic-Immo's DataDome protection blocks datacenter IPs. The actor defaults to Apify's residential proxy group

### Output

Results are stored in a dataset you can download as JSON, CSV, Excel, XML, or HTML from the Apify Console.

#### JSON example

```json
{
    "title": "Appartement 3 pièces 65 m² Paris 11e",
    "price": 485000,
    "currency": "EUR",
    "url": "https://www.logic-immo.com/detail-vente-appartement-paris-75-3847291.htm",
    "scrapedAt": "2026-04-03T08:15:00.000Z",
    "listingType": "sale",
    "propertyType": "apartment",
    "address": "Rue de la Roquette",
    "city": "Paris 11e",
    "postalCode": "75011",
    "bedrooms": 2,
    "bathrooms": 1,
    "surface": 65,
    "landSurface": null,
    "imageUrl": "https://photos.logic-immo.com/ap-3847291-001-large.jpg",
    "imageUrls": [
        "https://photos.logic-immo.com/ap-3847291-001-large.jpg",
        "https://photos.logic-immo.com/ap-3847291-002-large.jpg",
        "https://photos.logic-immo.com/ap-3847291-003-large.jpg"
    ],
    "description": "Bel appartement lumineux de 65 m² au 3e étage avec ascenseur, comprenant un séjour, 2 chambres, une cuisine équipée, et une salle de bains. Cave incluse. Proche métro Voltaire.",
    "agencyName": "Century 21 Bastille"
}
```

### How much does it cost to scrape Logic-Immo?

Logic-Immo Scraper uses **Playwright (browser-based)** crawling with **residential proxies**, which is more expensive than HTTP-only scrapers but necessary to handle DataDome protection reliably.

| Scenario | Est. cost | Time |
|----------|-----------|------|
| 100 listings from search results (no details) | ~$2.50 | ~3 min |
| 100 listings with full detail pages | ~$5.00 | ~8 min |
| 500 listings from search results only | ~$10.00 | ~12 min |

Costs depend on proxy usage and the number of pages loaded. Residential proxy bandwidth is the main cost driver.

### Can I integrate Logic-Immo Scraper with other apps?

Yes. Logic-Immo Scraper connects with any tool through [Apify integrations](https://apify.com/integrations):

- **Google Sheets** — automatically export French property listings to a spreadsheet for team sharing
- **Slack / Email** — get alerted when new properties matching your criteria appear in Paris, Lyon, or any city
- **Zapier / Make** — trigger workflows when scraping finishes, such as updating a CRM or sending a summary
- **Airtable** — build a filterable property database with photos and agent contacts
- **REST API** — call the scraper from Python, JavaScript, or any language
- **Webhooks** — receive a notification when a run completes

### Can I use Logic-Immo Scraper as an API?

Yes. Use the [Apify API](https://docs.apify.com/api/v2) to run Logic-Immo Scraper programmatically from any application.

**Python:**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("studio-amba/logicimmo-scraper").call(run_input={
    "searchQuery": "paris",
    "listingType": "sale",
    "maxResults": 200,
    "scrapeDetails": True,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['title']} — €{item.get('price', 'N/A'):,} — {item['city']}")
```

**JavaScript:**

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('studio-amba/logicimmo-scraper').call({
    searchQuery: 'lyon',
    listingType: 'rent',
    maxResults: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => console.log(`${item.title} — €${item.price}/mois`));
```

Check the [API tab](https://apify.com/studio-amba/logicimmo-scraper/api) for full documentation.

### FAQ

#### What is Logic-Immo.com?

Logic-Immo is one of France's largest real estate portals, listing hundreds of thousands of properties for sale and rent across all French departments. It's part of the Aviv Group (formerly Axel Springer Digital Classifieds) alongside SeLoger and is widely used by French agencies to advertise their listings.

#### How does Logic-Immo Scraper work?

The scraper uses a Playwright browser with stealth settings and residential proxies to navigate Logic-Immo's search results. It first attempts to extract structured data from embedded JSON in the page (faster and more reliable), falling back to HTML parsing when needed. Detail page scraping adds a second pass to enrich each listing with descriptions, full photo galleries, and agency info.

#### Why does Logic-Immo Scraper need residential proxies?

Logic-Immo uses DataDome, an advanced anti-bot service that detects and blocks datacenter IP addresses. Residential proxies rotate through real consumer IP addresses, which DataDome allows through. Without residential proxies, you'll hit CAPTCHA challenges on most requests.

#### Is it legal to scrape Logic-Immo?

This scraper extracts publicly available property listing data that Logic-Immo.com displays to all visitors. The data consists of factual information (prices, addresses, property characteristics) published by real estate agencies. As with any scraping tool, use the data responsibly and in compliance with French and EU data protection regulations.

#### Can I scrape both sales and rentals?

Yes. Set `listingType` to `"sale"` for properties for sale (vente) or `"rent"` for rentals (location). You can also paste a search URL that already has your preferred transaction type selected.

#### How often should I run this scraper?

For market monitoring, a daily or weekly schedule works well. Logic-Immo updates listings continuously throughout the day. Use Apify's scheduling feature to automate recurring runs.

### Limitations

- **France only.** Logic-Immo.com covers metropolitan France and overseas departments. It does not list properties in Belgium, Luxembourg, or other countries.
- **DataDome protection** requires residential proxies, increasing run costs compared to simpler scrapers.
- **Detail page scraping is slow** — each listing requires a separate browser page load. For large datasets, consider running without detail scraping first and selectively enriching interesting listings.
- **Some listings may have incomplete data** if the agency hasn't filled in all fields (bedrooms, surface area, etc.).
- **Rate limiting** — the scraper uses conservative concurrency (3 parallel pages) to avoid triggering additional anti-bot measures.

### Other real estate scrapers

Build a cross-border European property dataset by combining Logic-Immo Scraper with these actors:

- 🏛️ [Biddit Scraper](https://apify.com/studio-amba/biddit-scraper) — Belgian notarial property auctions
- 🏡 [Immovlan Scraper](https://apify.com/studio-amba/immovlan-scraper) — Belgian property listings (VTM/DPG network)
- 🇱🇺 [Athome.lu Scraper](https://apify.com/studio-amba/athome-scraper) — Luxembourg's #1 real estate portal
- 🇱🇺 [WortImmo Scraper](https://apify.com/studio-amba/wortimmo-scraper) — Luxembourg property listings (Wort media group)

### Your feedback

Found a bug, getting blocked, or want a new feature? Open an issue on the [Issues tab](https://apify.com/studio-amba/logicimmo-scraper/issues). We actively maintain this scraper and respond to all reports.

# Actor input Schema

## `searchUrl` (type: `string`):

A Logic-Immo search results URL. Go to logic-immo.com, set your filters (city, property type, price range), and paste the URL here — the address bar URL of the results page, e.g. https://www.logic-immo.com/recherche-immo/vente/immobilier/ile-de-france/paris-75/AD06FR76

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

Type of listing to scrape. Only used if no searchUrl is provided.

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

City or location name (e.g. 'paris', 'lyon', 'marseille'). Only used if no searchUrl is provided.

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

Maximum number of listings to return.

## `scrapeDetails` (type: `boolean`):

Whether to visit each listing's detail page for full description, all photos, and extra details. Slower but more data.

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

Proxy settings. REQUIRED — Logic-Immo uses DataDome anti-bot protection. Use Apify residential proxies for best results.

## Actor input object example

```json
{
  "searchUrl": "https://www.logic-immo.com/recherche-immo/vente/immobilier/ile-de-france/paris-75/AD06FR76",
  "listingType": "sale",
  "maxResults": 5,
  "scrapeDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "FR"
  }
}
```

# 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 = {
    "searchUrl": "https://www.logic-immo.com/recherche-immo/vente/immobilier/ile-de-france/paris-75/AD06FR76",
    "maxResults": 5,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "FR"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/logicimmo-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 = {
    "searchUrl": "https://www.logic-immo.com/recherche-immo/vente/immobilier/ile-de-france/paris-75/AD06FR76",
    "maxResults": 5,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "FR",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/logicimmo-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 '{
  "searchUrl": "https://www.logic-immo.com/recherche-immo/vente/immobilier/ile-de-france/paris-75/AD06FR76",
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "FR"
  }
}' |
apify call studio-amba/logicimmo-scraper --silent --output-dataset

```

## MCP server setup

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