Imovirtual Scraper — Portugal Real Estate Data
Pricing
from $1.50 / 1,000 results
Imovirtual Scraper — Portugal Real Estate Data
Scrape real estate listings from Imovirtual.com — Portugal's major property portal (OLX Group). No browser, no API key. Filter by location, buy/rent, property type, price (EUR), area, rooms and owner type. Returns price, m², price/m², full Portuguese address, agency and image gallery per listing.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
2
Monthly active users
6 days ago
Last modified
Categories
Share
Imovirtual Scraper — Portugal Real Estate Data, Prices & Leads (No API)
Scrape property listings from Imovirtual.com, one of Portugal's largest real estate portals (OLX Group) with hundreds of thousands of active listings — apartments, houses (moradias), plots, commercial space, warehouses, garages, rooms, studios and new developments, for sale or rent. Get price, price/m², full Portuguese address (distrito → concelho → freguesia), agency details and image galleries in clean structured JSON, straight from the site's __NEXT_DATA__ payload. Fast, no browser, no API key, no login.
🏆 Why this Imovirtual scraper?
50+ fields per listing · thousands of listings per run · direct HTTP + JSON (no browser) · residential-proxy ready · export to JSON / CSV / Excel. The unofficial Imovirtual API alternative for Portuguese real-estate market research, investment screening and lead generation — with native support for the T-typology (T0–T10) and the distrito/concelho/freguesia hierarchy.
✨ What this Actor does / Key features
- 🏠 9 property categories — apartments, houses/moradias, plots/land, commercial, warehouses, garages, rooms, studios (T0) and new developments, for sale or rent.
- 📍 Nationwide targeting — scrape all of Portugal, any district (distrito), council (concelho) or parish (freguesia) via location slugs.
- 💰 Powerful filters — price range (EUR), area range (m²), room range (T-typology), market (primary/secondary), owner type and distance radius.
- 🔀 Flexible sorting — by latest, price, price/m² or area, ascending or descending.
- 🗺️ Full Portuguese address — district, council, parish, neighborhood (bairro) and street for every listing (GPS and postal code available on detail pages).
- 🏢 Agency lead data — agency name, ID, slug, logo and type, plus contact name, exclusivity, featured and promoted flags.
- 🖼️ Image galleries — main image URL, preview image URLs, preview count and total image count.
- ⚡ Direct HTTP + JSON extraction — parses Imovirtual's
__NEXT_DATA__payload; no browser, no DOM walking, no GraphQL token. - 🛡️ Proxy support — Apify Proxy integration; residential + country=PT strongly recommended to avoid blocks.
Because Imovirtual belongs to the same OLX Group platform family as Otodom (Poland) and shares the same Next.js SSR data structure, this Actor reads the site's own embedded listing JSON directly — the fastest and most reliable way to get structured Portuguese property data without an official API.
🚀 Quick start (3 steps)
- Configure — choose a region or paste one or more advanced location slugs (e.g.
lisboa,porto,lisboa/cascais) and picksaleorrent. Empty input uses a bounded Lisbon search. - Run — click Start. The Actor paginates the search results and streams listings into your dataset.
- Get your data — open the Output tab and export to JSON, CSV, Excel or XML, or pull it via the Apify API.
📥 Input
Everything is optional. Empty input returns recent Lisbon apartments for sale; choose todo-o-pais explicitly for a nationwide search.
Example — apartments for sale in Lisbon & Porto
{"locationSlugs": ["lisboa", "porto"],"transaction": "sale","propertyType": "apartment","priceMin": 200000,"priceMax": 600000,"areaMin": 50,"roomsMin": "2","roomsMax": "3","sort": "latest","maxListings": 500,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Example — private-owner rentals nationwide (lead generation)
{"locationSlugs": ["todo-o-pais"],"transaction": "rent","propertyType": "apartment","ownerType": "PRIVATE","sort": "latest","maxListings": 1000}
Example — new-build developer offers in the Algarve
{"locationSlugs": ["faro"],"transaction": "sale","propertyType": "development","market": "PRIMARY","maxListings": 300}
| Field | Type | Description |
|---|---|---|
region | string | District dropdown; defaults to lisboa. Choose todo-o-pais explicitly for nationwide results. |
locationSlugs | array | Optional advanced Imovirtual URL paths. Each slug becomes its own task and overrides region. |
transaction | string | sale (comprar) or rent (arrendar). |
propertyType | string | apartment, house, plot, commercial, warehouse, garage, room, development or studio. |
priceMin / priceMax | integer | Price range in EUR. 0 = no bound. |
areaMin / areaMax | integer | Surface area range in m². 0 = no bound. |
roomsMin / roomsMax | string | T-typology range ("0"–"10"); empty string means no bound. |
market | string | ALL, PRIMARY (new build) or SECONDARY (resale). |
ownerType | string | ALL, PRIVATE or AGENCY. |
sort | string | latest, price_asc/desc, price_per_m_asc/desc, area_asc/desc. |
distanceRadius | string | Expand to nearby areas: "0", "5", "10", "15", "25", "50" or "75" km. |
limit | string | Listings per page: "24", "36", "48" or "72". |
maxListings | integer | Total cap across all location tasks. 0 = unlimited. |
maxPagesPerTask | integer | Pagination depth per location (Imovirtual caps around page 500 × 72). |
requestDelay | integer | Delay between page requests in ms (keep ≥ 600 ms). |
maxRetries | integer | Retries per request on HTTP errors (rotates proxy IP). |
proxyConfiguration | object | Residential Apify Proxy is the default. The pool is intentionally not country-pinned. |
Finding a location slug: browse imovirtual.com, apply a location filter, and copy the path between
/resultados/{txn}/{type}/and?from the URL. Usetodo-o-paisfor all of Portugal, a district slug likelisboa,porto,faro,bragaorsetubal, a council likelisboa/cascais, or a parish likelisboa/cascais/cascais-e-estoril. These slugs follow the Portuguese administrative hierarchy (distrito → concelho → freguesia).
📤 Output
One row per listing — 50+ fields, exportable to JSON, CSV, Excel or XML. Here is a trimmed sample record:
{"adId": "34215678","detailUrl": "https://www.imovirtual.com/pt/anuncio/apartamento-t2-lisboa-ID18abc","title": "Apartamento T2 renovado | Lisboa | Campo de Ourique","transactionType": "sale","propertyType": "apartment","estate": "FLAT","advertType": "AGENCY","isPrivate": false,"market": "SECONDARY","price": 485000,"priceCurrency": "EUR","pricePerSqm": 6013,"monthlyRent": null,"additionalMonthlyCosts": null,"areaSqm": 80.6,"rooms": 2,"floor": "SECOND","totalFloors": 4,"province": "Lisboa","county": "Lisboa","city": "Campo de Ourique","district": "Campo de Ourique","street": "Rua Ferreira Borges","postalCode": null,"mainImageUrl": "https://ireland.apollo.olxcdn.com/v1/files/…/image.jpeg","imageUrls": ["https://…/1.jpeg", "https://…/2.jpeg"],"imageCount": 12,"agencyName": "Prime Estates Lda","agencyId": "48210","agencyType": "AGENCY","isExclusive": true,"labels": ["AIR_CONDITIONING", "BALCONY", "PARKING_SPOT"],"dateCreated": "2026-07-02T09:14:00Z","searchLocation": "lisboa","scrapedAt": "2026-07-06T12:00:00.000Z"}
💡 Use cases
- Market research — build EUR/m² heatmaps by district, council and parish across Portugal.
- Investment screening — calculate rental yield (monthly rent vs. sale price) per area, from Lisboa and Porto to the Algarve.
- Lead generation — use
ownerType: PRIVATEto find direct-owner listings, or cluster agency listings byagencyId. - Price tracking — re-run on a schedule and diff against prior datasets using
dateCreatedandpushedUpAt. - Primary-market monitoring — use
propertyType: developmentormarket: PRIMARYto track new developer offers. - Cross-city comparison — pass multiple
locationSlugsin one run to benchmark prices across Portuguese cities.
👥 Who uses it
Real-estate agencies & proptech teams · property investors & flippers · mortgage and valuation analysts · market researchers & data journalists · lead-gen agencies building owner/agency contact lists · relocation and buyer's-agent services covering Portugal.
💰 Pricing
This Actor runs on a simple pay-per-result model — you pay for the listings you extract, with no separate Apify platform fees to calculate. Try it on the free tier first, then scale up. See the Pricing tab on this page for the current rate.
❓ Frequently Asked Questions
Is it legal to scrape Imovirtual.com? The Actor only collects publicly available property listing data. You are responsible for using the data in compliance with Imovirtual's terms and applicable laws such as the GDPR.
Does Imovirtual.com have a public API?
Imovirtual does not offer an open public data API for listings, so this Actor reads the site's own embedded __NEXT_DATA__ JSON instead — giving you structured Portuguese real estate data without any API key.
Do I need an API key or a login? No. There is no Imovirtual account, login or API key required — only an Apify account.
Do I need a proxy?
Imovirtual currently blocks datacenter egress, so the Actor defaults to an unpinned residential Apify Proxy pool. Avoid forcing country PT: account/pool availability can otherwise produce proxy 407 errors.
How much data can I get? You can scrape thousands of listings per run. Imovirtual paginates deep filter sets (roughly page 500 × 72), so narrow with price and area filters to reach the full inventory across multiple locations.
Does it return rental prices separately?
Yes. For rental listings, monthlyRent equals the headline monthly price; source-provided extra expenses are kept separately in additionalMonthlyCosts.
Is this an Imovirtual API alternative?
Yes. Imovirtual has no open public listings API, so this Actor works as an unofficial Imovirtual API alternative — it reads the site's embedded __NEXT_DATA__ JSON and returns structured Portuguese real estate data with no API key.
Can I scrape Imovirtual without an API or login?
Yes. No Imovirtual account, login or API key is needed — only an Apify account. The Actor pulls publicly available property listings over direct HTTP, so you can scrape Imovirtual without an API.
How do I export Imovirtual data to CSV or JSON?
Run the Actor, then export the resulting dataset as CSV, JSON, Excel or XML from the Apify console or via the Apify API. This makes it easy to export Imovirtual property data to CSV or JSON for spreadsheets and BI tools.
How do I scrape apartments for sale in Lisbon from Imovirtual?
Set locationSlugs to lisboa, transaction to sale and propertyType to apartment. The scraper returns Lisbon apartments with price, price/m², area, T-typology, address and agency details. Swap the slug to porto, faro or braga for other regions.
What is the T-typology (T0, T1, T2, T3) in Portuguese listings?
In Portugal, apartments and houses are classified by "T" number: T0 is a studio, T1 has one bedroom, T2 two bedrooms, and so on. This Actor parses the T-typology into the numeric rooms field, and you can filter with roomsMin / roomsMax.
Can I calculate rental yield from Imovirtual data?
Yes. Scrape sale and rent listings for the same area: sale rows carry price and price/m², while rental rows carry monthlyRent, so you can compute gross rental yield per council or parish.
🔗 More real estate scrapers by logiover
Building a cross-country property dataset? Pair Imovirtual with the rest of the European real-estate suite:
| Country | Actor |
|---|---|
| 🇵🇱 Poland | Otodom.pl Scraper |
| 🇪🇸 Spain | Habitaclia Scraper · Pisos.com Scraper |
| 🇨🇿 Czechia | Sreality.cz Scraper |
| 🇬🇷 Greece | Spitogatos Scraper · XE.gr Scraper |
| 🇮🇹 Italy | Casa.it Scraper · Subito Scraper |
| 🇩🇪 Germany | ImmobilienScout24 Scraper |
| 🇫🇷 France | Bien'ici Scraper |
| 🇷🇴 Romania | Storia.ro Scraper |
| 🇳🇱 Netherlands | Funda Scraper |
| 🇮🇪 Ireland | Daft.ie Scraper · MyHome.ie Scraper |
| 🇩🇰 Denmark | Boliga Scraper |
| 🇧🇬 Bulgaria | Imot.bg Scraper |
👉 Browse all logiover scrapers on Apify Store — 180+ actors across real estate, jobs, crypto, social media & B2B data.
⏰ Scheduling & integration
Schedule this Actor on Apify to track the Portuguese property market daily or weekly. Export results to JSON, CSV or Excel, sync to Google Sheets, or push to your database, BI tools and webhooks through the Apify API. Connect it to Make, n8n or Zapier to build automated real-estate pipelines.
⭐ Support & feedback
Found a bug or need an extra field? Open an issue on the Issues tab — response is usually fast. If this Actor saves you time, a ★★★★★ review on the Store page genuinely helps and is hugely appreciated. 🙏
⚖️ Legal
This Actor extracts only publicly available data and is intended for legitimate research, analytics and lead-generation use. You are responsible for complying with Imovirtual's terms of service, GDPR and any applicable local laws.
📝 Changelog
2026-08-01
- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.
- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.
- Declared 57 dataset fields from typed live cloud samples so the output contract is no longer an empty placeholder.
- Declared 57 nullable dataset fields from typed live cloud samples so the output contract is no longer an empty placeholder or brittle to sparse modes.
2026-08-01 — Health-check remediation
- August 2026 monthly health-check remediation is in progress; this build contains fixes verified from empty/default, Console-default, targeted live probes, or field-level semantic review.
- Corrected Portuguese room semantics, rent/additional-cost mapping, featured and market provenance, and made residential proxy routing and Lisbon targeting safe defaults.
- The final four-input matrix verdict will be appended after post-build cloud revalidation.
2026-07-06
- ✨ README overhaul: badge row, hero + green callout, ready-to-run example scenarios, trimmed output sample with a full field reference, and a cross-country real-estate suite grid.
2026-07-06 — Initial release
- Scrapes Imovirtual.com (Portugal, OLX Group) real estate listings via direct HTTP +
__NEXT_DATA__JSON extraction — no browser, no API key. - Filters by location slug (distrito/concelho/freguesia), transaction (buy/rent), property type, price (EUR), area, rooms (T-typology), market, owner type, distance radius and sort order.
- Returns price, price/m², full Portuguese address breakdown, agency data, image galleries and promotion flags per listing.
- Verified end-to-end on live data within the 5-minute quality window on the default input (Lisboa apartments, 1 page).