# Yaencontre Property Search Scraper (`stealth_mode/yaencontre-property-search-scraper`) Actor

Scrape property listings from Yaencontre.com including prices, descriptions, images, and 20+ property details. Perfect for real estate aggregators, market analysts, and property investors seeking structured Spanish property data.

- **URL**: https://apify.com/stealth\_mode/yaencontre-property-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Yaencontre Property Scraper: Extract Real Estate Listings Instantly

***

### What Is Yaencontre.com?

Yaencontre.com is one of Spain's largest property portals, hosting thousands of residential and commercial listings across the country. From apartments in Madrid to villas on the Canary Islands, the platform aggregates properties from multiple owners and agencies. Manually collecting property data from search results pages is tedious and error-prone — the **Yaencontre Property Scraper** automates this process, delivering clean, structured property records ready for analysis, aggregation, or integration.

***

### Overview

The **Yaencontre Property Scraper** extracts detailed property listings from Yaencontre search results, capturing everything from price and location to images and property characteristics. It is ideal for:

- **Real estate aggregators** building multi-source property databases
- **Market analysts** tracking Spanish property trends and pricing patterns
- **Property investors** monitoring competitive listings and valuations
- **Developers** integrating property data into portals or mobile apps
- **Researchers** studying real estate markets in Spain

Key features include flexible URL targeting, configurable item limits, graceful error handling, and rich output with media references.

***

### Input Format

The scraper accepts a JSON configuration with three parameters:

```json
{
    "urls": [
        "https://www.yaencontre.com/venta/pisos/isla-tenerife/o-precio-asc"
    ],
    "max_items_per_url": 200,
    "ignore_url_failures": true
}
```

| Field | Type | Description |
|---|---|---|
| `urls` | Array | List of Yaencontre property search page URLs to scrape. Paste direct links to filtered search results (e.g., by city, price range, property type). |
| `max_items_per_url` | Integer | Maximum number of property listings to collect per URL (e.g., `200`). Higher values take longer but capture more results. |
| `ignore_url_failures` | Boolean | If `true`, the scraper continues running even if some URLs fail. If `false`, a failed URL stops the entire run. |

**Example URLs:**

- `https://www.yaenconture.com/venta/pisos/madrid` — Buy apartments in Madrid
- `https://www.yaenconture.com/alquiler/casas/barcelona/o-precio-asc` — Rent houses in Barcelona (sorted by price)

***

### Output Format

**Example Output Record:**

```json
{
  "id": "jht::real-estate::44439-112543637",
  "reference": "44439-112543637",
  "owner_reference": "CH15931",
  "title": "Dúplex en calle Morro Afonso Alto en Tijoco Bajo, Adeje",
  "description": "Magnífica vivienda adosada en esquina en Tijoco, a solo 5 minutos del centro de Adeje y 10 minutos de la playa. Vivienda a estrenar, ideal para familias o como inversión en el sur de Tenerife.\n\nCuenta con 180 m² distribuidos en 3 plantas:\n\nPlanta baja: amplio ...",
  "operation": "BUY",
  "family": "FLAT",
  "owner": {
    "type": "REAL_ESTATE_AGENCY",
    "commercial_id": 44439,
    "name": "COSTA TENERIFE INMOBILIARIA",
    "virtual_phone_number": "+34822260493",
    "phone_available": true,
    "logo": {
      "slug": "logos/44439.gif",
      "ai_generated": false
    },
    "url": "/inmobiliarias/costa-tenerife-inmobiliaria-44439",
    "site_enabled": true
  },
  "price": 360000,
  "square_meter_price": 1956.52,
  "area": 184,
  "rooms": 3,
  "bathrooms": 3,
  "address": {
    "qualified_name": "Tijoco Bajo, Adeje, Santa Cruz de Tenerife (provincia)",
    "geo_location": {
      "lat": 28.1558636,
      "lon": -16.7612606
    },
    "address_visibility": "APPROXIMATE"
  },
  "images": [
    {
      "slug": "44439/44439-57525439-1518667071.jpg",
      "caption": "terraza",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667072.jpg",
      "caption": "terraza",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667073.jpg",
      "caption": "pasillo",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667074.jpg",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667075.jpg",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667076.jpg",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667077.jpg",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667078.jpg",
      "caption": "detalles",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667079.jpg",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667080.jpg",
      "caption": "terraza",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667081.jpg",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667082.jpg",
      "caption": "baño",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667083.jpg",
      "caption": "cocina",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667084.jpg",
      "caption": "vistas",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667085.jpg",
      "caption": "baño",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667086.jpg",
      "caption": "terraza",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667087.jpg",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667088.jpg",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667089.jpg",
      "caption": "terraza",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667090.jpg",
      "caption": "vistas",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667091.jpg",
      "caption": "detalles",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667092.jpg",
      "caption": "garaje",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667093.jpg",
      "caption": "fachada",
      "ai_generated": false
    },
    {
      "slug": "44439/44439-57525439-1518667094.jpg",
      "caption": "vistas",
      "ai_generated": false
    }
  ],
  "videos": [
    {
      "sd": "https://st3v.idealista.com/28/04/e1/1473498251.mp4",
      "hd": "https://st3v.idealista.com/28/04/e1/hd_1473498251.mp4",
      "thumbnail": "https://st3v.idealista.com/28/04/e1/d_0_1473498251.jpg"
    }
  ],
  "renders": [],
  "floorplans": [
    {
      "slug": "44439/44439-57525439-1518667095.jpg",
      "ai_generated": false
    }
  ],
  "tour360": [],
  "tour3d": [],
  "url": "/venta/piso/inmueble-44439-112543637",
  "is_new_construction": false,
  "labels": [],
  "characteristics": [
    "Planta 1ª",
    "Buen estado",
    "Armarios empotrados",
    "Exterior",
    "Terraza"
  ],
  "from_url": "https://www.yaencontre.com/venta/pisos/isla-tenerife"
}
```

Each scraped property returns a detailed record with 20+ fields:

#### Property Identifiers

| Field | Meaning |
|---|---|
| `ID` | Unique Yaencontre identifier for the property |
| `Reference` | Public property reference code |
| `Owner Reference` | Seller/landlord's internal reference |
| `URL` | Direct link to the property listing on Yaencontre |

#### Listing Details

| Field | Meaning |
|---|---|
| `Title` | Property title as displayed on the listing |
| `Description` | Full text description of the property, amenities, and condition |
| `Operation` | Listing type (e.g., "venta" = sale, "alquiler" = rent) |
| `Family` | Property category (e.g., "pisos" = apartments, "casas" = houses) |

#### Pricing & Size

| Field | Meaning |
|---|---|
| `Price` | Listed price in EUR or local currency |
| `Square Meter Price` | Price per m² (calculated for comparison) |
| `Area` | Total usable area in square meters |

#### Physical Characteristics

| Field | Meaning |
|---|---|
| `Rooms` | Number of bedrooms |
| `Bathrooms` | Number of bathrooms |
| `Address` | Full property street address and location |
| `Characteristics` | Additional features (e.g., pool, parking, garden, balcony) |
| `Labels` | Tags applied by the seller (e.g., "newly renovated", "pet-friendly") |
| `Is New Construction` | Boolean flag: `true` if newly built, `false` if resale |

#### Owner Information

| Field | Meaning |
|---|---|
| `Owner` | Name and contact info of the seller or agency |

#### Media Assets

| Field | Meaning |
|---|---|
| `Images` | Array of URLs to property photos |
| `Videos` | URLs to video tours or walkthroughs |
| `Renders` | URLs to architectural renderings (if available for new construction) |
| `Floorplans` | URLs to floor plan images |
| `360 Tour` | URL to 360-degree interactive tour (if available) |
| `3D Tour` | URL to 3D virtual tour (if available) |

***

### How to Use

#### Step 1: Prepare Your URLs

Navigate to Yaencontre.com and apply filters (city, price range, property type, etc.). Copy the filtered search page URL from your browser's address bar.

#### Step 2: Configure the Scraper

Paste your URL(s) into the `urls` array. Set `max_items_per_url` based on your needs:

- **20–50:** Quick sample for testing
- **100–200:** Comprehensive regional dataset

#### Step 3: Run the Scraper

Set `ignore_url_failures: true` for safety (especially for bulk runs). Launch the actor and monitor progress.

#### Step 4: Export & Use

Download results as JSON, CSV, or Excel. Import into your database, BI tool, or aggregator platform.

**Best Practices:**

- Use specific search URLs (filtered by city/price) for faster, more relevant results
- Start with `max_items_per_url: 50` to test, then increase for full runs
- Run during off-peak hours to minimize server load
- Re-run periodically to capture new listings and price changes

***

### Use Cases & Business Value

- **Price monitoring:** Track property valuations and market trends across regions
- **Competitive intelligence:** Monitor competitor listings, pricing strategies, and market share
- **Portfolio aggregation:** Feed Yaenconture data into your own multi-source property portal
- **Investment analysis:** Identify undervalued properties or hot markets programmatically
- **Lead generation:** Extract owner contact info for outreach campaigns

The **Yaencontre Property Scraper** transforms time-consuming manual browsing into automated data collection, enabling faster decision-making and market insights.

***

### Conclusion

The **Yaencontre Property Scraper** is your gateway to structured Spanish real estate data. With 20+ fields per property and flexible configuration, it accelerates market research, powers aggregator platforms, and supports smarter investment decisions. Start scraping today and unlock the value hidden in Spain's property listings.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the property list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.yaencontre.com/venta/pisos/isla-tenerife/o-precio-asc"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.yaencontre.com/venta/pisos/isla-tenerife/o-precio-asc"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/yaencontre-property-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://www.yaencontre.com/venta/pisos/isla-tenerife/o-precio-asc"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/yaencontre-property-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.yaencontre.com/venta/pisos/isla-tenerife/o-precio-asc"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/yaencontre-property-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,stealth_mode/yaencontre-property-search-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/K10Hv5CvMzMxjlGL3/builds/hJVZ7W3QYaH2x2mpb/openapi.json
