Imovirtual Scraper
Pricing
$20.00/month + usage
Imovirtual Scraper
Extract detailed property listings from Imovirtual.com, Portugal's leading real estate platform. Get comprehensive property data for market analysis, lead generation, or research purposes.
Pricing
$20.00/month + usage
Rating
5.0
(2)
Developer

Marco Rodrigues
Actor stats
1
Bookmarked
20
Total users
1
Monthly active users
3 months ago
Last modified
Categories
Share
Imovirtual Property Scraper 🏠
Extract detailed property listings from Imovirtual.com, Portugal's leading real estate platform. Get comprehensive property data for market analysis, lead generation, or research purposes.
🎯 Features
- Complete Property Details: Capture titles, prices, locations, and sizes
- Professional Info: Get agency details and contact information
- Detailed Descriptions: Full property descriptions and features
- Price Analytics: Price per square meter calculations
- Flexible Filtering: Filter by location, property type, price range, and more
- Smart Collection: Automatically handles pagination and retry logic
- Comprehensive Data: Extract 20+ fields including photos, agency info, and property flags
💡 Use Cases
- Real Estate Market Analysis: Track property prices and trends across Portugal
- Lead Generation: Get contact details of property agencies
- Investment Research: Analyze property prices across different locations and property types
- Market Competition: Monitor competitor listings and pricing strategies
- Property Database: Build your own comprehensive property database
- Location Analysis: Compare property prices by city, province, and neighborhood
🚀 Input Parameters
| Field | Type | Description | Default |
|---|---|---|---|
search_location | String | Location to search (e.g., 'Lisboa', 'Porto', 'Braga') | "Lisboa" |
property_type | String | Type of property (apartment, house, studio, etc.) | "apartment" |
listing_type | String | Buy or rent listings | "buy" |
min_price | Integer | Minimum price in EUR | 50000 |
max_price | Integer | Maximum price in EUR | 500000 |
min_sqft | Integer | Minimum area in m² | 50 |
max_sqft | Integer | Maximum area in m² | 100 |
number_of_bedrooms | Integer | Number of bedrooms (1-6+) | 1 |
Property Types Available:
- apartment - Apartments
- house - Houses
- studio - Studios (T0)
- building - Buildings/Developments
- room - Rooms
- land - Land plots
- commercial - Commercial properties
- office/warehouse - Offices and warehouses
- garage - Garages
📊 Output Dataset
The actor stores results in a dataset with the following fields:
| Field | Type | Description |
|---|---|---|
id | Integer | Unique property listing ID |
title | String | Property title/name |
url | String | Direct URL to the property listing |
description | String | Property description |
full_address | String | Complete property address |
province | String | Province name |
first_photo | String | URL of the first property photo |
number_of_photos | Integer | Total number of photos available |
agency_id | Integer | Agency ID |
agency_name | String | Name of the real estate agency |
price | Integer | Total property price in EUR |
price_per_square_meter | Integer | Price per square meter in EUR |
terrain_area_square_meter | Integer | Terrain area in square meters |
area_square_meter | Integer | Property area in square meters |
rooms_number | String | Number of rooms (e.g., "ONE", "TWO") |
floor_number | String | Floor number (e.g., "GROUND", "FIRST") |
date_created | String | Date when listing was created |
is_private_owner | Boolean | Whether it's a private owner listing |
is_promoted | Boolean | Whether the listing is promoted |
is_exclusive_offer | Boolean | Whether it's an exclusive offer |
🔧 Technical Features
- Retry Logic: Automatically retries failed requests up to 10 times
- Response Validation: Ensures valid JSON responses before processing
- Error Handling: Graceful error handling with detailed logging
- Data Validation: Robust field extraction with fallback values
- Stealth Mode: Uses stealth techniques to avoid detection
- Flexible Output: Saves both processed data and raw responses
📈 Data Quality
The scraper ensures high-quality data extraction by:
- Validating all required fields before saving
- Using fallback values for missing data
- Providing detailed logging for debugging
- Handling various property types and formats
- Supporting both Portuguese and international property markets
📥 Example Input JSON
{"search_location": "Lisboa","property_type": "apartment","listing_type": "buy","min_price": 50000,"max_price": 500000,"min_sqft": 50,"max_sqft": 100,"number_of_bedrooms": 1}
📤 Example Output JSON (Single Listing)
{"id": 18668154,"title": "Apartamento T0 espaçoso com terraço, em São Bento, Lisboa","url": "https://www.imovirtual.com/pt/anuncio/apartamento-t0-espacoso-com-terraco-em-sao-bento-lisboa-ID1gkrg","description": "O projeto São Bento 21, como o nome indica, localiza-se na Rua de São Bento, num dos bairros mais bonitos e cosmopolitas de Lisboa. Trata-se de uma reabilitação com assintura do gabinete Saraiva +Ass...","full_address": "Rua de São Bento 123, Misericórdia, Lisboa","province": "Lisboa","first_photo": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6InZuY2o4ZTJzY3Aycy1FQ09TWVNURU0iLCJ3IjpbeyJmbiI6IjY5bmxwYTdlY3FtNzEtQVBUIiwicyI6IjE0IiwicCI6IjEwLC0xMCIsImEiOiIwIn1dfQ.KPfw7Rp-ulwi7-mkqdoJQnMQ2DioSIEqdTYpSfuuxGE/image;s=1280x1024;q=80","number_of_photos": 13,"agency_id": 3456674,"agency_name": "Infante & Riu - Portugal Real Estate","price": 450000,"price_per_square_meter": 7759,"terrain_area_square_meter": null,"area_square_meter": 58,"rooms_number": "ONE","floor_number": "GROUND","date_created": "2025-08-04 21:00:37","is_private_owner": false,"is_promoted": false,"is_exclusive_offer": false}
🚀 Getting Started
- Configure your input parameters (location, property type, price range)
- Run the scraper
- Access your results in the dataset
- Export data in JSON format for further analysis
Limitations
You can only scrape up to 10 pages. You need to tweak the inputs to get fewer results.