# Finca Raiz Scraper (`knowten/finca-raiz-scraper`) Actor

Scraper de FincaRaiz Colombia ultra rápido. Extrae miles de propiedades (casas, apartamentos) con filtros avanzados: precio, ciudad, estratos, parqueaderos. Obtén fichas técnicas, coordenadas, áreas, descripciones y datos de contacto del vendedor listos para analizar. Rápido, preciso y económico.

- **URL**: https://apify.com/knowten/finca-raiz-scraper.md
- **Developed by:** [Knowten](https://apify.com/knowten) (community)
- **Categories:** Real estate, Automation
- **Stats:** 34 total users, 6 monthly users, 100.0% runs succeeded, 14 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.00 / 1,000 resultados

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## 🏠 FincaRaiz Scraper Colombia

Extractor automático de propiedades inmobiliarias de FincaRaiz.com.co

Este Actor te permite extraer información ultra-detallada de propiedades inmobiliarias desde FincaRaiz, el portal inmobiliario líder y más grande en Colombia. Obtén datos estructurados de casas, apartamentos, oficinas, lotes y más, filtrados exactamente por tus parámetros comerciales (ubicación, precio, tipo de propiedad, estratos, parqueaderos y hasta palabras clave).

### 🎯 ¿Para qué sirve?

- **Análisis de mercado inmobiliario**: Obtén datos masivos para estudiar tendencias de precios y demanda.
- **Investigación de inversiones**: Encuentra oportunidades de inversión basadas en criterios específicos y muy anidados (ej. estratos, precio por metro cuadrado).
- **Comparación de precios**: Analiza rangos de precios por zona, estado o antigüedad de la propiedad.
- **Automatización de prospección**: Evita buscar manualmente propiedad por propiedad; alimenta tu CRM con listings reales al instante.
- **Datos para aplicaciones**: Alimenta tus integraciones con datos inmobiliarios ultra actualizados, extrayendo incluso las comidades individuales (ficha técnica).

### 🚀 Cómo usar este Actor

#### 1. Configuración básica

Simplemente selecciona tus criterios de búsqueda en el Input Schema de Apify y ejecuta el Actor. ¡No necesitas conocimientos técnicos! Puedes usar las listas desplegables para elegir casi todas tus opciones.

#### 2. Parámetros de entrada

Configura los siguientes campos según tu búsqueda:

##### Campos de Búsqueda Principales

| Campo | Descripción | Formato / Tipo | Requerido |
| --- | --- | --- | --- |
| **Operación** | Venta, Arriendo, Proyectos | Lista desplegable | ✅ Sí (Por defecto: arriendo) |
| **Tipo de Propiedad** | Casa, Apartamento, Lote, Bodega, etc. | Lista desplegable | ⚪ No (Por defecto: Todos) |
| **Ciudad** | Ciudad donde buscar propiedades | Texto (ej: "cali", "tulua") | ⚪ No |
| **Palabra Clave** | Buscar términos exactos en la descripción | Texto (ej: "gato", "piscina") | ⚪ No |

##### Filtros Avanzados (Opcionales)

| Campo | Descripción | Formato / Tipo |
| --- | --- | --- |
| **Precios** | Precio mínimo y máximo (en COP) | Número entero (ej: 200000000) |
| **Habitaciones y Baños** | Puedes usar el selector de rango ("1+", "2+", etc.) o ingresar el **Número Exacto**. Si ingresas el exacto, ignorará el rango. | Desplegable o Número |
| **Estado** | Nuevos, Sobre planos, En Construcción, Usados | Lista desplegable |
| **Parqueaderos** | 1, 2, 3, o 4+ | Lista desplegable |
| **Antigüedad** | Menor a 1 año, 1 a 8 años, 9 a 15 años, etc. | Lista desplegable |
| **Fecha de Publicación**| Indiferente, Hoy, Última Semana, Últimos 30 días, etc. | Lista desplegable |
| **Estratos** | Selección múltiple de estratos (1 al 6, o Campestre) | Array (Selector múltiple) |

##### Scraping de Fichas Técnicas

- **Extraer Detalles (Checkbox)**: Si lo activas (recomendado), el bot entrará individualmente a cada propiedad y extraerá toda su ficha técnica (teléfonos, descripciones completas, datos de la inmobiliaria, etc.). Si lo desactivas, solo raspará la información básica de la cuadrícula de resultados (¡Súper veloz!).

***

### 📝 Ejemplos de Uso en JSON

**Ejemplo 1: Casas usadas en Cali con filtros específicos**

```json
{
  "operation": "venta",
  "propertyType": "casas",
  "city": "cali",
  "minPrice": 200000000,
  "maxPrice": 800000000,
  "exactRooms": 3,
  "bathrooms": "2-o-mas-banos",
  "state": "usados",
  "garages": "2-parqueaderos",
  "stratum": ["4", "5", "6"],
  "scrapeDetails": true,
  "maxItems": 100
}
```

**Ejemplo 2: Apartamentos en arriendo por palabra clave ("conjunto cerrado")**

```json
{
  "operation": "arriendo",
  "propertyType": "apartamentos",
  "city": "bogota",
  "keyword": "conjunto cerrado",
  "publishDate": "publicado-ultimos-15-dias",
  "stratum": ["3", "4"],
  "scrapeDetails": true,
  "maxItems": 50
}
```

**Ejemplo 3: Extracción Express (Sin entrar a los detalles profundos)**

```json
{
  "operation": "venta",
  "city": "medellin",
  "scrapeDetails": false,
  "maxItems": 500
}
```

***

### 📊 Resultados de Salida (Output)

El Actor almacena los datos en el Dataset de Apify, donde puedes descargarlos en **CSV, JSON, Excel, XML** o acceder vía API.

📌 **Nota importante:** Los datos se extraen estructurados listos para bases de datos. Los precios son numéricos (ej: `850000000`), no traen formato de moneda textual para que puedas operar con ellos matemáticamente.

#### Estructura de Datos Extraídos:

| Campo | Descripción | Tipo | Ejemplo |
| --- | --- | --- | --- |
| `id` | Identificador único en FincaRaiz | Entero | `192207064` |
| `title` | Título del anuncio | String | `"Apartamento en Venta en Cali"` |
| `url` | Enlace directo a la propiedad | String | `"https://.../"` |
| `propertyType` | Tipo de inmueble | String | `"Apartamento"` |
| `operationType` | Tipo de negocio | String | `"Venta"` |
| `price` | Precio final (COP) | Entero | `850000000` |
| `adminPrice` | Valor de administración (si aplica) | Entero | `900000` |
| `description` | Descripción redactada por el vendedor | String | `"Se vende apartamento con vista..."` |
| `address` | Dirección del inmueble | String | `"Av Colombia # 3 - 57"` |
| `location` | Ubicación y barrio | String | `"Santa teresita, Cali, Valle..."` |
| `latitude` / `longitude` | Coordenadas geoespaciales | Float | `3.45063` / `-76.5433` |
| `bedrooms` / `bathrooms` | Cantidad de cuartos / baños | Entero | `3` / `4` |
| `area` | Área total en metros cuadrados | Float | `168` |
| `stratum` | Estrato social | Entero | `6` |
| `garage` / `antiquity` | Parqueaderos y años de antigüedad | Entero | `2` / `5` |
| `technicalDetails` | Diccionario con datos extra de la propiedad | Objeto | `{"Administración": "$ 900.000", ...}` |
| `contact` | Diccionario con los datos del anunciante | Objeto | `{"agency": "Inmobiliaria Quarto28", "phone": "+5730"}` |
| `publishedDate` | Fecha inicial de publicación | Fecha | `"2025-03-28"` |
| `updatedDate` | Fecha en la que el usuario actualizó el aviso | Fecha | `"2026-05-29"` |

#### Ejemplo Real del JSON de Salida:

```json
{
  "id": 192207064,
  "title": "Apartamento en  Venta en Cali",
  "url": "https://www.fincaraiz.com.co/apartamento-en-venta-en-cali/192207064",
  "propertyType": "Apartamento",
  "operationType": "Venta",
  "price": 850000000,
  "currency": "$",
  "adminPrice": 900000,
  "description": "Se vente apartamento exterior con vista al parque El Gato, muy iluminado...",
  "address": "Av Colombia # 3 - 57",
  "location": "Santa teresita, Cali, Valle del cauca",
  "latitude": 3.4506378,
  "longitude": -76.543345,
  "bedrooms": 3,
  "bathrooms": 4,
  "area": 168,
  "stratum": 6,
  "garage": 2,
  "antiquity": 5,
  "technicalDetails": {
    "Tipo de Inmueble": "Apartamento",
    "Estado": "Usado",
    "Baños": "4",
    "Antigüedad": "más de 30 años",
    "Habitaciones": "3",
    "Parqueaderos": "2",
    "Área Privada": "168 m2",
    "Estrato": "6",
    "Administración": "$ 900.000",
    "Piso N°": "5"
  },
  "contact": {
    "agency": "Inmobiliaria Quarto28",
    "type": "inmobiliaria",
    "whatsapp": true,
    "phone": "+5730",
    "profileUrl": "https://www.fincaraiz.com.co/inmobiliarias/174709981-inmobiliaria%20quarto28"
  },
  "publishedDate": "2025-03-28",
  "updatedDate": "2026-05-29"
}
```

***

### 💰 Costos de Uso

El costo estimado de ejecutar este Actor es de **1 USD por cada 1000 propiedades** extraídas.

***

### ⚡ Rendimiento y Recomendaciones

- **Http Only**: Este scraper está construido en Node.js usando **Crawlee Cheerio**, por ende es estúpidamente rápido ya que no levanta navegadores pesados; simplemente ataca las APIs y los props ocultos de Next.js directamente.
- **Deduplicación**: Apify maneja la rotación de proxies y la omisión de listados duplicados en el Dataset si lanzas múltiples ejecuciones, garantizando integridad en tu Data.
- **Soporte `StartUrls`**: Si prefieres simplemente darle las URLs exactas que ya sacaste desde la web (ej. *https://www.fincaraiz.com.co/arriendo/apartaestudios/cali*), colócalas en el input `StartUrls` y el bot ignorará todos los demás selectores para buscar únicamente en las URLs provistas.

¡Maximiza el potencial de tus análisis inmobiliarios! 🚀

# Actor input Schema

## `operation` (type: `string`):

Tipo de operación

## `propertyType` (type: `string`):

Tipo de propiedad

## `city` (type: `string`):

Ciudad de búsqueda (ej: cali, tulua).

## `keyword` (type: `string`):

Búsqueda por palabra clave (ej: conjunto cerrado, piscina, etc).

## `minPrice` (type: `integer`):

Precio mínimo de la propiedad.

## `maxPrice` (type: `integer`):

Precio máximo de la propiedad.

## `rooms` (type: `string`):

Filtro de habitaciones

## `exactRooms` (type: `integer`):

Si se provee, ignora el selector de rango.

## `bathrooms` (type: `string`):

Filtro de baños

## `exactBathrooms` (type: `integer`):

Si se provee, ignora el selector de rango.

## `state` (type: `string`):

Estado del inmueble

## `garages` (type: `string`):

Cantidad de parqueaderos

## `antiquity` (type: `string`):

Años de antigüedad del inmueble

## `publishDate` (type: `string`):

Fecha en la que se publicó el anuncio

## `stratum` (type: `array`):

Estratos a buscar (1 al 6 o Campestre).

## `startUrls` (type: `array`):

Si provees URLs base aquí, ignorará los filtros de arriba y raspará estas URLs.

## `scrapeDetails` (type: `boolean`):

Si es True, entrará a la página individual para extraer ficha técnica y comodidades completas.

## `maxItems` (type: `integer`):

Número máximo de propiedades a extraer.

## Actor input object example

```json
{
  "operation": "arriendo",
  "propertyType": "",
  "rooms": "",
  "bathrooms": "",
  "state": "",
  "garages": "",
  "antiquity": "",
  "publishDate": "",
  "startUrls": [],
  "scrapeDetails": true,
  "maxItems": 100
}
```

# Actor output Schema

## `dataset` (type: `string`):

Lista de las propiedades extraídas.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("knowten/finca-raiz-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("knowten/finca-raiz-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 '{}' |
apify call knowten/finca-raiz-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,knowten/finca-raiz-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/J02sOMG1rDjjUC6iI/builds/Nw8SdtFMRBsfL2crJ/openapi.json
