Imovirtual Scraper avatar

Imovirtual Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Imovirtual Scraper

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.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Pull property listings from Imovirtual — Portugal's leading real-estate portal — at scale: prices in euros, living area in m², T0–T5+ room counts, full photo galleries, agency details, GPS-free address data, and new-development flags for every for-sale and for-rent listing across the country. Built for Portugal property investors, estate agents, relocation services, and proptech analysts who need a clean, structured Imovirtual dataset without hand-copying listings from the portal one page at a time.

Why This Scraper?

  • Two ways to search — no URL building required — fill in a guided builder (location, buy/rent, type, price, area, rooms) or paste Imovirtual search URLs straight from your browser. Most competing tools accept URLs only.
  • Nine property categories — apartments, houses, land, commercial spaces, garages, rooms, warehouses, new developments, or "any type" — each mapped to Imovirtual's own Portuguese categories (Apartamento, Moradia, Terreno, Empreendimento…).
  • Buy and rent in one actor — flip a single dropdown between Comprar (for sale) and Arrendar (for rent); rent rows carry the monthly euro price in the same field.
  • Server-side price, area, and room filters — set min/max price (€), min/max living area (m²), and multi-select T0–T5+ room counts; filters run on Imovirtual itself, so you only collect — and only pay for — listings that match.
  • Thousands of listings per search — smooth pagination walks every results page with built-in deduplication; a single run pulled 3,793 listings without duplicates.
  • Full listing record on every row — title, total price, price per m², living area, terrain area, rooms, floor, address, city, region, and the largest-resolution image URLs, all in one flat row.
  • Agency vs. private-owner intelligence — every row flags whether it came from an agency (with agency name and type) or a private seller, plus promoted and exclusive-offer markers.
  • New-development detection — empreendimento (new-construction) projects are flagged with isDevelopment and a development name, so you can separate off-plan inventory from resale stock.
  • Clean, analysis-ready output — euro prices as numbers, ISO-8601 timestamps for created and bumped dates, null fields stripped, and consistent camelCase field names.

Use Cases

Real-Estate Investment & Acquisition

  • Compare asking prices and price-per-m² across Lisboa, Porto, and the Algarve
  • Surface new-development (empreendimento) projects for off-plan opportunities
  • Benchmark sale vs. rent yields by collecting both transaction types for one area
  • Track terrain area and floor data when sourcing land or building plots

Lead Generation for Agents

  • Build prospect lists of private-owner listings ripe for an agency mandate
  • Map competing agencies by name and type across a target district
  • Monitor exclusive and promoted listings to gauge competitor activity
  • Feed fresh listing inventory straight into your CRM

Market & Price Analysis

  • Track median price-per-m² movements by city and property type over time
  • Measure inventory volume by district, room count, or price band
  • Compare apartment vs. house vs. land pricing across Portuguese regions
  • Build price-band histograms from min/max-filtered searches

Relocation & Property Services

  • Assemble shortlists filtered by location, budget, and T-typology room count
  • Generate area-by-area rental availability reports for incoming clients
  • Pull listing photos and addresses for relocation briefing packs

Proptech & Data Products

  • Power a Portuguese property portal, valuation model, or comparison tool
  • Refresh an existing listings database with current prices and bump dates
  • Build alerting on new listings within a price and area window

Getting Started

Search by Location

The simplest run — just name a city or district:

{
"location": "Lisboa",
"maxResults": 100
}

Apartments for sale in Porto, priced €200k–€350k, with two or three rooms:

{
"transaction": "buy",
"propertyType": "apartment",
"location": "Porto",
"priceMin": 200000,
"priceMax": 350000,
"rooms": ["1", "2"],
"maxResults": 300
}

Rent Search with a Price Band

Properties to rent in Lisboa up to €1,500/month:

{
"transaction": "rent",
"propertyType": "apartment",
"location": "Lisboa",
"priceMax": 1500,
"areaMin": 60,
"maxResults": 200
}

Paste Imovirtual Search URLs

Already filtered on the site? Copy the URL from your browser — its baked-in filters are used exactly as-is, and the guided fields are ignored:

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

Input Reference

What to Scrape

ParameterTypeDefaultDescription
startUrlsstring[][]Paste one or more Imovirtual search-results URLs. The fastest way to get exactly what you see on the site. When provided, the guided "Build a Search" fields below are ignored. Up to 50 URLs.

Used only when no startUrls are provided.

ParameterTypeDefaultDescription
transactionselectbuyFor Sale (Comprar) or For Rent (Arrendar).
locationstringLisboaCity or district to search (e.g. "Lisboa", "Porto", "Faro"). Accents are accepted and recommended.
propertyTypeselectapartmentApartment, House, Land, Commercial space, Garage, Room, Warehouse, New development, or Any type.

Filters

Applied to the Imovirtual search itself, so you only collect matching listings.

ParameterTypeDefaultDescription
priceMinintegernullMinimum price in € — monthly rent when renting, total price when buying.
priceMaxintegernullMaximum price in €.
areaMinintegernullMinimum living area in m².
areaMaxintegernullMaximum living area in m².
roomsstring[][]Room counts in Portuguese T-typology — T0 (studio) through T5+. Multi-select; combined with OR.

Limits

ParameterTypeDefaultDescription
maxResultsinteger100Maximum listings per search or URL. Results come in full pages, so the last page may overshoot by a few rows. Set to 0 for no cap (an internal safety limit of 50,000 then applies).

Output

Each listing becomes one flat row. Here's a representative result:

{
"id": "67890123",
"title": "Apartamento T2 com varanda no centro de Lisboa",
"url": "https://www.imovirtual.com/pt/anuncio/apartamento-t2-com-varanda-no-centro-de-lisboa-ID67890123",
"slug": "apartamento-t2-com-varanda-no-centro-de-lisboa-ID67890123",
"transaction": "buy",
"propertyType": "apartment",
"estate": "FLAT",
"totalPrice": 285000,
"currency": "EUR",
"pricePerSqm": 3958,
"area": 72,
"rooms": 2,
"floor": 3,
"address": "Rua da Prata 45",
"city": "Lisboa",
"region": "Lisboa",
"images": [
"https://ireland.apollo.olxcdn.com/v1/files/example1/image;s=1280x1024",
"https://ireland.apollo.olxcdn.com/v1/files/example2/image;s=1280x1024"
],
"agencyName": "Lisboa Prime Imobiliária",
"agencyType": "AGENCY",
"isPrivateOwner": false,
"isPromoted": true,
"isExclusive": false,
"isDevelopment": false,
"shortDescription": "Apartamento totalmente renovado, com varanda e excelente exposição solar...",
"dateCreated": "2026-04-12T09:14:00Z",
"pushedUpAt": "2026-05-28T07:02:00Z",
"searchQuery": "buy apartment Lisboa",
"scrapedAt": "2026-05-30T10:41:05Z"
}

Core Fields

FieldTypeDescription
idstringImovirtual listing identifier
titlestringListing title
urlstringCanonical listing URL
slugstringURL slug
transactionstringbuy or rent
propertyTypestringNormalized type: apartment, house, land, commercial, garage, room, warehouse, development
estatestringImovirtual's raw estate category (e.g. FLAT, HOUSE)
shortDescriptionstringShort listing description

Price & Specs

FieldTypeDescription
totalPricenumberTotal price in € — sale price, or monthly rent for rent listings
currencystringPrice currency (EUR)
pricePerSqmnumberPrice per m² in €
areanumberLiving area in m²
terrainAreanumberPlot / terrain area in m², when applicable
roomsnumberNumber of rooms
floornumber/stringFloor (number, or cellar / attic)

Location & Media

FieldTypeDescription
addressstringStreet address when published
citystringCity
regionstringRegion / province
imagesstring[]Listing photo URLs at the largest available resolution

Listing Source & Flags

FieldTypeDescription
agencyNamestringListing agency name (absent for private sellers)
agencyTypestringAgency type
isPrivateOwnerbooleanTrue when posted by a private owner
isPromotedbooleanPromoted / featured listing
isExclusivebooleanExclusive-offer listing
isDevelopmentbooleanNew-construction / development project
developmentTitlestringDevelopment name, when applicable

Dates & Provenance

FieldTypeDescription
dateCreatedstringFirst-published date (ISO 8601)
pushedUpAtstringLast bump / refresh date (ISO 8601)
searchQuerystringThe location and transaction that produced this row
scrapedAtstringISO-8601 timestamp of data collection

Empty fields are removed from each row, so a listing without a development name or terrain area simply omits those keys.

Tips for Best Results

  • Start small, then scale. Set maxResults to 50–100 on your first run to confirm the data fits your needs, then raise it — or set it to 0 to pull an entire search.
  • Use district names, not regions. "Lisboa", "Porto", and "Faro" resolve cleanly; broad region names like "Algarve" don't map to a search and return nothing. For a sub-district like a council, paste a search URL from the portal instead.
  • Remember the Portuguese T-typology. Room counts follow the "T" system: T0 is a studio, T1 has one bedroom, and so on up to T5+. Pick the rooms values that match the typology you want, and combine several to widen the net.
  • Rent prices live in totalPrice. For rent searches, the monthly euro amount is in totalPrice — there's no separate rent field to read.
  • Filter at the source to control cost. Price, area, and room filters narrow the search on Imovirtual itself, so tighter filters mean fewer rows collected and a cheaper run.
  • Paste URLs for pixel-perfect filters. Any filter you can set on the site — including ones not exposed in the guided builder — carries through when you paste the search URL. The URL's filters win over the guided fields.
  • Separate new builds from resale. Filter on isDevelopment downstream (or set propertyType to "New development") to isolate off-plan empreendimento inventory.

Pricing

$2.50 per 1,000 results — below the typical market rate for Imovirtual extraction, with the guided search builder included at no extra charge.

ResultsEstimated Cost
100$0.25
1,000$2.50
10,000$25.00
100,000$250.00

A "result" is any listing row in the output dataset. No compute charges — you only pay per result returned. Standard Apify platform fees depend on your plan.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n — Workflow automation
  • Google Sheets — Direct spreadsheet export
  • Slack / Email — Notifications on new results
  • Webhooks — Trigger custom APIs on run completion
  • Apify API — Full programmatic access

This actor is designed for legitimate real-estate research, market analysis, and lead generation. You are responsible for complying with applicable laws and Imovirtual's Terms of Service, including any rules on the reuse of listing content and personal data. Do not use collected data for spam, harassment, or any unlawful purpose, and respect data-protection regulations when handling agency or owner contact information.