# Estrenarvivienda.com Scraper - Inmuebles en Venta Colombia (`recordsdata/estrenarvivienda-scraper`) Actor

Scrape new-build homes, projects and builders from Estrenarvivienda.com (Colombia): prices, delivery dates, VIS. Export CSV, Excel, JSON or XML.

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

## Pricing

from $18.00 / 1,000 listing records

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

![RecordsData](https://api.apify.com/v2/key-value-stores/AAm3a1h3Z9nYfrvh9/records/banner?v=3)

## 🏗️ Estrenarvivienda.com Scraper - New-Build Homes in Colombia

> 🚀 **Export Colombia's new-build housing market in minutes.** About 1,600 unit types in about 740 projects from 122 builders, with prices in COP, areas, delivery quarters, VIS/VIP segment, coordinates and builder data. No login, no API key. Export to JSON, CSV or Excel.

**Estrenarvivienda.com Scraper** collects the full catalog of [Estrenarvivienda.com](https://www.estrenarvivienda.com), the Colombian portal where builders publish apartments, studios, houses and lots they are selling brand new ("vivienda nueva"). Three record types come out of one actor: **unit types** (the thing a buyer compares), **projects** (price, area and bedroom ranges, delivery date, number of units) and **builders** (portfolio size, cities, verified page URL). Export to JSON, CSV, Excel, XML or HTML, or read it through the Apify API.

> **Quick answer:** Estrenarvivienda.com Scraper returns new-build homes for sale in Colombia from Estrenarvivienda.com: price in COP, price per m2, area, bedrooms, bathrooms, city, neighborhood, GPS coordinates, delivery quarter, VIS/VIP segment, amenities, builder name and project data, as JSON, CSV or Excel. Filter by city, price, stratum or collection, or pass page URLs. It needs no login, API key or proxy. Start with `maxItems` 10 to check the fields.

| 🎯 Target audience | 💡 Primary use cases |
|---|---|
| Real-estate investors, brokers, mortgage lenders, PropTech teams, market analysts | Price per m2 by city, delivery-pipeline tracking, VIS/VIP subsidy research, builder lead lists, new-listing alerts |

### 📋 What does the Estrenarvivienda.com Scraper do?

It reads the portal's public catalog and returns clean, typed rows. Each **listing** row is one unit type of a project, for example "Apartamento de 45.42 m2 en Distrito Americas", with its price, down payment, separation fee, delivery quarter, project status and the builder behind it. Search by **names** (department, city, zone, neighborhood, amenity, builder) and the actor resolves them to the portal's own filters, so you never copy ids.

In a cloud test on 2026-10-11, a batch of 14 small runs (listings, projects, builders, page URLs, unit ids, filters, collections, details) all succeeded, median 4.1 seconds, slowest 8.9 seconds.

### 📊 Output: which fields do you get?

101 fields across the three record types. Fields the portal does not publish for a row are left out instead of being filled with empty values.

| Field | Type | Example |
|---|---|---|
| `price` | number (COP) | 355000000 |
| `pricePerM2` | number | 7815940 |
| `areaBuilt` | number (m2) | 45.42 |
| `bedrooms` | number | 3 |
| `city` | string | Bogotá |
| `deliveryLabel` | string | 2029 - T4 |
| `housingSegment` | string | VIS |
| `amenities` | string array | \["Gimnasio"] |

All field groups:

| Group | Fields |
|---|---|
| Identity | `recordType`, `listingId`, `url`, `sourceSite`, `country`, `operation`, `position`, `changeType` |
| Unit | `propertyType`, `title`, `description`, `bedrooms`, `bathrooms`, `areaBuilt`, `areaLand` (lots), `parkingSpaces`, `parkingType`, `parkingRatio`, `stratum`, `stratumLabel`, `finishes` |
| Price and financing | `price`, `currency`, `priceLabel`, `promoLabel`, `pricePerM2`, `separationFee`, `downPaymentPercent`, `downPaymentAmount`, `requiredIncome`, `creditType`, `housingSegment` |
| Location | `address`, `neighborhood`, `zone`, `city`, `region`, `latitude`, `longitude` |
| Project and delivery | `projectName`, `projectUrl`, `projectStatus`, `condition`, `deliveryYear`, `deliveryQuarter`, `deliveryLabel`, `monthsToDelivery`, `isImmediateDelivery`, `totalProjectUnits`, `isOutlet`, `outletDescription`, `collections`, `amenities` |
| Detail page (optional) | `publishedAt`, `garageType`, `garageFeatures`, `view`, `levels`, `livingRoom`, `balconyArea`, `interiorFeatures`, `finishesDescription`, `towers`, `floorsPerTower`, `elevatorsPerTower`, `unitsPerFloor`, `officeHours`, `videoUrl`, `floorPlans` |
| Media and builder | `images`, `imageCount`, `agencyName`, `agencyUrl`, `agencyLogoUrl`, `agencyPhone`, `agencyWhatsapp`, `isPrivateSeller`, `raw` (leftovers such as nearby places), `scrapedAt` |
| Project and builder rows | `priceMin`, `priceMax`, `areaMin`, `areaMax`, `bedroomsMin`, `bedroomsMax`, `bathroomsMin`, `bathroomsMax`, `housingSegments`, `propertyTypes`, `cities`, `neighborhoods`, `projectCount`, `listingCount`, `listingIds`, `builderProjects` |

How complete is it? On a 700-row test (details on), `price`, `pricePerM2`, `city`, `neighborhood`, `latitude`, `longitude`, `images`, `agencyName` and `publishedAt` were filled in 100 percent of rows, `bedrooms`, `bathrooms` and `areaBuilt` in 98.3 percent (lots have none), `address` in 79.7 percent and `stratum` in 91 percent. Site-optional fields are lower: `videoUrl` 27 percent, `requiredIncome` 9 percent, `balconyArea` 15 percent.

#### Real sample records (cloud test run, shortened)

A listing with detail page data (shortened):

```json
{
  "recordType": "listing",
  "listingId": "52327",
  "url": "https://www.estrenarvivienda.com/distrito-americas/52327",
  "propertyType": "Apartamento",
  "title": "Apartamento de 45.42 m² en Distrito Américas",
  "projectName": "Distrito Américas",
  "price": 355000000,
  "currency": "COP",
  "priceLabel": "from",
  "pricePerM2": 7815940,
  "downPaymentPercent": 30,
  "housingSegment": "VIS",
  "address": "Avenida de las Américas Calle 9 No. 58 - 51 Frente a Outlet de las Américas",
  "neighborhood": "Puente Aranda",
  "city": "Bogotá",
  "latitude": 4.627841,
  "longitude": -74.115125,
  "bedrooms": 3,
  "bathrooms": 2,
  "areaBuilt": 45.42,
  "stratum": 3,
  "condition": "off-plan",
  "projectStatus": "Sobre Planos",
  "deliveryYear": 2029,
  "deliveryQuarter": 4,
  "deliveryLabel": "2029 - T4",
  "monthsToDelivery": 36,
  "totalProjectUnits": 262,
  "amenities": ["Bicicleteros", "Gimnasio"],
  "publishedAt": "2026-10-08",
  "towers": 1,
  "floorsPerTower": 26,
  "elevatorsPerTower": 2,
  "unitsPerFloor": 12,
  "agencyName": "GRUPO ACCANTO",
  "agencyUrl": "https://www.estrenarvivienda.com/constructora-grupo-accanto"
}
```

A project row (shortened):

```json
{
  "recordType": "project",
  "url": "https://www.estrenarvivienda.com/saman-del-encanto/cali",
  "title": "Samán Del Encanto",
  "currency": "COP",
  "priceMin": 164217807,
  "housingSegments": ["VIP"],
  "city": "Cali",
  "bedroomsMin": 1,
  "areaMin": 40,
  "deliveryLabel": "2027 - T2",
  "listingCount": 1,
  "listingIds": ["48682"]
}
```

### ✨ Why choose this Actor?

- **Whole catalog, three record types.** Units, projects and builders from one actor, joined by `projectUrl`, `agencyUrl` and `listingIds`.
- **Search by name.** Departments, cities, zones, neighborhoods, amenities and builders are matched against the portal's live filter lists. A typo returns one error row that lists the valid names instead of a silent empty run.
- **Page URLs work too.** Paste a unit, project, builder, city or category page and the actor reads the same search the page shows.
- **Monitor mode.** Turn on **Only new or changed** to get only new or repriced unit types, flagged in `changeType`.
- **Light and fast.** Plain HTTP, no browser, no proxy, 256 MB of memory.

### 📈 How does it compare to other Colombian real-estate scrapers?

No Apify actor for Estrenarvivienda.com exists on the Store. The closest options are actors for other Colombian portals and doing it by hand. Pages read on 2026-10-11.

| Aspect | This actor | Metrocuadrado and Fincaraiz actors | Manual copy from the portal |
|---|---|---|---|
| Coverage | New-build sale only, 3 record types | Resale and rental on other portals | Whole site, one page at a time |
| Fields | 101 across units, projects, builders | About 40 to 49 per listing, shown on their pages | Whatever you copy |
| Monitoring | Only new or changed, price change flag | Metrocuadrado shows incremental mode and alerts | None |
| Price per 1,000 | $18.00 per unit row | From $1.50 | Your time |

Honest summary: on price we are now well above the two actors checked, at $18.00 per 1,000 unit rows against their $1.50 start (Metrocuadrado shows a $0.0005 start fee on top, and Ciencuadras and other Fincaraiz actors list $2.00 to $3.00). They cover resale, rentals and far bigger catalogs, and Metrocuadrado also lists notifications to Slack and Telegram, which this actor lacks. Choose this actor for new-build projects, delivery dates, VIS data and builder records, which those portals do not carry. For resale, rentals or the lowest price, use them.

### 🚀 How to scrape Estrenarvivienda.com

1. Create a free account at [console.apify.com](https://console.apify.com) (new accounts get free monthly credit).
2. Open the Actor and pick the **Record type**: unit types (`listings`), `projects` or `builders`.
3. Add filters or leave them empty. Example: Cities `Bogota`, Stratum `3`, Bedrooms `2`, Housing segment `VIS`.
4. Set **Max Items** (start with 10) and click **Start**.
5. Open the **Output** tab and download JSON, CSV, Excel, XML or HTML, or call the dataset through the API.

### ⚙️ Input parameters

| Input | Meaning |
|---|---|
| `entity` | `listings`, `projects` or `builders` |
| `cities`, `departments`, `zones` | Place names, matched to portal filters |
| `minPrice`, `maxPrice` | Price range in COP |
| `bedrooms`, `stratum` | Room count and socioeconomic stratum |
| `includeDetails` | Adds detail page fields (extra event) |
| `onlyNew` | Monitor: new or changed rows only |
| `maxItems` | Row limit |

One short input example:

```json
{
  "entity": "listings",
  "cities": ["Medellín"],
  "bedrooms": ["2", "3"],
  "maxPrice": 600000000,
  "sortBy": "priceAsc",
  "maxItems": 50
}
```

Other ways to choose what to scrape: paste page URLs into **Start URLs** (unit, project, builder, city or category pages), list unit ids in **Listing IDs**, or pick a **Collection** such as outlet, launches, Mi Casa Ya, subsidy collections, immediate delivery or vacation projects.

### 💼 Business use cases

**Real-estate investors and brokers.** Rank projects by `pricePerM2`, delivery quarter and stratum, and compare off-plan (`condition` = `off-plan`) with projects already finished.

**Mortgage lenders and subsidy advisers.** Filter by `housingSegment` (VIS, VIP, No VIS), `downPaymentPercent`, `separationFee` and `requiredIncome` to match buyers with units that fit a subsidy or a credit line.

### 🔌 Automating the scraper

Schedule runs in Apify and send results to Make, Zapier, n8n, Google Sheets, Slack, Airbyte or a webhook, or read the dataset with the Apify API and the JavaScript and Python clients.

### 💰 How much does it cost to scrape Estrenarvivienda.com?

Pay per event. You pay for rows saved to your dataset. These are the live event prices on 2026-10-11:

| Event | Price | Charged for |
|---|---|---|
| Listing record | $0.018 | One unit type |
| Listing detail enrichment | $0.0096 | Extra per unit when **Include detail page data** is on |
| Project record | $0.018 | One project |
| Builder record | $0.012 | One builder |

Worked examples: 1,000 unit types cost 1,000 x $0.018 = $18.00. The same 1,000 with detail page data cost 1,000 x ($0.018 + $0.0096) = $27.60. All 122 builders cost 122 x $0.012 = $1.46. The whole catalog of 1,596 unit types costs about $28.73, or $44.05 with details. Failed lookups, zero-hit searches and invalid input return no charged rows. Max Items stops the run at your limit.

### 🤖 Estrenarvivienda.com Scraper MCP server for AI agents

AI agents can call this Actor through the Apify MCP server at `https://mcp.apify.com?tools=RecordsData/estrenarvivienda-scraper`. Tool description: pick it when an agent needs new-build homes in Colombia with price in COP, price per m2, delivery quarter, VIS or VIP segment, coordinates and builder, or project and builder summaries.

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=RecordsData/estrenarvivienda-scraper"
    }
  }
}
```

Example agent prompt:

> Use the Estrenarvivienda.com Scraper to get 50 VIS apartments in Cali with 2 bedrooms, sorted by lowest price, then list the cheapest five with delivery quarter, down payment percent and builder.

### ❓ Frequently Asked Questions

#### What is Estrenarvivienda.com and what does this Actor read?

Estrenarvivienda.com is a Colombian portal where builders publish new-build apartments, houses, studios and lots for sale. Estrenarvivienda.com Scraper reads its public catalog and returns unit types, projects and builders as rows. On 2026-10-11 the catalog held 1,596 unit types in about 740 projects from 122 builders, and one run can read all of it.

#### Does it need a login, API key or proxy?

No. Estrenarvivienda.com Scraper reads public pages and the portal's public search endpoints over plain HTTP, so you need no portal account, API key or proxy. You only need an Apify account. Cloud tests on 2026-10-11 ran without any proxy.

#### Can I filter by city, price or bedrooms?

Yes. You can filter by department, city, zone, neighborhood, property type, price range, area range, bedrooms, bathrooms, parking, stratum, delivery year, housing segment (VIS, VIP or not), collection, builder and amenities. Names are matched against the portal's own filter lists, and a typo returns one error row that lists the valid names.

#### What is the difference between listing, project and builder rows?

A listing row is one unit type with its own price, area and rooms. A project row groups the unit types of one building project and gives price, area and bedroom ranges plus the delivery quarter. A builder row groups projects and gives portfolio totals, cities and the verified builder page. Pick the type with the Record type input.

#### Does it return rentals or resale homes?

No. The portal sells new-build homes only, so the `operation` field is always `sale`. Some projects are tagged as short-term rental or vacation projects, and you can reach them through the Collection filter, but the Actor does not read resale or long-term rental portals. Use a Metrocuadrado or Fincaraiz actor for those.

#### Does it return seller names, emails or phones?

Only business data. There are no private sellers on this portal, so `isPrivateSeller` is false. The builder's published sales and WhatsApp line is added only if you enable Include builder sales phone. It is a company line, not personal data, and it was present for about 93 percent of rows in a 700-row test.

#### What does Include detail page data add?

It opens one extra page per unit and adds publication date, street address, garage type, view, levels, balcony area, interior features, finishes text, project facts (towers, floors, elevators, units per floor), opening hours, video and floor plans. It costs an extra $0.0096 per unit and makes runs slower, so leave it off if you only need prices and delivery dates.

#### What do the price fields mean?

`price` is the price in COP shown for the unit type, as an integer. `priceLabel` says whether it is a "from", fixed or "up to" price, and `pricePerM2` divides it by the built area. Prices are as published by the builder and can change, which is why the monitor mode compares a price fingerprint on every repeat run.

#### How do I get only new listings?

Switch on Only new or changed, pick a Monitor name and schedule the Actor. The first run returns everything. Later runs return only unit types that are new or whose price changed, with `changeType` set to `new` or `changed`. Use Reset monitor to start from zero, and use a different Monitor name for each saved search.

#### Is there a limit on the free plan?

Yes. Free-plan runs return up to 10 rows, enough to check the fields and the format. Paid plans return as many rows as you set in Max Items, up to the whole catalog. New Apify accounts also include free monthly platform credit, which covers many small test runs.

#### Why does a run return fewer rows than I expected?

Check the filters first. A typo in a city name returns an error row that lists the valid names. The catalog is also small, about 1,600 unit types, and it changes as builders publish or close units, so narrow filters such as one stratum in one zone can legitimately match only a handful of rows.

### 🛡️ Is it legal to scrape Estrenarvivienda.com?

The Actor reads public pages and public search endpoints, with no login. The portal's robots.txt only disallows search, admin and user paths. Its legal notice disclaims the accuracy of listings and forbids reproducing its software, design and brand. The Actor outputs facts only and hosts no photos. Use the data in line with the site's terms and local data-protection law.

### 🔗 Recommended Actors

- **Paginas Amarillas Scraper** for Latin American business directories and builder contact research.
- **MercadoLibre Scraper** for Colombian marketplace listings and prices.
- **Computrabajo Jobs Scraper** for Colombian job market data.
- **Crexi Commercial Real Estate Scraper** for commercial property listings.

> 💡 **Pro Tip:** browse the complete [RecordsData collection](https://apify.com/RecordsData) for more data actors.

**🆘 Need help?** Write to contact.punkrecordsdata@gmail.com.

> **⚠️ Disclaimer:** this is an independent tool, not affiliated with or endorsed by Estrenarvivienda.com. It collects only publicly available data. You are responsible for using the data in line with the site's terms and local data-protection law.

Last updated: 2026-10-11

# Actor input Schema

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

Estrenarvivienda.com pages to read: a unit URL (https://www.estrenarvivienda.com/<project>/<id>), a project page, a builder page (/constructora-<name>), or a category, collection or city page such as /apartamentos/bogota or /vivienda-interes-social. Leave empty to search the whole portal with the filters below.

## `listingIds` (type: `array`):

Unit IDs (the number at the end of a unit URL, for example 51586) to read directly. Added to anything found through the start URLs.

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `entity` (type: `string`):

What each row is: a unit type (listings), a whole development with its price and size ranges (projects), or a builder with its portfolio (builders).

## `sortBy` (type: `string`):

Order of the rows. Newest first is the portal order. Other orders read the whole matching catalog first.

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

Only these property types. Empty means all.

## `departments` (type: `array`):

Colombian departments to include.

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

Cities and municipalities to include.

## `zones` (type: `array`):

City zones by name, for example Chapinero or Norte. Matched against the portal list inside the cities above when you set them.

## `neighborhoods` (type: `array`):

Neighborhoods by name, for example Chicó or Cedritos.

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

Lowest unit price in Colombian pesos.

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

Highest unit price in Colombian pesos.

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

Smallest built area in square meters.

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

Largest built area in square meters.

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

Number of bedrooms to include (any of them).

## `bathrooms` (type: `array`):

Number of bathrooms to include (any of them).

## `parking` (type: `array`):

Parking spaces per unit (any of them). Communal means shared parking.

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

Colombian stratum 1 to 6, Rural, or Por definir (to be defined).

## `deliveryYears` (type: `array`):

Planned delivery years to include.

## `housingSegment` (type: `string`):

VIS and VIP are the subsidised social-interest segments; the other segment is everything else.

## `collection` (type: `string`):

Only units from one of the portal collections.

## `builders` (type: `array`):

Keep only units from builders whose name contains one of these texts, for example Amarilo or Bolivar.

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

Projects with any of these amenities.

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

Open each unit page for the publication date, address, private area, garage type, view, levels, balcony, interior features, finishes text, tower data, office hours, video and floor plans. Billed as an extra event per row with data. Applies to listings only.

## `includeCollections` (type: `boolean`):

Add the list of portal collections each unit or project belongs to (outlet, launches, premium, and so on). Adds about a dozen requests per run.

## `includeContactDetails` (type: `boolean`):

Add the builder sales phone and WhatsApp line published on the portal. Business contact only, no private sellers exist on this portal.

## `onlyNew` (type: `boolean`):

Return only rows not delivered by earlier runs with the same filters, or whose price changed. Marks each row new or changed.

## `stateKey` (type: `string`):

Optional name for the saved monitor state. Use different names to keep separate watches with the same filters.

## `resetSeen` (type: `boolean`):

Forget everything delivered so far and start the monitor over.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.estrenarvivienda.com/apartamentos/bogota"
    }
  ],
  "listingIds": [],
  "maxItems": 10,
  "entity": "listings",
  "sortBy": "newest",
  "propertyTypes": [],
  "departments": [],
  "cities": [],
  "zones": [],
  "neighborhoods": [],
  "maxPrice": 100000000000,
  "maxArea": 1000000,
  "bedrooms": [],
  "bathrooms": [],
  "parking": [],
  "stratum": [],
  "deliveryYears": [],
  "housingSegment": "any",
  "collection": "any",
  "builders": [],
  "amenities": [],
  "includeDetails": false,
  "includeCollections": false,
  "includeContactDetails": false,
  "onlyNew": false,
  "stateKey": "",
  "resetSeen": false
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields

## `fullData` (type: `string`):

Complete dataset with every field

# 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.estrenarvivienda.com/apartamentos/bogota"
        }
    ],
    "maxItems": 10,
    "minPrice": 0,
    "maxPrice": 100000000000,
    "minArea": 0,
    "maxArea": 1000000
};

// Run the Actor and wait for it to finish
const run = await client.actor("recordsdata/estrenarvivienda-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.estrenarvivienda.com/apartamentos/bogota" }],
    "maxItems": 10,
    "minPrice": 0,
    "maxPrice": 100000000000,
    "minArea": 0,
    "maxArea": 1000000,
}

# Run the Actor and wait for it to finish
run = client.actor("recordsdata/estrenarvivienda-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.estrenarvivienda.com/apartamentos/bogota"
    }
  ],
  "maxItems": 10,
  "minPrice": 0,
  "maxPrice": 100000000000,
  "minArea": 0,
  "maxArea": 1000000
}' |
apify call recordsdata/estrenarvivienda-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,recordsdata/estrenarvivienda-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/zqMTtcTlOPTAx9zgd/builds/9udt5CYOSSanRfd0A/openapi.json
