# Inmuebles24 Mexico Real Estate Scraper & Monitor (`datamole/inmuebles24-scraper`) Actor

Extract Inmuebles24 listings in Mexico for rent and sale with price in pesos and dollars, mantenimiento, monthly cost, price per m², built and land area, GPS, WhatsApp and photos. Filter by colonia, amenities, pets or direct owners, and track new listings and price drops.

- **URL**: https://apify.com/datamole/inmuebles24-scraper.md
- **Developed by:** [DataMole](https://apify.com/datamole) (community)
- **Categories:** Real estate, Lead generation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 result scrapeds

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![DataMole](https://raw.githubusercontent.com/YoiderD/datamole-assets/main/banner.png)

## 🏙️ Inmuebles24 Mexico Real Estate Scraper & Monitor

> **Extrae propiedades de Inmuebles24 (renta y venta) con precio en pesos y en dólares, mantenimiento, costo mensual total, precio por m², superficie construida y de terreno, GPS, WhatsApp del anunciante y fotos.** Filtra por colonia, alberca, gimnasio, mascotas o trato directo, y recibe solo las propiedades nuevas y las bajas de precio.

> 🕒 **Last updated:** 2026-10-20 · **50+ campos** por propiedad · **filtros reales de Inmuebles24** · **todo México** (CDMX, Guadalajara, Monterrey, Querétaro, Cancún...)

**Inmuebles24 Mexico Real Estate Scraper** convierte las búsquedas de Inmuebles24, uno de los portales inmobiliarios más grandes de México, en una base de datos lista para analizar. Escribe colonias, alcaldías o ciudades como `Polanco`, `Roma Norte`, `Santa Fe` o `Guadalajara`, o pega una URL de búsqueda de inmuebles24.com. Usa los mismos filtros que la web, convierte precios con el tipo de cambio del día y puede **monitorear** una búsqueda para traerte solo lo nuevo.

| 🎯 Para quién | 💡 Para qué |
|---|---|
| Inversionistas, inmobiliarias y asesores, desarrolladoras, valuadores, proptech, fondos | Estudios de mercado, precio por m² por colonia, alertas de propiedades nuevas, captación de trato directo, seguimiento de bajas de precio, comparables |

### 📋 Qué hace

- 💵 **Pesos y dólares en cada propiedad:** `priceMXN` y `priceUSD` con el tipo de cambio de referencia del día. Cada fila trae la tasa usada.
- 🧾 **Mantenimiento y costo mensual total:** en rentas, `totalMonthlyCostMXN` suma renta + mantenimiento.
- 📐 **Precio por m²** en pesos y en dólares, sobre la superficie construida.
- 🏗️ **Superficie construida y de terreno** por separado, recámaras, baños, medios baños, estacionamientos y antigüedad.
- 📍 **GPS, dirección, colonia, alcaldía o municipio y estado.**
- 📲 **WhatsApp del anunciante** cuando Inmuebles24 lo publica, sin costo extra.
- 🔎 **Todos los filtros reales de Inmuebles24:**
  - Renta, venta, temporal/vacacional y traspaso.
  - 23 tipos de propiedad: casa en condominio, departamento, terreno, nave industrial y más.
  - Precio en MXN o USD, mantenimiento, recámaras, baños, estacionamientos, superficie y antigüedad.
  - **Generales** (alberca, amueblado, elevador, permite mascotas), **exteriores** (asador, terraza, jardín privado), **servicios** (seguridad privada, caseta de guardia, cisterna) y **amenidades** (gimnasio, spa, co-working, salón de usos múltiples).
  - **Trato directo**, fecha de publicación y multimedia (video, recorrido 360, planos).
- 🏢 **Desarrollos:** fecha de entrega, total de unidades y etapa del proyecto.
- 📉 **Orden "Bajaron de precio"** y el % que bajó cada propiedad.
- 👀 **Modo monitoreo:** corre la misma búsqueda cada día y recibe solo las propiedades **nuevas** y las que **cambiaron de precio**.
- 🔍 **Detalle completo (opcional):** todas las amenidades, antigüedad, teléfono, dirección, descripción completa y fecha de publicación.

> ℹ️ **Plan gratis de Apify:** cada corrida devuelve una muestra de hasta 10 propiedades. Cualquier plan pago de Apify desbloquea todos los resultados.

### ⚙️ Input

| Campo | Qué hace |
|---|---|
| `locations` | Colonias, alcaldías, municipios o estados como aparecen en Inmuebles24. |
| `operation` | `renta`, `venta`, `temporal-vacacional` o `traspaso`. |
| `propertyTypes` | Uno o varios de los 23 tipos de Inmuebles24. |
| `searchUrls` | URLs de búsqueda de inmuebles24.com con tus filtros aplicados. |
| `minPrice` / `maxPrice` / `priceCurrency` | Rango de precio en MXN o USD. |
| `minMaintenance` / `maxMaintenance` | Rango de mantenimiento en pesos. |
| `minBedrooms`, `minBathrooms`, `minParking`, `minArea`, `maxArea`, `antiquity` | Características. |
| `general`, `outdoor`, `services`, `amenities`, `roomTypes`, `view` | Filtros de comodidades del portal. |
| `publisherType`, `publishedWithin`, `multimedia`, `keyword`, `sort` | Anunciante (trato directo), fecha, multimedia, palabra clave y orden. |
| `includeDetails` | Suma el detalle completo (costo adicional). |
| `monitorMode` / `monitorName` | Solo propiedades nuevas y cambios de precio entre corridas. |
| `maxItems` / `maxPagesPerSearch` | Límites de la corrida. |

**Ejemplo: departamentos en renta en Polanco y Roma Norte con 2+ recámaras que permiten mascotas**

```json
{
    "locations": ["Polanco", "Roma Norte"],
    "operation": "renta",
    "propertyTypes": ["departamento"],
    "minBedrooms": 2,
    "general": ["permite-mascotas"]
}
```

**Ejemplo: monitoreo diario de casas en venta con alberca en Querétaro, trato directo**

```json
{
    "locations": ["Querétaro"],
    "operation": "venta",
    "propertyTypes": ["casa", "casa-en-condominio"],
    "general": ["alberca"],
    "publisherType": "dueno-directo",
    "monitorMode": true
}
```

### 📊 Output

Propiedad real de una corrida (con detalle completo, listas acortadas):

```json
{
    "id": "151402510",
    "url": "https://www.inmuebles24.com/propiedades/clasificado/veclapin-cittark:-departamento-en-venta-en-polanco-151402510.html",
    "title": "Cittark: Departamento en Venta en Polanco",
    "operationType": "Venta",
    "propertyType": "Departamentos",
    "price": 21000000,
    "currency": "MXN",
    "priceMXN": 21000000,
    "priceUSD": 1138427,
    "exchangeRate": 18.446513,
    "maintenanceFee": 6000,
    "maintenanceFeeCurrency": "MXN",
    "pricePerM2MXN": 95455,
    "pricePerM2USD": 5175,
    "builtArea": 220,
    "bedrooms": 2,
    "bathrooms": 2,
    "halfBathrooms": 1,
    "parking": 2,
    "ageYears": 0,
    "colonia": "Polanco",
    "subzone": "Polanco IV Sección",
    "municipality": "Miguel Hidalgo",
    "state": "Ciudad de México",
    "latitude": 19.4283931,
    "longitude": -99.19465869999999,
    "amenities": ["Alberca", "Cuartos de servicio", "Jacuzzi", "Gimnasio"],
    "hasVideo": true,
    "hasVirtualTour": true,
    "publisherName": "Pulppo",
    "publisherType": "Inmobiliaria",
    "whatsapp": "+525570055225",
    "publishedAt": "2026-10-20T06:08:03Z",
    "hasDetails": true
}
```

Sin detalle completo, cada propiedad igual trae precio, mantenimiento, superficies, recámaras, baños, GPS, WhatsApp, fotos y descripción. Las amenidades completas, el teléfono y la fecha de publicación llegan con `includeDetails`.

Campos que pueden venir vacíos:

- `maintenanceFee` cuando el anuncio no lo informa.
- En desarrollos, las superficies y recámaras, porque varían por unidad. En ese caso vienen `developmentDelivery`, `developmentUnits` y `developmentStage`, y el precio es el "desde".
- El teléfono en anuncios de trato directo que lo ocultan. El actor nunca devuelve números incompletos.

### ✨ Por qué este

- ✅ **Pesos y dólares** con la tasa del día en cada fila, y **costo mensual real** (renta + mantenimiento).
- ✅ **Superficie construida y de terreno separadas**, clave para casas y terrenos en México.
- ✅ **WhatsApp incluido** en el resultado.
- ✅ **Todos los filtros de comodidades de Inmuebles24**, con las opciones reales del portal.
- ✅ **Monitoreo de propiedades nuevas y bajas de precio** para correrlo programado cada día.
- ✅ **Datos reales:** si un dato no está en Inmuebles24, queda vacío.

### ❓ Preguntas frecuentes

**¿Qué tipo de cambio usa?** El de referencia del día (open.er-api.com). Cada fila trae `exchangeRate`.

**¿Cómo funciona el monitoreo?** La primera corrida guarda todas las propiedades de tu búsqueda. Las siguientes devuelven solo las nuevas y las que cambiaron de precio, con `previousPrice` y `priceChangePercent`.

**¿Qué ubicaciones acepta?** Las del buscador de Inmuebles24: colonias (Polanco, Condesa), alcaldías, municipios y estados.

**¿Necesito proxy?** El actor usa por defecto proxy residencial de México de Apify. No hace falta configurar nada.

**¿Incluye remates?** No. Los remates usan otro flujo en el portal.

### 🔌 Integraciones

Funciona con la API de Apify, schedules, webhooks, Google Sheets, Make, Zapier, n8n, Slack y cualquier herramienta que lea JSON.

### 🕳️ Más de DataMole

| Actor | Qué hace |
|---|---|
| [Zonaprop Argentina Real Estate Scraper](https://apify.com/datamole/zonaprop-scraper) | Avisos de Zonaprop con dólar blue/MEP, expensas y monitoreo |
| [Urbania Peru Real Estate Scraper](https://apify.com/datamole/urbania-scraper-pro) | Avisos de Urbania (Perú) con soles y dólares |
| [Company Enrichment](https://apify.com/datamole/company-enrichment) | Perfil de empresa a partir de su dominio |

**¿Necesitas un campo o filtro que no está?** Abre un issue en este actor. Leemos todo.

### ⚖️ Disclaimer

Este actor recopila información pública de inmuebles24.com y tipos de cambio públicos de open.er-api.com. No está afiliado ni respaldado por Inmuebles24, Navent ni ExchangeRate-API. Usa los datos de forma responsable y conforme a las leyes aplicables (incluida la Ley Federal de Protección de Datos Personales en Posesión de los Particulares) y a los términos del sitio.

# Actor input Schema

## `locations` (type: `array`):

Colonias, alcaldías, municipios o estados como aparecen en Inmuebles24, por ejemplo Polanco, Roma Norte, Santa Fe, Guadalajara o Querétaro.

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

Renta, Venta, Temporal / vacacional, Traspaso.

## `propertyTypes` (type: `array`):

Uno o varios tipos.

## `searchUrls` (type: `array`):

Opcional. Pegá cualquier búsqueda del portal con tus filtros ya aplicados. Se recorren todas sus páginas.

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

Tope para toda la corrida. Vacío = sin tope.

## `maxPagesPerSearch` (type: `integer`):

Cada página trae 30 avisos. Vacío = todas.

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

Precio mínimo

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

Precio máximo

## `priceCurrency` (type: `string`):

Moneda del filtro de precio.

## `minMaintenance` (type: `integer`):

Mantenimiento mínimo.

## `maxMaintenance` (type: `integer`):

Mantenimiento máximo.

## `minBedrooms` (type: `integer`):

Recámaras.

## `minBathrooms` (type: `integer`):

Baños (mínimo)

## `minParking` (type: `integer`):

Estacionamientos.

## `minArea` (type: `integer`):

Superficie construida.

## `maxArea` (type: `integer`):

Superficie construida.

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

Antigüedad máxima del inmueble.

## `general` (type: `array`):

Alberca, amueblado, elevador, permite mascotas, closet y más. Se exigen todas las elegidas.

## `outdoor` (type: `array`):

Asador, balcón, terraza, jardín privado, patio. Se exigen todas las elegidas.

## `services` (type: `array`):

Seguridad privada, caseta de guardia, aire acondicionado, cisterna y más. Se exigen todas las elegidas.

## `amenities` (type: `array`):

Gimnasio, spa, co-working, salón de usos múltiples, áreas deportivas y más. Se exigen todas las elegidas.

## `roomTypes` (type: `array`):

Estudio, cuarto de servicio, cuarto de TV, cocina integral y más. Se exigen todas las elegidas.

## `view` (type: `string`):

Frente o interior.

## `publisherType` (type: `string`):

Todos, inmobiliaria / trato directo.

## `publishedWithin` (type: `string`):

Solo avisos publicados en este período.

## `multimedia` (type: `array`):

Solo avisos con video, recorrido 360 o planos.

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

Buscador de palabras del portal. Es estricto y devuelve pocos avisos: para comodidades usá los filtros de comodidades.

## `sort` (type: `string`):

Más recientes recorre la búsqueda completa sin repetidos. Bajaron de precio muestra primero las rebajas.

## `includeDetails` (type: `boolean`):

Abre cada aviso para sumar todas las comodidades, antigüedad, teléfono del anunciante, dirección exacta, descripción completa y fecha de publicación. Es más lento y tiene un costo adicional por aviso.

## `monitorMode` (type: `boolean`):

Recuerda los avisos entre corridas y devuelve solo los nuevos y los que cambiaron de precio, con el precio anterior y el % de cambio. La primera corrida devuelve todo.

## `monitorName` (type: `string`):

Opcional. Usá el mismo nombre para compartir la memoria entre configuraciones. Vacío = se identifica por los filtros.

## `proxyConfiguration` (type: `object`):

El portal exige IP residencial del país. Dejalo como está.

## Actor input object example

```json
{
  "locations": [
    "Polanco"
  ],
  "operation": "renta",
  "propertyTypes": [
    "departamento"
  ],
  "priceCurrency": "MXN",
  "publisherType": "todos",
  "sort": "more_recent",
  "includeDetails": false,
  "monitorMode": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "MX"
  }
}
```

# 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 = {
    "locations": [
        "Polanco"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "MX"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("datamole/inmuebles24-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 = {
    "locations": ["Polanco"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "MX",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("datamole/inmuebles24-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 '{
  "locations": [
    "Polanco"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "MX"
  }
}' |
apify call datamole/inmuebles24-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datamole/inmuebles24-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/PV016HArrPa2clvTq/builds/rgUG4rogDUjbPOutp/openapi.json
