imovirtual.com APIimovirtual.com ↗
Access Portugal property listings, full listing details, and new housing developments from Imovirtual via 3 structured API endpoints with price, area, and location filters.
curl -X GET 'https://api.parse.bot/scraper/9dbe3d15-ad61-44de-a1b9-5d9c8fd76c88/search_listings?page=1&location=lisboa%2Flisboa&transaction=comprar&property_type=apartamento' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for real estate listings on Imovirtual with various filters. Returns paginated results including listing summaries with price, area, location, and images.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sorting order (e.g., 'created_at_first:desc' for newest first). |
| area_max | integer | Maximum area in square meters. |
| area_min | integer | Minimum area in square meters. |
| location | string | Location path (e.g., 'lisboa/lisboa', 'porto/porto', 'todo-o-pais'). |
| typology | string | Comma-separated room typologies (e.g., 'T0,T1,T2'). |
| price_max | integer | Maximum price in euros. |
| price_min | integer | Minimum price in euros. |
| transaction | string | Transaction type: 'comprar' (buy) or 'arrendar' (rent). |
| property_type | string | Property type: 'apartamento', 'moradia', 'terreno', 'imovel-comercial', 'garagem', 'quarto'. |
{
"type": "object",
"fields": {
"items": "array of listing summary objects with id, title, slug, price, area, location, images",
"page_count": "integer total number of pages",
"total_count": "integer total number of matching listings",
"current_page": "integer current page number"
},
"sample": {
"data": {
"items": [
{
"id": 19118483,
"slug": "apartamento-t3-lumiar-excelente-localizacao-ID1idAD",
"title": "Apartamento T3 lumiar, excelente localização",
"estate": "FLAT",
"totalPrice": {
"value": 727000,
"currency": "EUR"
},
"roomsNumber": "FOUR",
"transaction": "SELL",
"areaInSquareMeters": 99.75
}
],
"page_count": 213,
"total_count": 7636,
"current_page": 1
},
"status": "success"
}
}About the imovirtual.com API
The Imovirtual API provides access to Portugal's real estate market through 3 endpoints covering property search, listing detail, and new development projects. The search_listings endpoint returns paginated summaries with price, area, location, and images, while get_listing_detail delivers full property records including coordinates, description, characteristics, and owner information.
Search and Filter Portuguese Property Listings
The search_listings endpoint accepts filters for price_min, price_max, area_min, area_max, location, and typology (room count in Portuguese notation: T0, T1, T2, etc.). The location parameter uses a path format such as lisboa/lisboa or todo-o-pais for nationwide results. Results are paginated and each response includes items (listing summaries), total_count, page_count, and current_page. You can sort by recency using sort: 'created_at_first:desc'.
Full Listing Detail
get_listing_detail takes a slug returned from search results (e.g., apartamento-t2-lisboa-ID1abCD) and returns the full ad object. This includes the property description, all images, geographic coordinates, detailed characteristics, and owner contact information — data not available in the search summary response.
New Housing Developments
search_developments covers empreendimentos — new-build investment projects listed on Imovirtual. Each item exposes investmentState and investmentUnitsNumber alongside the standard title, slug, and location fields. The endpoint supports filtering by location and pagination, but does not offer the price or area filters available in search_listings.
- Build a Portugal property price tracker segmented by city using
locationandprice_maxfilters. - Aggregate T2 and T3 apartment listings in Porto filtered by
typologyandarea_minfor a market analysis dashboard. - Monitor new real estate developments in Lisbon using
search_developmentswithlocation: 'lisboa/lisboa'. - Enrich a CRM with full property descriptions and coordinates by calling
get_listing_detailfor each slug. - Track listing volume over time using
total_countfromsearch_listingsacross multiple location paths. - Compare asking prices for similar typologies across different Portuguese regions using paginated search results.
- Identify new listings by sorting with
created_at_first:descand checking for unseen IDs since last poll.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Imovirtual offer an official developer API?+
What does `get_listing_detail` return that `search_listings` does not?+
search_listings returns summary fields: id, title, slug, price, area, location, and images. get_listing_detail adds the full property description, detailed characteristics, geographic coordinates, and owner information — none of which appear in the search summary.Does `search_developments` support price or area filtering?+
search_developments currently supports only location and page parameters. It returns investmentState and investmentUnitsNumber per development but does not expose price or area filters. The search_listings endpoint covers those filters for standard listings. You can fork this API on Parse and revise it to add price and area filtering to the developments endpoint.Is rental listing data available, or only sales?+
search_listings endpoint does not expose a transaction-type filter to distinguish sales from rentals. You can fork this API on Parse and revise it to add a buy/rent filter parameter.How does pagination work across the search endpoints?+
search_listings and search_developments return current_page, page_count, and total_count in each response. Pass the page integer parameter to step through results. total_count reflects the number of matching listings for the active filter set.