# Metrocuadrado Scraper — Colombia Property for Sale & Rent (`hipersoft/metrocuadrado-scraper`) Actor

Scrape Metrocuadrado.com, Colombia's leading property portal: apartments, houses, offices, lots and new projects for sale or rent in Bogotá, Medellín, Cali and more. Price, m², bedrooms, baths, parking, estrato, neighborhood, coordinates, photos. Export CSV/JSON.

- **URL**: https://apify.com/hipersoft/metrocuadrado-scraper.md
- **Developed by:** [hiper soft](https://apify.com/hipersoft) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00075 / listing

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

## Metrocuadrado Scraper: Colombia Property for Sale and Rent

**Metrocuadrado Scraper** extracts property listings from **Metrocuadrado.com**, one of Colombia's leading real estate portals, with tens of thousands of **apartments, houses, studios, offices, retail spaces, lots, warehouses, farms and new housing projects** for sale (**venta**) and rent (**arriendo**) in **Bogotá, Medellín, Cali, Barranquilla, Cartagena, Bucaramanga, Pereira** and more. Every listing includes the **sale price or monthly rent in COP, private and built area in m², bedrooms, bathrooms, parking spaces, estrato (socio-economic stratum), condition (new/used), neighborhood, zone, GPS coordinates, project name, seller type, description, amenities, property details and full-size photos**. Filter by **property type, city, bedrooms and price**, and export to **CSV, Excel or JSON**. Big searches are **split automatically by price**, so you are not limited to the first 10,000 results.

### What does Metrocuadrado Scraper do?

- 🇨🇴 **Any Colombian city**: Bogotá, Medellín, Cali, Barranquilla, Cartagena, Bucaramanga, Pereira, Manizales, Santa Marta…
- 🏠 **Property types**: apartamento, casa, apartaestudio, oficina, local, lote, bodega, finca, consultorio, edificio, habitación.
- 💰 **Sale or rent**: sale price or monthly rent in COP, with min/max price filters.
- 📐 **Size and layout**: private and built area (m²), bedrooms, bathrooms, parking.
- 🏙️ **Estrato** (stratum 1–6), neighborhood and zone.
- 📍 **GPS coordinates** for mapping.
- 🏗️ **New projects**: project name and builder listings flagged.
- ✨ **Amenities and details**: integrated kitchen, balcony, heater type, floor, building age and more.
- 🖼️ **Full-size photo gallery** for every listing.
- 📈 **Automatic price splitting** for big cities to collect tens of thousands of listings.

### What data can you scrape from Metrocuadrado?

| Field | Description |
|---|---|
| Listing | ID, title, link, operation (venta/arriendo), property type |
| Price | Sale price, monthly rent, currency (COP) |
| Size | Private area, built area (m²) |
| Layout | Bedrooms, bathrooms, parking |
| Location | City, neighborhood, zone, latitude, longitude |
| Profile | Estrato, condition (new/used), project name, badge, seller type |
| Description | Listing description |
| Features | Amenities list and property details |
| Contact | Contact phone and WhatsApp |
| Photos | Main photo and full gallery |

### Use cases for Colombian property data

- **Real estate investors**: compare price per m² by estrato and neighborhood in Bogotá and Medellín.
- **Agencies and developers**: monitor competitor listings and new projects.
- **Rental market analysis**: track rents for apartments across Colombian cities.
- **Proptech and valuation models**: feed geocoded listings into pricing models.
- **Relocation and expats**: shortlist homes by budget, size and neighborhood.
- **Urban research**: analyse housing supply and prices by stratum.

### How to scrape Metrocuadrado

1. Click **Try for free** to open Metrocuadrado Scraper in Apify Console.
2. Choose **sale or rent** and a **property type**, and enter **cities**.
3. Optionally set **bedrooms** and a **price range**.
4. Set **Max listings** and click **Start**.
5. Download the listings as **CSV, Excel or JSON**.

### Input

#### Example input

```json
{
  "operation": "arriendo",
  "propertyType": "apartamento",
  "cities": ["Medellín", "Bogotá"],
  "bedrooms": ["2"],
  "maxPrice": 4000000,
  "maxItems": 1000
}
```

| Field | Description |
|---|---|
| **Sale or rent** | Venta or arriendo. |
| **Property type** | Apartment, house, studio, office, retail, lot, warehouse, farm, medical office, building, room. |
| **Cities** | Colombian cities; one search each. |
| **Bedrooms** | Bedroom counts to include. |
| **Minimum / Maximum price** | Sale price or monthly rent in COP. |
| **Max listings** | Stop after this many (0 = no limit). |

### Output

#### Listing example

```json
{
  "propertyId": "12653-M6406808",
  "url": "https://www.metrocuadrado.com/inmueble/arriendo-apartamento-medellin-santa-fe-2-habitaciones-1-banos/12653-M6406808",
  "title": "Apartamento en Arriendo, Santa Fe, Medellín",
  "operation": "arriendo",
  "propertyType": "Apartamento",
  "rentPrice": 2950000,
  "currency": "COP",
  "areaM2": 63,
  "bedrooms": 2,
  "bathrooms": 1,
  "parking": 0,
  "stratum": 4,
  "condition": "Usado",
  "city": "Medellín",
  "neighborhood": "Santa Fe",
  "zone": "Suroccidente",
  "latitude": 6.221517,
  "longitude": -75.581764,
  "sellerType": "RealEstate",
  "description": "De 63 metros cuadrados RECIEN REMODELADO, ACABADOS MODERNOS, ¡AMOBLADO! 2 Alcobas amplias…",
  "amenities": ["cerca a restaurantes", "cerca transporte publico", "cocina americana", "cocina integral", "zona lavanderia"],
  "details": { "nroPiso": "3", "terrazaBalcon": "Balcón", "tiempoConstruido": "Entre 10 y 20 años", "tipoPiso": "Cerámica" },
  "imageUrl": "https://multimedia.metrocuadrado.com/12653-M6406808/12653-M6406808_56.jpeg",
  "search": "apartamento arriendo medellin"
}
```

#### Output schema

| Field | Type | Description |
|---|---|---|
| `propertyId`, `url`, `title` | string | Listing. |
| `operation`, `propertyType` | string | Type. |
| `salePrice`, `rentPrice`, `currency` | mixed | Price. |
| `areaM2`, `builtAreaM2` | number | Size. |
| `bedrooms`, `bathrooms`, `parking` | number | Layout. |
| `stratum`, `condition` | mixed | Profile. |
| `city`, `neighborhood`, `zone`, `latitude`, `longitude` | mixed | Location. |
| `projectName`, `badge`, `sellerType` | string | Listing type. |
| `description`, `amenities`, `details` | mixed | Features. |
| `contactPhone`, `whatsapp` | string | Contact. |
| `imageUrl`, `images` | mixed | Photos. |
| `search`, `scrapedAt` | string | Source info. |

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

Metrocuadrado Scraper uses **pay-per-listing** pricing: a small fixed price per listing, with automatic discounts on higher Apify plans. See the **Pricing** tab for the exact price.

### More property data

- [Zameen.com Scraper](https://apify.com/hipersoft/zameen-scraper): Pakistan property.
- [Property Finder Scraper](https://apify.com/hipersoft/propertyfinder-scraper): UAE and Gulf property.
- [Sreality Scraper](https://apify.com/hipersoft/sreality-scraper): Czech real estate.

### FAQ

**How many listings can I get?**
All listings for your search. When a city has more than 10,000 results and no price filter is set, the scraper splits the search into price bands automatically.

**What is estrato?**
Colombia's socio-economic stratum (1–6) assigned to each property; it affects utility rates and is a key price driver.

**Can I scrape rentals?**
Yes. Set **Sale or rent** to **arriendo**; `rentPrice` is the monthly rent.

**What formats can I export?**
CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.

**Can I integrate Metrocuadrado Scraper with other apps?**
Metrocuadrado Scraper can be connected with almost any cloud service or web app thanks to [integrations on the Apify platform](https://apify.com/integrations). It works with [Make](https://apify.com/integrations/make), [Zapier](https://apify.com/integrations/zapier), [Slack](https://docs.apify.com/platform/integrations/slack), [Airbyte](https://docs.apify.com/platform/integrations/airbyte), [GitHub](https://docs.apify.com/platform/integrations/github), [Google Drive](https://docs.apify.com/platform/integrations/drive) and [many more](https://apify.com/integrations), plus the [Apify API](https://docs.apify.com/api/v2), JS/Python clients and MCP. Or use [webhooks](https://docs.apify.com/platform/integrations/webhooks) to trigger an action whenever a run finishes.

**Is it legal to scrape Metrocuadrado?**
The scraper only collects publicly listed property information. You are responsible for using the data in line with Metrocuadrado's terms and Colombian data protection law.

### Related Actors

- [Zameen.com Scraper](https://apify.com/hipersoft/zameen-scraper)
- [Property Finder Scraper](https://apify.com/hipersoft/propertyfinder-scraper)

### Notes

Original clean-room implementation. Returns only public data. Not affiliated with Metrocuadrado.

# Actor input Schema

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

Properties for sale (venta) or for rent (arriendo).

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

Type of property.

## `cities` (type: `array`):

Colombian cities, e.g. Bogotá, Medellín, Cali, Barranquilla, Cartagena, Bucaramanga, Pereira. Each city is a separate search.

## `bedrooms` (type: `array`):

Only listings with these bedroom counts, e.g. 2, 3.

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

Sale price or monthly rent.

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

Sale price or monthly rent.

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

Stop after this many listings. 0 means no limit.

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

Not required for normal use.

## Actor input object example

```json
{
  "operation": "venta",
  "propertyType": "apartamento",
  "cities": [
    "Bogotá"
  ],
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

The results as dataset 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 = {
    "cities": [
        "Bogotá"
    ],
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/metrocuadrado-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 = {
    "cities": ["Bogotá"],
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("hipersoft/metrocuadrado-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 '{
  "cities": [
    "Bogotá"
  ],
  "maxItems": 50
}' |
apify call hipersoft/metrocuadrado-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hipersoft/metrocuadrado-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/BxHAAqFTlmf7358Lw/builds/3fe5bzIxK4zpD2cB4/openapi.json
