# Idealista (Italy) — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and retrieve property listings from Idealista.it, Italy's leading real estate platform. Access listings for sale, rent, and new construction across Italian cities, with full property details and photos.

**Category:** Real Estate | **Website:** [idealista.it/](https://idealista.it/) | **Docs:** [parse.bot/marketplace/608ed768-d43b-4d76-ba27-85f3b349bde4/idealista-it-api](https://parse.bot/marketplace/608ed768-d43b-4d76-ba27-85f3b349bde4/idealista-it-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-idealista-it-api-608ed768/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_property_details

Get full details of a property by its numeric ID, including title, price, full description, features list, location text, and photo URLs. The property_id comes from listing results returned by the search endpoints.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `property_id` | string | Yes | Numeric property ID from listing results (e.g., '31167672'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idealista-it-api-608ed768/get_property_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"property_id":"<string>"}'
```

### get_property_photos

Retrieve all photo URLs for a specific property listing. Returns an array of image URLs extracted from the property page. The property_id comes from listing results returned by the search endpoints.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `property_id` | string | Yes | Numeric property ID from listing results (e.g., '31167672'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idealista-it-api-608ed768/get_property_photos \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"property_id":"<string>"}'
```

### search_by_location_slug

Resolve a location name to its URL slug and location ID using Idealista's autocomplete. Returns matching locations with slugs usable as the location parameter in search endpoints. Each suggestion includes a category (Comune, Provincia, Area, Zona, Quartiere) and a listing count.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | City or area name to search for (e.g., 'Milano', 'Roma', 'Cortina'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idealista-it-api-608ed768/search_by_location_slug \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"<string>"}'
```

### search_mountain_properties

Search for properties in mountain/alpine areas. Uses the standard sale listings for a mountain location slug. Results include the same listing format as other search endpoints.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `location` | string | Yes | Mountain area location slug in format 'city-province' (e.g., 'cortina-d-ampezzo-belluno', 'courmayeur-aosta'). Use search_by_location_slug to find valid slugs. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idealista-it-api-608ed768/search_mountain_properties \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"location":"<string>"}'
```

### search_new_construction

Search for new construction (nuova costruzione) properties for sale in a given location. Returns listings filtered to newly built properties only.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `location` | string | Yes | Location slug in format 'city-province' (e.g., 'milano-milano', 'roma-roma'). Use search_by_location_slug to find valid slugs. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idealista-it-api-608ed768/search_new_construction \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"location":"<string>"}'
```

### search_properties_for_rent

Search for residential properties for rent on Idealista.it. Returns paginated listings with monthly rent prices, size, room count, and description snippets. Use search_by_location_slug to resolve a city name to the required location slug.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `location` | string | Yes | Location slug in format 'city-province' (e.g., 'milano-milano', 'roma-roma'). Use search_by_location_slug to find valid slugs. |
| `max_price` | integer | No | Maximum monthly rent filter in Euros. |
| `page` | integer | No | Page number for pagination. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idealista-it-api-608ed768/search_properties_for_rent \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"location":"<string>","max_price":"<integer>","page":"<integer>"}'
```

### search_properties_for_sale

Search for residential properties for sale on Idealista.it. Returns paginated listings with price, size, room count, and description snippets. Pagination is by page number; each page returns up to 30 listings. Use search_by_location_slug to resolve a city name to the required location slug.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `location` | string | Yes | Location slug in format 'city-province' (e.g., 'milano-milano', 'roma-roma', 'napoli-napoli'). Use search_by_location_slug to find valid slugs. |
| `max_price` | integer | No | Maximum price filter in Euros. |
| `min_price` | integer | No | Minimum price filter in Euros. |
| `page` | integer | No | Page number for pagination. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-idealista-it-api-608ed768/search_properties_for_sale \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"location":"<string>","max_price":"<integer>","min_price":"<integer>","page":"<integer>"}'
```
