Imovirtual Portugal Property Listings Scraper avatar

Imovirtual Portugal Property Listings Scraper

Pricing

from $0.80 / 1,000 record scrapeds

Go to Apify Store
Imovirtual Portugal Property Listings Scraper

Imovirtual Portugal Property Listings Scraper

Portugal is a live, foreign-capital-heavy residential market and a hole in our Iberian coverage — we hold Spanish

Pricing

from $0.80 / 1,000 record scrapeds

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

23 days ago

Last modified

Share

Portugal Property Listings Database — Imovirtual Scraper

Scrapes property listings from Imovirtual, Portugal's largest real estate marketplace. Returns pricing, typology, location, energy certificate, and agent contact details for apartments, houses, land, garages, warehouses, commercial units, and room rentals — sale and rent, nationwide.


Imovirtual Scraper Features

  • Covers the full national matrix — every deal type (comprar/sale, arrendar/rent) across seven property categories, not just one search URL
  • Returns Portugal-native fields: T-typology (T0, T1, T2…), área útil, distrito/concelho/freguesia, and the A+ through F energy certificate scale
  • Extracts agent and agency contact details, including phone numbers, where the listing exposes them
  • Pulls GPS coordinates, construction year, floor, and condition on top of the standard price and area fields
  • Filterable by deal type and property type, so a run can target just rentals in one category instead of the whole country
  • Handles pagination across thousands of result pages per category automatically — you point it at Portugal, not at page 1

Who Uses Imovirtual Property Data?

  • Cross-border property investors — screen the Portuguese market by district and price band before ever booking a flight
  • Short-let and rental underwriters — compare asking rents against the sale-price data from the same run, or build a yield model from both sides of the market
  • Price-index builders — track price-per-square-metre trends by typology and distrito over time
  • Relocation and golden-visa advisors — pull current inventory for clients instead of screenshotting a search page
  • Market researchers — measure inventory mix (new build vs. existing, agency vs. private) across regions

How Imovirtual Scraper Works

  1. Pick your deal types (sale, rent, or both) and property types — or leave the defaults to cover everything Imovirtual lists.
  2. The scraper walks every matching category nationwide, page by page, and visits each listing it finds for the fields a search results page doesn't show.
  3. Records stream into the dataset as they're collected, so a large run is usable before it finishes.
  4. Hit your item cap or a spend limit mid-crawl? Resume it later without paying twice for what you already have — see below.

Input

{
"maxItems": 500,
"dealTypes": ["comprar", "arrendar"],
"propertyTypes": ["apartamento", "moradia"]
}
FieldTypeDefaultDescription
maxItemsInteger10Maximum number of listings to scrape. 0 runs the full national matrix — roughly 220,000+ listings across all categories.
dealTypesArray["comprar", "arrendar"]Sale (comprar), rent (arrendar), or both.
propertyTypesArray["apartamento", "moradia", "terreno", "garagem", "armazem", "comercial", "quarto"]Which of Imovirtual's own property categories to crawl. comercial covers offices, shops and other commercial space as one bucket — Imovirtual doesn't expose a machine-readable subtype split for those. quarto (room rentals) only applies when arrendar is selected.
resumeCursorString—Cursor from a previous run's Output. Leave empty for a fresh crawl.

Narrowing to one or two categories is a lot faster than the full default — a run scoped to arrendar + garagem, for instance, covers a few thousand listings instead of the full corpus.


Imovirtual Scraper Output Fields

{
"listing_id": "19083651",
"listing_url": "https://www.imovirtual.com/pt/anuncio/maravilhoso-t3-parque-das-nacoes-ID1i4vP",
"title": "Maravilhoso T3 | Parque das Nações",
"deal_type": "comprar",
"property_type": "apartamento",
"price_eur": 1595000,
"price_raw": "1 595 000 €",
"price_period": "sale",
"price_per_sqm_eur": 8055.56,
"typology": "T2",
"rooms": 3,
"bathrooms": 2,
"area_useful_sqm": 198,
"area_gross_sqm": 198,
"land_area_sqm": null,
"floor": "3º andar (de 5)",
"has_elevator": true,
"energy_certificate": "B",
"condition": "usado",
"construction_year": 1988,
"district": "Lisboa",
"municipality": "Lisboa",
"parish": "Parque das Nações",
"address": "Rua das Musas - Expo",
"latitude": 38.768,
"longitude": -9.094,
"features": ["ar condicionado", "varanda", "elevador"],
"description": "Apartamento T3 com vista rio, totalmente remodelado...",
"advertiser_type": "agency",
"agency_name": "ZÉNITE IMOVEIS",
"agency_id": "5199464",
"agency_url": "https://www.imovirtual.com/pt/empresas/agencias-imobiliarias/zenite-imoveis-ID5199464",
"agent_name": "Nuno Silveira",
"agent_phone": "+351937594409",
"is_exclusive": false,
"is_promoted": true,
"image_urls": ["https://..."],
"images_count": 12,
"created_at": "2026-03-19T10:56:34Z",
"pushed_up_at": "2026-10-01T20:00:34+01:00",
"scraped_at": "2026-10-01T19:33:22.753Z"
}
FieldTypeDescription
listing_idStringImovirtual's own ad ID
listing_urlStringDirect link to the listing
titleStringListing headline
deal_typeStringcomprar (sale) or arrendar (rent)
property_typeStringapartamento, moradia, terreno, garagem, armazem, comercial, or quarto
price_eurNumberAsking price (or monthly rent) in EUR
price_rawStringFormatted price as shown on the listing
price_periodStringsale or month
price_per_sqm_eurNumberPrice per square metre — sale listings only
typologyStringPortuguese T-typology (T0 = studio, T1, T2…)
roomsNumberTotal divisions (assoalhadas)
bathroomsNumberBathroom count
area_useful_sqmNumberÁrea útil in square metres
area_gross_sqmNumberÁrea bruta in square metres
land_area_sqmNumberPlot/land area — terreno listings only
floorStringFloor, in Portuguese (e.g. "3º andar (de 5)", "Rés-do-chão")
has_elevatorBooleanWhether the building has a lift
energy_certificateStringA+ through F, or "Isento" (exempt)
conditionStringnovo, usado, em construção, or para recuperar
construction_yearNumberYear built, where disclosed
districtStringDistrito
municipalityStringConcelho
parishStringFreguesia
addressStringStreet-level address, where disclosed
latitudeNumberGPS latitude
longitudeNumberGPS longitude
featuresArrayAmenities in Portuguese (varanda, garagem, piscina, ar condicionado…)
descriptionStringFull listing description, as plain text
advertiser_typeStringprivate, agency, or developer
agency_nameStringListing agency's name, where applicable
agency_idStringImovirtual's agency ID
agency_urlStringLink to the agency's storefront
agent_nameStringNamed contact on the listing
agent_phoneStringContact phone number, where disclosed
is_exclusiveBooleanFlagged as an exclusive listing
is_promotedBooleanFlagged as promoted/featured
image_urlsArrayFull-size photo URLs
images_countNumberNumber of photos on the listing
created_atStringWhen the listing was first published
pushed_up_atStringLast time the seller refreshed the listing's ranking
scraped_atStringWhen this record was collected

Resuming a large crawl

Every run emits a resumeCursor in its Output. If a large crawl stops before it finishes — because it hit maxItems, your spend cap (maxTotalChargeUsd), or was aborted — start a new run with the same input plus that resumeCursor to continue from where it left off. The crawl resumes from the queued work the previous run didn't reach.

  • You are not re-charged for records the earlier run already delivered.
  • Resume within your account's run-retention window — on the free tier, roughly your 10 most recent runs. Once the source run is pruned, its resumeCursor is no longer valid.
  • resumeCursor is opaque — supply it unmodified.

FAQ

How do I scrape Imovirtual property listings?

Imovirtual Scraper needs no account, login, or API key. Set maxItems and your deal/property type filters, run it, and listings stream into your dataset as they're found.

What data can I get from Imovirtual?

Pricing, typology, area, energy certificate, location down to the freguesia, GPS coordinates, and agent contact details — 38 fields per listing, covering both the sale and rental markets.

Can I filter by deal type or property type?

Yes. Set dealTypes to ["comprar"] or ["arrendar"], and propertyTypes to any combination of apartamento, moradia, terreno, garagem, armazem, comercial, or quarto. Narrow runs finish faster — the default covers everything.

How much does Imovirtual Scraper cost to run?

Pricing follows the pay-per-event model shown on this page, charged per record saved. There's no separate charge for pages visited to find those records.

Does this cover rentals as well as sales?

Both. comprar is the sale market, arrendar is rentals — including room rentals (quarto), which don't exist on the sale side.


Need More Features?

Need custom fields, filters, or a different target site? File an issue or get in touch.

Why Use Imovirtual Scraper?

  • National coverage — walks every deal type and property category Imovirtual publishes, not a single search URL
  • Portugal-native schema — T-typology, área útil, distrito/concelho/freguesia, and the real energy certificate scale, instead of a generic listing record translated badly
  • Resumable — a crawl that stops partway picks back up without re-billing records you already have