Imovirtual Scraper — Portugal Real Estate avatar

Imovirtual Scraper — Portugal Real Estate

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Imovirtual Scraper — Portugal Real Estate

Imovirtual Scraper — Portugal Real Estate

Scrapes Imovirtual.com property listings in Portugal for sale or rent: price, price per m², area, rooms, floor, parish and district, agency name and listing date. Filter by location, type, typology, price, area and private owner. No proxy needed.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

reventadata

reventadata

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Unofficial. This Actor is not affiliated with, authorised by, endorsed by, or in any way officially connected to Imovirtual. "Imovirtual" is a trademark of its respective owner and is used here only to describe what this tool reads. It reads the same public pages a browser does.

Imovirtual Scraper reads property listings from Imovirtual.com, Portugal's real-estate portal, for sale or for rent: price, price per m², area, rooms, floor, street, parish, council and district, the agency or developer that published the listing, and when it was listed.

What data can you extract from Imovirtual?

Every listing Imovirtual returns for your search, with the fields the site itself publishes in its search results. The Actor reads the data Imovirtual embeds in its own search pages, so it needs no browser and no proxy.

Why scrape Imovirtual?

  • Sale and rent, every property type. Apartments, houses, land, commercial, warehouses and garages, for sale or rent, in any district, council or the whole country.
  • The site's own filters. Price range, area range, typology (T0 to T5) and private owners only are sent to Imovirtual, so only matching listings are fetched.
  • No proxy needed. 25 of 25 sequential pages came back with no proxy at all.
  • Every page the site has. The run walks to the last page Imovirtual reports for the search (479 pages for apartments for sale in Lisboa district on 2026-10-20), or stops at your row cap.
  • No duplicates. The premium tile Imovirtual repeats across pages is returned once.

How to scrape Imovirtual

  1. Pick transaction (buy or rent), propertyType and location.
  2. Optionally narrow by typology, price, area or private owners.
  3. Run it. Results land in the dataset.

Input

FieldTypeMeaning
transactionstringbuy | rent.
propertyTypestringapartamento | moradia | terreno | imoveis-comerciais | armazens | garagem.
locationstringImovirtual's location slug from a search URL: lisboa, porto, lisboa/lisboa, or todo-o-pais for the whole country. An unknown slug stops the run with an error.
typologystringOptional, t0 to t5. t2 returned only 3-room listings (2 bedrooms plus living room).
minPrice / maxPriceintegerOptional, EUR. Left out of the request when empty.
minArea / maxAreaintegerOptional, m².
ownerTypestringany | private (private owners only, no agencies or developers).
sortBystringrelevance | priceAsc | newest.
maxItemsintegerCap on rows. Default 1000.
maxPagesintegerOptional cap on pages, 36 listings each.
proxyConfigurationobjectOff by default.
{
"transaction": "buy",
"propertyType": "apartamento",
"location": "lisboa/lisboa",
"typology": "t2",
"maxPrice": 400000,
"maxItems": 200
}

Output

One row, from a real search on 2026-10-20 (image URL shortened):

{
"id": "19316271",
"url": "https://www.imovirtual.com/pt/anuncio/apartamento-t3-a-venda-na-praca-das-novas-nacoes-arroios-ID1j32L",
"title": "Apartamento T3 à venda na Praça das Novas Nações, Arroios",
"propertyType": "FLAT",
"transaction": "SELL",
"price": 555000.0,
"currency": "EUR",
"pricePerSquareMeter": 6686.75,
"priceFromPerSquareMeter": null,
"areaM2": 83.0,
"rooms": 4,
"roomsLabel": "FOUR",
"floor": "SECOND",
"street": "Praça das Novas Nações",
"neighborhood": "Anjos",
"parish": "Arroios",
"council": "Lisboa",
"district": "Lisboa",
"agencyName": "Century 21 CasaBela",
"agencyType": "AGENCY",
"advertiserName": "Century 21 CasaBela",
"contactNames": [
"Sofia Dias"
],
"isPrivateOwner": false,
"isPromoted": false,
"isExclusiveOffer": false,
"createdAt": "2026-10-20T18:14:18+00:00",
"pushedUpAt": null,
"imageUrl": "https://ireland.apollo.olxcdn.com/v1/files/.../image;s=1280x1024;q=80",
"searchUrl": "https://www.imovirtual.com/pt/resultados/comprar/apartamento/lisboa"
}

Notes and limits

  • rooms counts rooms, not bedrooms. A T2 has 3 rooms. roomsLabel keeps the site's own value; Imovirtual's MORE has no number, so rooms is null there.
  • On rent searches price is the monthly rent.
  • Developments have no total price. price is null and priceFromPerSquareMeter holds the site's "from" price per m².
  • Advertiser names are returned; phone numbers are not. agencyName, advertiserName and contactNames come from the listing itself. Imovirtual reveals phone numbers only behind a reCAPTCHA check, so they are not in the row; the ad url leads to them.
  • A run that returns zero rows fails instead of succeeding with an empty dataset.
  • Reads the same public pages a browser does. See the disclaimer at the top.

How much does it cost to scrape Imovirtual?

Pay-per-event: you pay per result written to the dataset, with no subscription. The current price is on the Actor's Pricing tab.

FAQ

Is a proxy required? No. 25 of 25 sequential pages came back with no proxy.

How do I find a location slug? Search on imovirtual.com and copy the part of the URL after the property type, for example lisboa/lisboa from /pt/resultados/comprar/apartamento/lisboa/lisboa.

More Portugal and marketplace scrapers

ActorWhat it scrapes
OLX Portugal ScraperOLX Portugal (olx.pt) — any category, no proxy required
OLX Romania ScraperOLX Romania (olx.ro) — any category, no proxy required
ZAP Imóveis ScraperZAP Imóveis, Brazil — property listings