Sava provides a read-only API and MCP endpoint for products, chatbots and research tools that need structured access to residential new-build projects in Portugal.
The dataset includes project names, locations, coordinates, typologies, amenities such as gym, pool, parking, spa or sauna, price and area ranges, completion year, developer when known, image, floors, total units, estimated travel times to the beach, airport and international schools, 15-minute walking infrastructure, plus current unit availability, photos, official images and floorplan links where source data is available.
REST API
Use simple HTTP endpoints to search projects, open details by slug, list municipalities, fetch availability tables and open the OpenAPI specification.
https://sava.pt/api/v1/projects?municipality=Lisboa&typology=T2&amenity=gym,pool&has_parking=true&walk_15_category=supermarket,park&max_price=700000&limit=3&locale=en
{
"items": [
{
"name": "1965 Cidade Jardim",
"municipality": "Loures",
"typologies": ["T1", "T2", "T3"],
"price_min": 350000,
"image_count": 3,
"floorplan_count": 2,
"amenities": ["gym", "pool", "parking"],
"amenities_flags": {
"gym": true,
"pool": true,
"parking": true,
"spa_sauna": false
},
"walking_access_15_summary": {
"has_data": true,
"categories_count": 5,
"total_places": 32,
"category_counts": {
"supermarket": 4,
"park": 2,
"metro": 1
}
},
"available_units_summary": {
"has_available_units": true,
"available_units_count": 12,
"available_typologies": ["T2", "T3"],
"available_price_min": 369000,
"floorplan_count": 4
}
}
]
}
https://sava.pt/api/v1/projects/1965-cidade-jardim?locale=en
https://sava.pt/api/v1/projects/1965-cidade-jardim/available-units?locale=en
https://sava.pt/api/v1/market?query=Cascais&level=municipality&months=120&limit=5
MCP
Use JSON-RPC at /api/mcp/ to expose the same operations, including geographic market analytics, to assistants and tool-compatible agents.
curl -X POST https://sava.pt/api/mcp/ \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
https://sava.pt/api/v1/projects/1965-cidade-jardim/media?locale=en
https://sava.pt/api/v1/openapi.json
| Method | Path | Purpose | Parameters |
|---|---|---|---|
GET | /api/v1/projects | Search projects by filters, including region_group, amenities, 15-minute walking infrastructure and availability. The response includes coordinates, image, floors, total units, travel times, amenities, walking_access_15_summary and availability summary when current units are known. | region_group, municipality, locality, typology, property_type, amenity, has_gym, has_pool, has_parking, has_spa_sauna, walk_15_category, min_walk_15_categories, min_walk_15_places, has_walk_15_supermarket, has_walk_15_park, has_walk_15_metro, min_price, max_price, min_area, max_area, completion_year, max_beach_drive_minutes, max_airport_drive_minutes, max_school_drive_minutes, max_school_walk_minutes, min_total_units, has_available_units, available_typology, max_available_price, min_bedrooms, max_bedrooms, locale, limit |
GET | /api/v1/projects/{slug} | Get complete project details, including available_units and market_forecast: the project's current €/m² price, 12/24-month forecast prices and growth, calculation location and five-year CAGR basis. | slug, locale |
GET | /api/v1/projects/{slug}/media | Get project photos/images and floorplan links when source data is available. | slug, locale |
GET | /api/v1/projects/{slug}/available-units | Get current unit availability, prices, floor/bedroom data and floorplan links when source data is available. | slug, locale |
GET | /api/v1/locations | List available regions and municipalities, with slugs and /cities/ URLs. | limit |
GET | /api/v1/facets | List available filters, amenities, typologies, completion years and numeric ranges. | - |
GET | /api/v1/market | Get asking-price analytics in €/m² for country, regions, districts, municipalities and localities. Includes up to 10 years of monthly history, 12/24-month growth, five-year CAGR and 12/24-month price forecasts. | query, location, id, level, months, limit |
GET | /api/v1/openapi.json | Fetch the OpenAPI specification. | - |
POST | /api/mcp/ | Call MCP tools via JSON-RPC. | search_new_build_projects, get_new_build_project, get_new_build_project_available_units, get_new_build_project_media, list_new_build_locations, get_new_build_facets, get_market_price_analytics |