VOOZH about

URL: https://apify.com/automation-lab/imovirtual-scraper

⇱ Imovirtual Scraper β€” Portuguese Real Estate Listings Β· Apify


Pricing

from $0.30 / 1,000 property listing extracteds

Go to Apify Store

Imovirtual Scraper

Scrape Imovirtual property listings for repeatable Portugal real-estate market research. Extract price, location, property type, area, rooms, agent info, photos, and listing URLs.

Pricing

from $0.30 / 1,000 property listing extracteds

Rating

0.0

(0)

Developer

πŸ‘ Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

17

Total users

8

Monthly active users

16 days ago

Last modified

Categories

Share

Imovirtual Portuguese Real Estate Scraper

Extract property listings from Imovirtual β€” Portugal's largest real estate portal with over 200,000 listings across residential, commercial, and land categories. Get prices, locations, property types, room counts, agent info, photos, and more for any search on the site.

What does it do?

Imovirtual Scraper takes Imovirtual search result URLs and extracts all listing data returned by those searches. It paginates automatically until your maxItems limit is reached.

  • Any property type β€” apartments, houses, villas, land, commercial
  • Sale or rent β€” specify via the URL (comprar/arrendar)
  • Any Portuguese location β€” Lisbon, Porto, Algarve, Braga, and all regions/councils/parishes
  • Full listing detail β€” price, area, rooms, floor, agency, photos, and location hierarchy

The scraper reads data from Imovirtual's server-side-rendered HTML (Next.js __NEXT_DATA__ JSON), so it works without a headless browser β€” fast, reliable, and proxy-friendly.

Scrape public Imovirtual property listings for repeatable Portugal market research. Extract structured fields such as price, location/address, property type, area, rooms, images, agency/agent data where available, and listing URLs. Export to JSON/CSV/Excel, schedule recurring runs, or call the actor through the Apify API.

Best for PropTech teams, investors, brokerages, and researchers tracking Portugal sale/rental supply, pricing, and listing changes.

Who is it for?

🏠 Real Estate Investors

Monitor the Portuguese market for price trends, deal-finding, and portfolio research in Lisbon, Porto, the Algarve, and emerging regions.

πŸ“Š Market Research Analysts

Build datasets of active listings to track median prices, price-per-sqm by parish, transaction volume, and market saturation in any area.

🌍 Expat & Digital Nomad Platforms

Portugal is among Europe's most popular expat destinations. Aggregate Imovirtual data for relocation guides, rental market overviews, or comparison tools.

🏒 Real Estate Agencies & Proptech

Monitor competitor listings, track new-to-market properties, or enrich your CRM with market-wide listing data.

πŸ“ˆ Financial & Academic Research

Study Iberian real estate pricing, urban growth patterns, and housing affordability using live listing data.

πŸ€– AI & Data Science Teams

Build property valuation models, location scoring algorithms, or investment analytics tools using structured Imovirtual data.

Why use this scraper?

  • No browser needed β€” HTTP + SSR JSON extraction; fast and cost-efficient.
  • Full pagination β€” Automatically handles Imovirtual's 36-items-per-page search results.
  • Complete location hierarchy β€” district, province, parish, and street from both address and geocoding data.
  • Both sale and rental β€” Works with any Imovirtual search URL.
  • Photo URLs included β€” Large-resolution images for every listing.
  • Agency or private owner β€” Distinguishes between agency-listed and owner-listed properties.
  • Apify proxy support β€” Works with residential proxies for uninterrupted scraping at scale.

What data does it extract?

FieldDescriptionExample
listingIdUnique Imovirtual listing ID19100936
urlFull URL to the listing pagehttps://www.imovirtual.com/pt/ad/...
titleListing titleT3 na Penha de FranΓ§a, Lisboa
shortDescriptionShort description from search resultsApartamento renovado em...
estateProperty typeFLAT, HOUSE, TERRAIN, COMMERCIAL
transactionSale or rentSELL, RENT
priceAsking price428000
currencyPrice currencyEUR
pricePerSqmPrice per square metre6114
areaM2Usable floor area (mΒ²)70
terrainAreaM2Plot/terrain area (mΒ²)null
roomsRoom countONE, TWO, THREE, FOUR, MORE
floorFloor number3
cityCity/neighbourhoodPenha de FranΓ§a
districtAdministrative districtLisboa
provinceProvince/regionLisboa
parishParishPenha de FranΓ§a
streetStreet nameRua Doutor Oliveira Ramos
agencyNameAgency or private owner nameComprarCasa Foros de Amora
agencyIdAgency ID on Imovirtual1277149
isPrivateOwnerPrivate owner listing?false
photosArray of large photo URLs["https://..."]
dateCreatedListing creation date2026-05-10 10:44:44
pushedUpAtLast bumped/renewed date2026-05-10T10:44:44+01:00
isPromotedPromoted/featured ad?false

How to use it

Step 1 β€” Go to Imovirtual and run your search

Visit imovirtual.com and filter by:

  • Transaction type (buy or rent)
  • Property type (apartment, house, land, etc.)
  • Location (city, district, parish)

Copy the resulting URL from your browser address bar.

Step 2 β€” Paste the URL into the actor

In the Start URLs field, paste one or more Imovirtual search result URLs.

Example URLs:

https://www.imovirtual.com/pt/resultados/comprar/apartamento/lisboa/lisboa
https://www.imovirtual.com/pt/resultados/arrendar/apartamento/porto/porto
https://www.imovirtual.com/pt/resultados/comprar/moradia/algarve

Step 3 β€” Set your limit

Set Max items to control how many listings to extract. See the Pricing section below for per-listing costs by plan tier.

Step 4 β€” Run and export

Download results as JSON, CSV, Excel, or XML from the dataset.

Input parameters

ParameterTypeDefaultDescription
startUrlsstring[](Lisbon apartments)Imovirtual search result URLs to scrape
maxItemsinteger100Maximum listings to extract across all URLs
maxRequestRetriesinteger3Retry attempts for failed HTTP requests

Example input

{
"startUrls":[
"https://www.imovirtual.com/pt/resultados/comprar/apartamento/lisboa/lisboa",
"https://www.imovirtual.com/pt/resultados/arrendar/moradia/porto"
],
"maxItems":500
}

Example output

{
"listingId":19100936,
"url":"https://www.imovirtual.com/pt/ad/t3-na-penha-de-franca-lisboa-ID1i91C",
"title":"T3 na Penha de FranΓ§a, Lisboa",
"shortDescription":"Este apartamento T3 situa-se numa das zonas mais centrais de Lisboa...",
"estate":"FLAT",
"transaction":"SELL",
"price":428000,
"currency":"EUR",
"pricePerSqm":6114,
"areaM2":70,
"terrainAreaM2":null,
"rooms":"FOUR",
"floor":null,
"city":"Penha de FranΓ§a",
"district":"Lisboa",
"province":"Lisboa",
"parish":"Penha de FranΓ§a",
"street":"Rua Doutor Oliveira Ramos",
"agencyName":"ComprarCasa Foros de Amora",
"agencyId":1277149,
"isPrivateOwner":false,
"photos":[
"https://ireland.apollo.olxcdn.com/v1/files/eyJ...image;s=1280x1024;q=80"
],
"dateCreated":"2026-05-10 10:44:44",
"pushedUpAt":"2026-05-10T10:44:44+01:00",
"isPromoted":false
}

How much does it cost to scrape Imovirtual listings?

This actor uses pay-per-result pricing β€” you only pay for listings successfully extracted, never per run.

Plan tierPrice per listingCost per 1,000Cost per 10,000
FREE$0.000575$0.575$5.75
BRONZE$0.0005$0.50$5.00
SILVER$0.00039$0.39$3.90
GOLD$0.0003$0.30$3.00
PLATINUM$0.0002$0.20$2.00
DIAMOND$0.00014$0.14$1.40

The Apify free plan includes $5/month in platform credit β€” enough to extract approximately 8,700 Imovirtual listings at FREE tier pricing. A typical Lisbon apartment search returns up to 7,000+ listings.

No flat fee per run β€” you only pay for what you extract.

Tips

  • Use residential proxies for large-scale runs β€” For scraping 1,000+ listings, enable Apify residential proxies in the actor settings. This reduces the chance of temporary IP blocks from Imovirtual.
  • Combine multiple search URLs β€” Pass several URLs in startUrls to merge results across regions in a single run. The maxItems limit applies globally across all URLs.
  • Scope your search with Imovirtual filters first β€” Before running, use Imovirtual's web interface to apply price range, area, and room filters. Copy the filtered URL β€” the actor will respect those filters.
  • Recommended maxItems by use case:
    • Quick market snapshot: 100–500 items (~$0.05–$0.25 at BRONZE)
    • Regional analysis: 1,000–5,000 items (~$0.50–$2.50 at BRONZE)
    • Full national scrape: 50,000+ items (~$25 at BRONZE, ~$7 at DIAMOND tier)
  • Schedule regular runs β€” Use Apify's scheduler to run the actor daily or weekly and track price trends over time.
  • Export to CSV for Excel/Sheets analysis β€” Use the dataset's CSV export for quick pivot table analysis in Excel or Google Sheets.

Integrations

Connect Imovirtual data to the tools your team already uses:

  • Google Sheets β€” Use the Apify β†’ Google Sheets integration to push new listings into a spreadsheet automatically. Great for tracking Lisbon price trends week-over-week.
  • Airtable β€” Route extracted listings into an Airtable base as property pipeline records. Filter by parish, price range, or room count using Airtable views.
  • Slack notifications β€” Set up a webhook trigger to post new Algarve listings to a Slack channel whenever the actor runs, so your team never misses a fresh deal.
  • Make (Integromat) / n8n β€” Wire the actor's dataset output into multi-step automation workflows β€” filter by price, enrich with Google Maps data, or post to a CRM.
  • BigQuery / data warehouse β€” Export large datasets directly to cloud storage via Apify's built-in integrations for long-term price trend analysis.
  • OpenAI / Claude β€” Use the MCP integration (see below) to ask AI assistants to analyse the scraped data, generate summaries, or filter listings by natural language criteria.

Use with AI via MCP

Imovirtual Scraper is compatible with the Apify MCP server, letting you use it directly from AI assistants like Claude, Cursor, or VS Code Copilot.

Claude Code setup

$claude mcp add--transport http "https://mcp.apify.com?tools=automation-lab/imovirtual-scraper&token=YOUR_APIFY_TOKEN"

Desktop / Cursor / VS Code JSON config

{
"mcpServers":{
"apify":{
"type":"http",
"url":"https://mcp.apify.com?tools=automation-lab/imovirtual-scraper&token=YOUR_APIFY_TOKEN"
}
}
}

Example AI prompts

Once connected, you can ask your AI assistant:

  • "Scrape all Lisbon apartments for sale under €400,000 and show me the cheapest 10 by price-per-sqm."
  • "Get the first 200 rental listings in Porto and calculate the average monthly rent by parish."
  • "Find all private-owner listings in the Algarve β€” skip agency listings β€” and export them as a CSV."

Limitations

  • Search results only β€” The scraper extracts data visible in Imovirtual search result pages. It does not visit individual listing pages, so fields only visible on the detail page (e.g. full description, specific room dimensions, energy rating) are not extracted.
  • Imovirtual Portugal only β€” This actor targets imovirtual.com. For Spain, use a separate Idealista or Fotocasa scraper.
  • Max 36 listings per page β€” Imovirtual paginates at 36 items/page. The actor handles pagination automatically.

FAQ

Can I scrape all listings in Portugal? Yes β€” use broad regional URLs (e.g. /comprar/apartamento/ without a location filter) and set maxItems to a high value. Imovirtual has ~200,000+ active listings.

Does it work for rental listings? Yes β€” use URLs with /arrendar/ instead of /comprar/.

Can I scrape land and commercial properties? Yes β€” use /terreno/ or /comercial/ in the URL path.

Will it work with proxy? Yes β€” the actor works with Apify's residential and datacenter proxies. For large-scale runs, residential proxies are recommended.

How fresh is the data? Data is live at the time of the run. Imovirtual updates listings continuously.

What if the scraper returns 0 results? Check that your URL points to a search results page (not a listing detail page). Open the URL in a browser and confirm it displays a list of properties. Also verify the URL contains /resultados/ β€” detail page URLs won't work.

Why is my run failing or returning partial results? Imovirtual may be temporarily rate-limiting requests from your IP range. Try enabling residential proxies in the actor settings (Proxy > Apify Proxy > Residential). For very large runs (10,000+ items), residential proxies are strongly recommended.

Legality and disclaimer

This actor scrapes publicly accessible data from Imovirtual's website. It does not bypass any authentication or access controls. Users are responsible for ensuring their use of scraped data complies with applicable laws and Imovirtual's terms of service. This tool is intended for research, analysis, and internal business purposes only.

API usage

You can run this actor programmatically via the Apify API or SDK.

Node.js (ApifyClient)

import{ ApifyClient }from'apify-client';
const client =newApifyClient({token:'YOUR_API_TOKEN'});
const run =await client.actor('automation-lab/imovirtual-scraper').call({
startUrls:['https://www.imovirtual.com/pt/resultados/comprar/apartamento/lisboa/lisboa'],
maxItems:100,
});
const{ items }=await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python (ApifyClient)

from apify_client import ApifyClient
client = ApifyClient(token='YOUR_API_TOKEN')
run = client.actor('automation-lab/imovirtual-scraper').call(run_input={
'startUrls':['https://www.imovirtual.com/pt/resultados/comprar/apartamento/lisboa/lisboa'],
'maxItems':100,
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

cURL

curl-X POST \
'https://api.apify.com/v2/acts/automation-lab~imovirtual-scraper/runs?token=YOUR_API_TOKEN'\
-H'Content-Type: application/json'\
-d'{
"startUrls": ["https://www.imovirtual.com/pt/resultados/comprar/apartamento/lisboa/lisboa"],
"maxItems": 100
}'

Build a production real-estate data workflow

Use this actor as one source in a repeatable property-data pipeline: scrape listings from the source site, export structured JSON/CSV/Excel, schedule refreshes, and send results to your dashboard, CRM, warehouse, or AI/LLM workflow.

Scrape public Imovirtual property listings for repeatable Portugal market research. Extract structured fields such as price, location/address, property type, area, rooms/beds/baths, images, agency/agent data where available, and listing URLs. Export to JSON/CSV/Excel, schedule recurring runs, or call the actor through the Apify API.

Best for PropTech teams, investors, brokerages, and researchers tracking Portuguese sale/rental supply, pricing, and listing changes.

For broader coverage, combine it with related Automation Lab actors:

Related actors

Looking for real estate data from other European portals? Browse the Apify Store real estate collection for scrapers covering Spain, Italy, France, and more.

You might also like

Imovirtual Scraper

solidcode/imovirtual-scraper

[πŸ’° $2.5 / 1K] Extract property listings from Imovirtual, Portugal's leading real-estate portal. Search by location, buy/rent, property type, price, area and rooms β€” or paste search URLs β€” to get prices, areas, locations, photos and agency contacts.

Imovirtual Scraper

dadhalfdev/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.

πŸ‘ User avatar

Marco Rodrigues

21

Imovirtual Property Search Scraper

stealth_mode/imovirtual-property-search-scraper

Efficiently scrape property listings from Imovirtual.com, Portugal's leading real estate platform. Extract comprehensive data including apartments, houses, prices, locations, and property details from search results. Perfect for real estate agencies, market analysts, and property investment research

61

Imovirtual Real Estate Scraper

crawlerbros/imovirtual-scraper

Scrape property listings from Imovirtual.com - Portugal's #1 real estate portal. Search for apartments, houses, land, garages, and commercial properties for rent or sale.

Imovirtual Portugal Real Estate Listings Scraper

parseforge/imovirtual-portugal-scraper

Sweep active property listings from Imovirtual Portugal with address, price, bedrooms, bathrooms, area, agent and full description. Ideal for buyers, agents, investors and real estate analytics. Run on demand or on a recurring schedule and feed every row into your favourite analytics or workflow.

ImmoScout24 Germany Real Estate Scraper

automation-lab/immoscout24-de-scraper

Scrape ImmobilienScout24.de property listings for repeatable German real-estate market research. Extract price, address, area, rooms, energy data, photos, and agent contact info.

πŸ‘ User avatar

Stas Persiianenko

10

RE/MAX Portugal Scraper

solidcode/remax-scraper

Extract property listings from RE/MAX Portugal (remax.pt) β€” homes and commercial real estate to buy or rent. 60+ fields per property: descriptions in 6 languages, all photos, GPS, energy ratings, price history, and agent contacts. Search by location with price, bedroom, area, and type filters.

Idealista Scraper β€” Spain, Portugal & Italy Real Estate

rastriq/idealista-scraper

Scrape real estate listings from Idealista.com, the leading property portal in Spain, Portugal, and Italy. Extract price, location, size, rooms, floor, amenities, agency info, and photos for sale and rental properties. Essential for real estate market analysis in Southern Europe.

πŸ‘ User avatar

Rastriq β€” Structured data from the world

5

Realtor.com Scraper 🏠

easyapi/realtor-com-scraper

Scrape real estate listings from Realtor.com. Extract detailed property information including prices, location details, property features, and more. Perfect for real estate market analysis and property research.

Remax Property Search Scraper

stealth_mode/remax-property-search-scraper

Scrape property listings from RE/MAX search results with comprehensive data. Collect 31+ fields including price, location, agent details, property specs, and images β€” perfect for real estate analysis, market research, and property aggregators.