# Inmuebles24 Scraper (`ribtools/inmuebles24-scraper`) Actor

Scrape Inmuebles24.com property listings (apartments, houses, land, commercial, new developments) from any search, development, agency or ad URL: prices in MXN or USD, areas, location and agency contacts.

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

## Pricing

from $1.99 / 1,000 property data 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?

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

## Inmuebles24 Scraper

Extract property listings from **Inmuebles24**, one of Mexico's leading real-estate portals. Each listing comes with price (in pesos or US dollars), maintenance fee, built and lot area, bedrooms, bathrooms, parking, full location, map coordinates and the full description, for sale, rent or vacation rental. Optional add-ons fetch every photo, the publication date and the ad's amenities, and the seller's name and phone numbers.

### What is Inmuebles24 Scraper?

**Inmuebles24 Scraper** collects property listings from [Inmuebles24](https://www.inmuebles24.com/): apartments (departamentos), houses, land, offices, commercial property and new developments (desarrollos). You give it starting URLs and it returns structured data for each listing:

- property type, sale, rent or vacation rental, and price with its currency (`MXN` or `USD`), price per m², and the rent of a for-sale ad that is also offered for rent
- built area and lot area, bedrooms, suites, bathrooms, parking spaces, property age and the monthly maintenance fee
- state, city, neighborhood (colonia), street and map coordinates
- the full description, the main photo and the photo count
- for new developments: construction stage, delivery, number of units, unit area range, the lowest unit price and the developer

Two optional add-ons go further. Ad details adds every photo, the publication date, the amenities listed on the ad page, and video and virtual-tour links. Seller data adds the seller's name, licence, Inmuebles24 page and phone numbers (WhatsApp).

The scraper handles pagination, retries and data normalization itself, so the dataset is ready to analyze or feed into your systems.

### What can this Actor do?

- **Extract every property type**: apartments, houses, land, offices, commercial property and new developments, for sale, for rent and for vacation rental
- **Handle multiple entry points**: searches with any filters, development searches, agency, broker or developer pages, and single ad URLs
- **Automatic pagination**: crawls through every result page, 30 properties per page, up to Inmuebles24's limit of 30,000 results per search
- **Prices in their own currency**: each listing keeps the currency it is priced in, pesos or US dollars
- **Ad details add-on**: every photo, publication date, amenities, video and virtual tour
- **Seller data add-on**: seller name, licence, Inmuebles24 page and phone numbers
- **No duplicates**: each property is returned (and charged) once per run, even when listings move between pages
- **Premium proxies included**: Mexican residential proxies built in at no additional cost
- **Structured output**: JSON, CSV and Excel formats
- **API integration**: real-time data access through the Apify API
- **Scheduled runs**: automated daily or weekly collection

### What data can Inmuebles24 Scraper extract?

| Field | Description | Example |
| ----- | ----------- | ------- |
| **ID** | Inmuebles24 ad identifier | 150591738 |
| **Title** | Ad title | Departamento en Girault, Cumbres de Santa Fe |
| **Property Type** | Inmuebles24's type label and id | Departamentos (2) |
| **Transaction** | Sale, rent or vacation rental | sale, rent, vacation_rental |
| **Price** | Asking price or monthly rent, its currency, and price per m² | 25000000, MXN, 71225.07 |
| **Maintenance fee** | Monthly maintenance fee | 15797 |
| **Areas** | Built area and lot area in m² | 351, 351 |
| **Rooms** | Bedrooms, suites, bathrooms, parking spaces | 3, 1, 3, 4 |
| **Location** | State, city, neighborhood, street, coordinates | CDMX, Cuajimalpa de Morelos, San Mateo Tlaltenango |
| **Development** | Construction stage, delivery, units, unit area range, developer | En construcción, Julio 2028, 25 |
| **Seller type** | private, agency or developer | agency |
| **Badges** | Labels shown on the card | Terraza, Trato directo |
| **Media** | Thumbnail and photo count | |
| **Details** (add-on) | Photos, publication date, amenities, video, tour | See below |
| **Seller** (add-on) | Name, licence, Inmuebles24 page, phones | See below |

### How to scrape Inmuebles24

#### Step-by-step tutorial:

1. **Add starting URLs**: paste Inmuebles24 search, development, agency or ad URLs (see compatible formats below)
2. **Configure options** (optional): turn on the ad details and/or seller data add-ons
3. **Run the scraper**: click "Start" and watch progress in real time
4. **Download results**: export the data as JSON, CSV or Excel

Proxies are included automatically — no setup required.

#### Compatible URL examples:

- **Search for sale**: `https://www.inmuebles24.com/departamentos-en-venta-en-ciudad-de-mexico.html`
- **Search for rent with filters**: `https://www.inmuebles24.com/departamentos-en-renta-en-ciudad-de-mexico-con-2-recamaras.html`
- **Neighborhood or municipality**: `https://www.inmuebles24.com/departamentos-en-venta-en-polanco.html`
- **Price, keyword or private owners only**: `https://www.inmuebles24.com/departamentos-en-venta-en-ciudad-de-mexico-hasta-2000000-pesos.html`, `https://www.inmuebles24.com/departamentos-en-venta-en-ciudad-de-mexico-q-penthouse.html`, `https://www.inmuebles24.com/departamentos-en-venta-en-ciudad-de-mexico-trato-directo.html`
- **Vacation rentals**: `https://www.inmuebles24.com/departamentos-en-temporal-vacacional-en-ciudad-de-mexico.html`
- **Starting at a later page**: `https://www.inmuebles24.com/departamentos-en-venta-en-ciudad-de-mexico-pagina-7.html`
- **New developments**: `https://www.inmuebles24.com/desarrollos-o-departamentos-en-ciudad-de-mexico.html`
- **Agency, broker or developer page**: `https://www.inmuebles24.com/inmobiliarias/circulo-bienes-raices_50026821-inmuebles.html`
- **Single ad**: `https://www.inmuebles24.com/propiedades/clasificado/veclapin-departamento-en-girault-cumbres-de-santa-fe-150591738.html` (development ads under `/propiedades/desarrollo/...` too)

**Important**: copy search URLs from the site after choosing your filters. Inmuebles24 silently widens a URL it doesn't recognize (an unknown place or a guessed filter) into a broader search, sometimes the whole country. The scraper detects that, skips the URL and says so in the run's status message, so you never pay for results you didn't ask for. Inmuebles24 shows at most 30,000 results per search: split bigger searches by price, area or neighborhood.

### How much does it cost to scrape Inmuebles24?

Inmuebles24 Scraper uses **pay-per-result (PPR)** pricing: you only pay for properties it successfully extracts.

- **Base extraction**: one charge per scraped property
- **Ad details add-on**: one additional charge per property, only when the details add-on is on and the ad page returns data
- **Seller data add-on**: one additional charge per property that returns seller data

The scraper keeps compute usage low while maintaining a high success rate. Contact support for volume discounts on large-scale projects.

### Input configuration

#### Start URLs

Inmuebles24 URLs copied from your browser: searches of any property type, operation and place with any filters, paged search URLs, new-development searches, agency, broker or developer pages, and single ads.

#### Maximum items

Maximum number of properties to scrape (each result is a charged event). Leave empty for no limit.

#### Fetch ad details (add-on)

Opens each ad to add every photo, the publication date, the amenities the ad lists, and video and virtual-tour links. Charged per property with details.

#### Fetch seller data (add-on)

Adds the seller's name, licence (when published), Inmuebles24 page and phone numbers (WhatsApp), for agencies, brokers, developers and private owners. Charged per property with seller data.

### Output example

```json
{
  "type": "property",
  "id": 150591738,
  "url": "https://www.inmuebles24.com/propiedades/clasificado/veclapin-departamento-en-girault-cumbres-de-santa-fe-150591738.html",
  "title": "Departamento en Girault, Cumbres de Santa Fe | Terrazas y Vistas Al Bosque",
  "property_type": "Departamentos",
  "property_type_id": "2",
  "is_development": false,
  "transaction": "sale",
  "price": 25000000,
  "currency": "MXN",
  "price_is_starting_from": false,
  "price_per_m2": 71225.07,
  "rent_price": null,
  "sale_price": null,
  "condo_fee": 15797,
  "area_m2": 351.0,
  "terrain_area_m2": 351.0,
  "bedrooms": 3,
  "bathrooms": 3,
  "suites": 1,
  "parking_spaces": 4,
  "property_age_years": 11,
  "description": "Vivir rodeado de bosque y disfrutar la vista desde distintos espacios del departamento es ...",
  "region": "CDMX",
  "city": "Cuajimalpa de Morelos",
  "neighborhood": "San Mateo Tlaltenango",
  "street": "Av. de los Poetas 100",
  "latitude": 19.3462134,
  "longitude": -99.2573079,
  "construction_status": null,
  "development_delivery": null,
  "development_units": null,
  "development_area_min_m2": null,
  "development_area_max_m2": null,
  "developer_name": null,
  "seller_type": "agency",
  "seller_id": "50000000",
  "reference_code": "EB-WN3124",
  "badges": ["Terraza"],
  "complex_features": [],
  "thumbnail": "https://img10.naventcdn.com/avisos/18/01/50/59/17/38/720x532/1635991174.jpg",
  "photo_count": 29,
  "details": {
    "photos": ["https://img10.naventcdn.com/avisos/18/01/50/59/17/38/1200x1200/1635991174.jpg"],
    "listed_at": "2026-07-21T23:19:11Z",
    "features": ["Acceso discapacitados", "Terraza", "Cuartos de servicio", "Mascotas", "Alberca", "Gimnasio"],
    "video_url": null,
    "virtual_tour_url": null
  },
  "seller": {
    "type": "agency",
    "id": "50000000",
    "name": "Inmobiliaria Ejemplo",
    "profile_url": "https://www.inmuebles24.com/inmobiliarias/inmobiliaria-ejemplo_50000000-inmuebles.html",
    "logo_url": null,
    "license": null,
    "phones": ["+525500000000"]
  }
}
```

This example is shortened and its seller is fictitious.

Single ad URLs come without coordinates.

You can download the dataset extracted by **Inmuebles24 Scraper** as **JSON, HTML, CSV or Excel**.

### Use cases and applications

- **Housing market research**: track asking prices, rents, maintenance fees and price per m² by state, city, neighborhood and property type, in pesos and dollars
- **Property valuation**: compare listings by built and lot area, bedrooms, parking and age
- **New-development tracking**: follow developments, construction stage, delivery dates, unit counts and starting prices
- **Lead generation**: build lists of agencies, brokers and developers with their Inmuebles24 pages and WhatsApp numbers (seller add-on)

### Integrations and API access

- **Zapier**: automate data workflows and notifications (via the [Apify Zapier integration](https://docs.apify.com/platform/integrations/zapier))
- **Make (Integromat)**: build multi-step automations (via the [Apify Make integration](https://www.make.com/en/integrations/apify))
- **Google Sheets**: export data directly for analysis
- **REST API**: programmatic access to the extracted data ([instructions here](https://docs.apify.com/academy/api/run-actor-and-retrieve-data-via-api))
- **Python/Node.js SDKs**: integrate the scraper into your applications ([instructions here](https://docs.apify.com/academy/api/run-actor-and-retrieve-data-via-api#javascript-and-python-client))

### FAQ and Support

#### Do I need to configure a proxy?

No. The Actor includes Mexican residential proxies automatically at no additional cost.

#### Where are the sellers' names and phone numbers?

Only in the opt-in seller data add-on. The results themselves never carry a person's name or phone: `seller_type` says whether the seller is a private owner, an agency or a developer, and private owners' listings ("trato directo") have no seller id. `street` follows the listing: it is filled when Inmuebles24 shows the street, private owners included, and without the house number when the advertiser shows only the area (as the site does). With the seller add-on on, each property gets the seller's name, licence (when published), Inmuebles24 page and phone numbers, private owners included. Use this personal data in line with Mexico's data protection law (LFPDPPP). Contact details that advertisers type into a description are hidden by Inmuebles24 itself and show as `[contact hidden]`.

#### What are `area_m2`, `terrain_area_m2`, `price` and `currency`?

`area_m2` is the built area (superficie construida) and `terrain_area_m2` the lot area (terreno). `price` follows the ad's operation, in the ad's own `currency` (`MXN` or `USD`); a for-sale ad also offered for rent has its rent in `rent_price` (and the reverse in `sale_price`) when both are in the same currency. `condo_fee` is in `currency` too, and left empty when the site gives it in another one. Vacation rentals carry the site's own stay price and no price per m². For new developments, `price` is the lowest unit price and `price_is_starting_from` is true.

#### Why did a URL return nothing?

Inmuebles24 answers a URL it doesn't recognize with a wider search. The scraper skips such URLs and says so in the run's status message: copy the URL again from the site. A search with no results on the site (for example a rare operation in a small area) also returns nothing.

#### Will I get every listing of my search?

Usually, yes. Inmuebles24's default "relevant" order reshuffles every few minutes while you browse it, so a page can repeat ads from an earlier page and skip others. The scraper never ships an ad twice, and when a run ends with fewer ads than Inmuebles24 counts for the search, it goes through the search again (up to two more times) to pick up the ads it missed. On very large searches (about 100 pages or more) under the relevant order, complete coverage can't be guaranteed, and the run's status message says how many ads it could not reach: narrow the search (price, area, colonia) or pick a sort order on the site before copying the URL.

#### How often is the data updated?

Inmuebles24 updates listings in real time. For fresh data, schedule regular runs or call the API on demand.

#### Need help or have feedback?

- **Report issues**: use the Issues tab for bug reports and feature requests
- **Custom development**: contact us for tailored solutions and enterprise integrations

### En español

**Inmuebles24 Scraper** extrae anuncios de inmuebles en venta, renta y renta vacacional de [Inmuebles24](https://www.inmuebles24.com/): departamentos, casas, terrenos, oficinas, locales comerciales y desarrollos. Cada anuncio trae precio (en pesos o dólares), mantenimiento, superficie construida y de terreno, recámaras, baños, estacionamientos, estado, ciudad, colonia, calle, coordenadas y la descripción completa.

**URLs aceptadas:** búsquedas con cualquier filtro (copiadas del sitio, incluidas las páginas `-pagina-N`), desarrollos (`/desarrollos-...`), páginas de inmobiliarias, corredores y desarrolladoras (`/inmobiliarias/..._<id>-inmuebles.html`) y anuncios (`/propiedades/clasificado/...-<id>.html`, `/propiedades/desarrollo/...-<id>.html`).

**Add-ons:**

- **Detalles del anuncio**: todas las fotos, fecha de publicación, amenidades, video y recorrido virtual.
- **Datos del anunciante**: nombre, licencia, página en Inmuebles24 y teléfonos (WhatsApp), incluidos los dueños directos. Trata estos datos personales conforme a la LFPDPPP.

Proxies mexicanos incluidos, sin configuración. Inmuebles24 muestra como máximo 30,000 resultados por búsqueda: divide las búsquedas más grandes por precio, superficie o colonia.

El orden "relevantes" de Inmuebles24 se reacomoda cada pocos minutos: el scraper nunca repite un anuncio y, si le faltan anuncios frente al total de la búsqueda, la recorre de nuevo (hasta dos veces más) para recuperarlos. En búsquedas muy grandes (unas 100 páginas o más) con ese orden no se puede garantizar la cobertura completa: acota la búsqueda o elige un orden en el sitio antes de copiar la URL. La calle se entrega tal como la muestra el anuncio, también la de los dueños directos.

# Changelog

This Actor's version history is a separate document: https://apify.com/ribtools/inmuebles24-scraper/changelog.md

# Actor input Schema

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

Inmuebles24 URLs copied from your browser. Search URLs of any property type, operation and place, with any filters applied (bedrooms, price, keyword, private owners only), e.g. `https://www.inmuebles24.com/departamentos-en-venta-en-ciudad-de-mexico.html` or `https://www.inmuebles24.com/departamentos-en-renta-en-ciudad-de-mexico-con-2-recamaras.html`. Paged URLs (`...-pagina-3.html`) start at that page. Vacation rentals (`/departamentos-en-temporal-vacacional-en-ciudad-de-mexico.html`), new developments (`/desarrollos-o-departamentos-en-ciudad-de-mexico.html`), agency, broker or developer pages (`/inmobiliarias/<name>_<id>-inmuebles.html`) and single ads (`/propiedades/clasificado/...-<id>.html`, `/propiedades/desarrollo/...-<id>.html`) also work. Inmuebles24 shows at most 30,000 results per search: split bigger searches by price, area or neighborhood.

## `maxRequests` (type: `integer`):

Maximum number of properties to scrape (each result is a charged event). Leave empty for no limit.

## `detailsAddon` (type: `boolean`):

Open each ad to add every photo, the publication date, the amenities the ad lists, and video and virtual-tour links. Charged per property with details.

## `sellerDataAddon` (type: `boolean`):

Add the seller's name, licence, Inmuebles24 page and phone numbers (WhatsApp), for agencies, brokers, developers and private owners. Charged per property with seller data.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.inmuebles24.com/departamentos-en-venta-en-ciudad-de-mexico.html"
    }
  ],
  "maxRequests": 10,
  "detailsAddon": false,
  "sellerDataAddon": false
}
```

# Actor output Schema

## `items` (type: `string`):

All scraped items.

# 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 = {
    "startUrls": [
        {
            "url": "https://www.inmuebles24.com/departamentos-en-venta-en-ciudad-de-mexico.html"
        }
    ],
    "maxRequests": 10,
    "detailsAddon": false,
    "sellerDataAddon": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("ribtools/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 = {
    "startUrls": [{ "url": "https://www.inmuebles24.com/departamentos-en-venta-en-ciudad-de-mexico.html" }],
    "maxRequests": 10,
    "detailsAddon": False,
    "sellerDataAddon": False,
}

# Run the Actor and wait for it to finish
run = client.actor("ribtools/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 '{
  "startUrls": [
    {
      "url": "https://www.inmuebles24.com/departamentos-en-venta-en-ciudad-de-mexico.html"
    }
  ],
  "maxRequests": 10,
  "detailsAddon": false,
  "sellerDataAddon": false
}' |
apify call ribtools/inmuebles24-scraper --silent --output-dataset

```

## MCP server setup

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