Property Search
/api/imovirtual/search
Search Portuguese property listings by transaction, estate, location, price, area and page
Scrappa's Imovirtual API returns structured JSON from Imovirtual, a Portuguese real estate portal. Search apartments, houses, land, commercial premises, offices, warehouses and garages for sale or rent with price, area and location filters and pagination, open any listing for its full detail, resolve place names to location slugs, list the transaction and estate categories, and read an agency profile with its current listings. Scrappa is an independent service and is not affiliated with or endorsed by Imovirtual or OLX Group.
Try it now
Use the first endpoint in this API family with a Scrappa API key. Every account includes 500 free monthly credits, so you can validate the response shape before buying credits.
curl -X GET "https://scrappa.co/api/imovirtual/search?transaction=comprar&estate=apartamento&location=lisboa/lisboa&page=1&limit=24" \
-H "Accept: application/json" \
-H "X-API-KEY: YOUR_API_KEY"
{
"success": true,
"data": {
"items": [
{
"id": 19310188,
"url": "https://www.imovirtual.com/pt/anuncio/apartamento-t2-com-logradouro-ID1j1sE",
"title": "Apartamento T2 com logradouro",
"estate": "FLAT",
"transaction": "SELL",
"price": { "value": 359900, "currency": "EUR" },
"pricePerSquareMeter": { "value": 6314.04, "currency": "EUR" },
"areaInSquareMeters": 57,
"roomsNumber": 3,
"floorNumber": "ground_floor",
"isPrivateOwner": false,
"publishedAt": "2026-10-15T11:39:16Z"
}
],
"pagination": { "page": 1, "pageSize": 24, "total": 7859, "totalPages": 328, "hasMore": true },
"stats": [ { "type": "PRICE", "min": 13000, "max": 19500000, "mean": 925751.08 } ]
},
"meta": { "endpoint_family": "search", "billable": true }
}
Structured data for real applications. Here are some ideas.
Poll the same transaction, estate and location filter on a schedule and diff id sets to detect newly published listings.
Combine transaction, estate, price and area filters to compare asking prices per square meter across Portuguese districts and councils.
Resolve an agency profile and its current listings to build a per-agency inventory feed with prices and locations.
Resolve place names to canonical location slugs and read the published estate categories to build filter menus without scraping pages.
Everything you need in one API.
/api/imovirtual/search
Search Portuguese property listings by transaction, estate, location, price, area and page
/api/imovirtual/listing
Get the full detail of one listing with description, characteristics, images and agency
/api/imovirtual/locations
Resolve a place name into the location slugs used by search
/api/imovirtual/categories
List the published transaction and estate category slugs
/api/imovirtual/agency
Get an agency profile with its statistics
/api/imovirtual/agency-listings
Get the current listings shown on an agency page
See how Scrappa compares to the official API.
| Feature | Scrappa | ScrapingBee / ScraperAPI |
|---|---|---|
| Imovirtual property data as JSON | Build your own parser | |
| Location slug resolution | Parse it yourself | |
| Agency listings | ||
| Price per 1k requests | From $0.20 | Varies by credits per request |
| Unified API key | Yes (80+ APIs) | Scraping only |
| Free tier | 500 credits/month | Trial credits |
No. Scrappa is an independent service and is not affiliated with or endorsed by Imovirtual or OLX Group. The Imovirtual API returns structured JSON from public listing pages through a Scrappa API key.
Call the locations endpoint with a place name. Each match returns a canonical id such as lisboa/lisboa, which you pass as the location parameter. todo-o-pais searches the whole country.
Use the 1-based page parameter with limit 24, 36, 48 or 72. The response returns currentPage, totalPages and hasMore. A valid empty result is a successful response and is billed as success.
No. An unknown listing slug or agency answers a non-billable 404 with error code NOT_FOUND. Only successful 2xx responses are billed.