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
3
Total users
1
Monthly active users
2 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 — paste one or more location slugs (e.g.
lisboa,porto,lisboa/cascais) and picksaleorrent. Add price/area/room filters if you want. - 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
Give the Actor at least one locationSlugs value. Everything else is optional.
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"], "apifyProxyCountry": "PT" }}
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 |
|---|---|---|
locationSlugs | array | Imovirtual URL location paths. Each slug becomes its own task (e.g. lisboa, porto, lisboa/cascais, todo-o-pais). Required. |
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 | integer | Room-count / T-typology range (T0–T10). 0 = 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 | integer | Expand to nearby areas: 0, 5, 10, 15, 25, 50 or 75 km. |
limit | integer | 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 | Apify Proxy settings. Residential + country=PT strongly recommended. |
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,"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 deploys mild bot protection. Datacenter proxies often get blocked, so residential Apify Proxy with country=PT is strongly recommended; the Actor runs cleanly with it at a ≥600 ms request delay.
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, the recurring monthly rent is returned in the monthlyRent field, alongside the headline price.
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-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).