Imovirtual Property Scraper
Pricing
Pay per usage
Imovirtual Property Scraper
Scrape residential & commercial listings from Imovirtual. Extract prices, locations, property types, descriptions, agent details & images. Ideal for real estate market analysis, price intelligence, investment pipeline building & property dataset monetization. High-volume, reliable extraction.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Shahid Irfan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Extract property listing data from Imovirtual for Portuguese real estate research, pricing analysis, and listing monitoring. Collect apartment and house results with prices, areas, room counts, locations, images, seller details, and listing dates in a clean Apify dataset.
Features
- Result URL support - Start from any compatible Imovirtual result page.
- Search inputs - Build a default apartment purchase search from location and optional keyword.
- Pagination control - Collect multiple result pages up to your chosen result limit.
- Clean records - Empty and always-missing values are removed from saved items.
- Rich listing fields - Capture price, area, room count, location hierarchy, images, seller, and tags.
Use Cases
Market Research
Compare property prices across Portuguese districts and cities. Use fields such as price, area, room count, and price per square meter to understand local market ranges.
Investment Analysis
Build datasets for buy-to-let or resale analysis. Track asking prices, listing dates, seller type, and location details to shortlist useful opportunities.
Listing Monitoring
Run the scraper on a schedule to monitor new and updated listings. Compare listing IDs and dates across runs to detect changes.
Lead Enrichment
Collect structured property records for CRM workflows. Agency names, owner names, URLs, and location fields help qualify listings before outreach.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | Imovirtual apartment purchase URL | Imovirtual result URL. This has priority over the search fields. |
keyword | String | No | terraço | Optional keyword matched against listing text and tags. |
location | String | No | todo-o-pais | Location used when startUrl is empty, such as lisboa, porto, or todo-o-pais. |
results_wanted | Integer | No | 20 | Maximum number of listings to save. |
max_pages | Integer | No | 3 | Maximum result pages to request. |
proxyConfiguration | Object | No | Apify Proxy off | Proxy settings for cloud runs. |
Output Data
Each dataset item can contain:
| Field | Type | Description |
|---|---|---|
id | Integer | Imovirtual listing ID |
title | String | Listing title |
url | String | Listing detail URL |
transaction | String | Transaction type |
estate | String | Property category |
price | Number | Listing price |
currency | String | Price currency |
price_per_square_meter | Number | Price per square meter |
area_sqm | Number | Property area in square meters |
rooms | String | Room count label |
city | String | City, parish, or local area |
province | String | District or province |
description | String | Short listing description |
image_urls | Array | Unique large image URLs returned by the listing endpoint |
total_possible_images | Number | Total photo count reported by Imovirtual |
agency_name | String | Agency name when available |
owner_name | String | Advert owner name when available |
tags | Array | Listing feature tags |
date_created | String | Listing creation date |
page | Integer | Result page where the listing was found |
Usage Examples
Start From a URL
{"startUrl": "https://www.imovirtual.com/pt/resultados/comprar/apartamento/todo-o-pais","results_wanted": 50,"max_pages": 3}
Search Lisbon Apartments
{"location": "lisboa","results_wanted": 40,"max_pages": 2}
Filter by Keyword
{"location": "porto","keyword": "terraço","results_wanted": 20,"max_pages": 5}
Sample Output
{"id": 19174677,"title": "Apartamento T3 Duplex com terraço","url": "https://www.imovirtual.com/pt/ad/apartamento-t3-duplex-com-terraco-ID1iscZ","transaction": "SELL","estate": "FLAT","price": 280000,"currency": "EUR","price_per_square_meter": 1458.33,"area_sqm": 192,"rooms": "T3","city": "S. João da Madeira","province": "Aveiro","description": "Apartamento T3 duplex com terraço, último andar, óptimo estado...","image_urls": ["https://ireland.apollo.olxcdn.com/v1/files/example/image;s=1280x1024;q=80"],"total_possible_images": 22,"image": "https://ireland.apollo.olxcdn.com/v1/files/example/image;s=1280x1024;q=80","owner_name": "Lúcia Ferreira","is_private_owner": true,"date_created": "2026-07-18 16:21:06","page": 1}
Tips for Best Results
Use Result URLs for Exact Searches
- Copy a working Imovirtual result URL when you need specific filters.
- Use
startUrlwhen you already selected filters on the website. - Keep
max_pagesmodest for quick test runs.
Use Search Fields for Common Runs
- Set
locationto a district slug such aslisboaorporto. - Use
todo-o-paisfor country-wide collection. - Use
keywordonly when you want a text match inside collected listings.
Optimize Collection Size
- Start with
20results for testing. - Increase
results_wantedandmax_pagesfor larger datasets. - Schedule repeated runs for monitoring instead of very large one-off runs.
Integrations
Connect your data with:
- Google Sheets - Review property tables with your team.
- Airtable - Build searchable real estate databases.
- Make - Trigger workflows from new dataset items.
- Zapier - Send matching listings to business tools.
- Webhooks - Deliver fresh results to your own systems.
Export Formats
- JSON - For application workflows.
- CSV - For spreadsheet analysis.
- Excel - For reporting.
- XML - For system integrations.
Frequently Asked Questions
Can I scrape any Imovirtual result URL?
Yes, compatible Imovirtual result URLs can be provided through startUrl.
Does user input override the sample values?
Yes, values you provide in the Apify UI or API are used at runtime.
Can I collect more than one page?
Yes, set max_pages above 1 and increase results_wanted.
Why are some fields missing?
Some listings do not publish every field. Empty values are removed from the saved record.
Can I search by keyword?
Yes, the keyword is matched against collected listing text, locations, agencies, owners, and tags.
Support
For issues or feature requests, contact support through the Apify Console.
Resources
Legal Notice
This actor is designed for legitimate data collection purposes. Users are responsible for ensuring compliance with website terms of service and applicable laws. Use collected data responsibly and respect rate limits.