# Tecnocasa Map Points API Documentation

<p><strong>Tecnocasa Map Points API</strong> returns the id, price and coordinates of every result of a search in one call, ready for a map. It takes the same filters as the search route, but has no sort, page or limit.</p><p>Notes: Use the id with the search or listing routes for details. Every point satisfies the price filters you set. Prices, areas and counts are numbers and the original text is kept in raw or label fields. A hidden price (for example Informazioni in agenzia) is <code>null</code>, never 0. A valid empty result is a successful, billable response; failed requests are never billed.</p>

- **Documentation:** [https://scrappa.co/docs/tecnocasa-api/tecnocasa_search_map](https://scrappa.co/docs/tecnocasa-api/tecnocasa_search_map)
- **API group:** Tecnocasa API
- **Endpoint:** `GET https://scrappa.co/api/tecnocasa/v1/search/map`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `country` | string | No | it (default) for Tecnocasa Italy or es for Tecnocasa Spain. Example: es. |
| `listing_type` | string | No | sale (default) or rent. Example: rent. |
| `city_id` | integer | Yes | City id from the locations route (cities[].city_id). Example: 13800324507779. |
| `province` | string | Yes | Province code from the locations route (cities[].province). Example: MI. |
| `region` | string | No | Optional region code. The province decides it when omitted. Example: lom. |
| `min_price` | integer | No | Minimum price in EUR. For rent this is the monthly rent. Example: 200000. |
| `max_price` | integer | No | Maximum price in EUR. Example: 300000. |
| `min_surface` | integer | No | Minimum area in m2. Example: 80. |
| `max_surface` | integer | No | Maximum area in m2. Example: 120. |
| `min_rooms` | integer | No | Minimum number of rooms (Spain: bedrooms). Example: 3. |
| `max_rooms` | integer | No | Maximum number of rooms. Example: 4. |
| `bathrooms` | integer | No | Exact number of bathrooms. There is no minimum filter because the source ignores it. Example: 2. |
| `property_type` | string | No | app (apartment), vil (villa), cas (house), box (garage or parking space) or ter (land). Example: app. |
| `district_ids` | string | No | One or more district ids from the locations route or the geo route. Repeat district_ids[] or comma-separate. Example: 10068,10072. |
| `agency_id` | string | No | Only ads of this agency. Example: mice0. |

## Example response

```json
{
    "data": {
        "points": [],
        "search_metadata": {
            "country": "it",
            "filtered_out": 5,
            "listing_type": "sale",
            "total_results": 0
        },
        "search_parameters": {
            "region": "lom",
            "city_id": 13800324507779,
            "country": "it",
            "province": "MI",
            "max_price": 800000,
            "min_price": 200000,
            "listing_type": "sale"
        }
    },
    "meta": {
        "billable": true,
        "endpoint_family": "search_map"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A required parameter or a value is invalid. This response is not billable. |
| 404 | Not Found | The requested page does not exist. This response is not billable. |
| 503 | Upstream Unavailable | Tecnocasa could not be reached. This response is not billable and is retryable. |
| 503 | Unexpected Upstream Data | Tecnocasa returned data in an unexpected shape. This response is not billable and is retryable. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
