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
MCP
Use JSON-RPC at /api/mcp/ to expose the same operations 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 when known. | 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/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 |