immobiliare.it APIimmobiliare.it ↗
Search Italian property listings, agencies, and price trends via the immobiliare.it API. 6 endpoints covering sales, rentals, market stats, and agency data.
curl -X GET 'https://api.parse.bot/scraper/532d5d50-cc62-4c98-9003-0849823141d7/get_location_autocomplete?query=Roma' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for locations (cities, regions, zones) by query to get location keys for use in other endpoints. Returns an array of matching locations with geographic hierarchy.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Location search query (e.g., 'Roma', 'Milano', 'Firenze') |
{
"type": "object",
"fields": {
"data": "array of location objects with id, type, label, keyurl, parents, and center coordinates",
"status": "string, always 'success'"
},
"sample": {
"data": [
{
"id": "6737",
"type": 2,
"label": "Roma",
"center": {
"lat": 41.8955,
"lng": 12.4823
},
"keyurl": "Roma",
"parents": [
{
"id": "RM",
"type": 1,
"label": "Roma",
"keyurl": "Roma",
"country": null,
"children": null
},
{
"id": "laz",
"type": 0,
"label": "Lazio",
"keyurl": "Lazio",
"country": "IT",
"children": null
}
],
"admin_centre": true
}
],
"status": "success"
}
}About the immobiliare.it API
The immobiliare.it API provides access to Italian real estate data across 6 endpoints, covering property listings for sale and rent, agency directories, and city-level price trend statistics. The search_properties endpoint accepts location keys and contract type filters to return paginated listings, while get_price_trends delivers average prices per square meter, historical charts, and zone-level breakdowns for any Italian city.
Property Search and Listing Detail
The search_properties endpoint accepts a location_key (obtained from get_location_autocomplete), a contract value of either vendita (sale) or affitto (rent), and a category such as case, uffici, or negozi. Results include a paginated results array alongside total_count, location, and contract metadata. To retrieve a specific listing, pass the numeric listing_id to get_property_detail, which returns the full realEstate object — including description, photos, energy class, geographic coordinates, and advertiser details — along with seo and trovakasa fields.
Location Resolution
Before calling most endpoints you need a location key. get_location_autocomplete takes a free-text query (e.g., 'Roma' or 'Firenze') and returns an array of matching location objects, each with an id, type, label, keyurl, parents for geographic hierarchy, and center coordinates. The keyurl value from this response is what search_properties, search_agencies, and related endpoints expect as their location_key.
Agency Directory
search_agencies accepts a location_key and returns paginated agency listings with total_count and location context. For a specific agency, get_agency_detail requires a numeric agency_id and an optional URL slug; its response includes the agency's name, agents, phones, address, location, description, and associated realEstateAds.
Price Trends and Market Statistics
get_price_trends takes a city_key and a region_key (e.g., 'Roma' and 'Lazio') and returns buildingPricesStats for average prices per square meter, buildingPricesMap for zone-level breakdowns, priceCharts for time-series data, realEstateCounters for listing volume, plus seoMeta, pageData, and breadcrumbs. This makes it the primary endpoint for market analysis and valuation context.
- Aggregate Italian property listings by city and contract type for a real estate portal or comparison tool.
- Track average price-per-square-meter trends over time for specific Italian cities using
priceChartsfromget_price_trends. - Build a neighborhood analysis tool by combining zone-level
buildingPricesMapdata with listing counts fromrealEstateCounters. - Populate an agency directory with contact details, opening hours, and agent lists sourced from
get_agency_detail. - Resolve Italian city and region names to structured location keys for use in downstream property or agency queries.
- Monitor listing volumes by category (houses, offices, shops) across multiple cities to identify inventory shifts.
- Enrich individual property records with energy class, photos, and advertiser information via
get_property_detail.
| 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 immobiliare.it offer an official developer API?+
What does `get_price_trends` return and how granular is the data?+
buildingPricesStats (average price per square meter), buildingPricesMap (zone-level breakdowns within the city), priceCharts (historical time-series data), and realEstateCounters (listing counts). Granularity is at the city and intra-city zone level; inputs are city_key and region_key, so data is currently available per city rather than per postal code or individual street.Can I filter property searches by price range, number of rooms, or surface area?+
search_properties currently accepts location_key, contract, category, and page as filters. Price range, room count, and surface area filters are not exposed. You can fork this API on Parse and revise it to add those filter parameters.Does the API cover commercial or industrial properties beyond shops and offices?+
category parameter in search_properties supports case (houses), uffici (offices), and negozi (shops). Industrial properties, warehouses, and land listings are not currently included as distinct categories. You can fork the API on Parse and revise it to add support for additional property categories that appear on the site.How does pagination work across the search endpoints?+
search_properties and search_agencies accept an integer page parameter. Responses include a total_count field so you can calculate the number of pages. There is no cursor-based pagination; iterate by incrementing page until the results array is exhausted relative to total_count.