# Infocasas Bolivia Scraper (`qoqa/infocasas-bolivia-scraper`) Actor

Extract real estate listings from InfoCasas.com.bo, Bolivia's leading property portal.

- **URL**: https://apify.com/qoqa/infocasas-bolivia-scraper.md
- **Developed by:** [Qo Qa](https://apify.com/qoqa) (community)
- **Categories:** Real estate
- **Stats:** 6 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## InfoCasas Bolivia Scraper

Scrape real estate listings from [InfoCasas.com.bo](https://www.infocasas.com.bo), Bolivia's leading property portal. Extract property data, build agent directories, and monitor new listings.

**Scroll down for Spanish version**

---

### Why InfoCasas Bolivia?

InfoCasas dominates Bolivia's real estate market:
- **97% market share** in online property listings
- **20,000+ active listings** across all departments
- Unique **anticrético** listings (Bolivia-exclusive rental system)

#### Use Cases

- **Market Analysis** — Track property prices and trends across Bolivian cities
- **Investment Research** — Find undervalued properties or emerging neighborhoods
- **Lead Generation** — Build agent directories with contact info and listing counts
- **New Listing Alerts** — Monitor for new properties matching your criteria
- **Price Comparison** — Compare listings across platforms
- **AI/ML Training** — Build datasets for property valuation models

---

### Features

#### Data Extraction
- Property details: prices, bedrooms, bathrooms, area, amenities, GPS coordinates
- **Dual currency**: Automatic conversion between USD and Bolivianos (BOB)
- **All transaction types**: Sale, rent, and anticrético
- **All property types**: Houses, apartments, land, commercial, offices, warehouses
- **All 9 departments**: Santa Cruz, La Paz, Cochabamba, Tarija, and more
- Agent info with WhatsApp contacts and verification status
- Full photo galleries (up to 30+ images per listing)

#### Output Modes

**Property Listings** (default)
Extract detailed property data with prices, features, photos, and agent contacts.

**Agent Directory**
Aggregate unique agents/sellers with listing counts and sample properties. Perfect for lead generation and market research.

#### Lead Classification

Each listing includes `contactType` to identify the seller:
- `agency` — Real estate agency or franchise (Century 21, RE/MAX, etc.)
- `individual` — Private owner or independent seller
- `unknown` — Unable to determine

#### Monitor Mode

Track new listings over time:
- **State persistence** — Remembers your last run to detect new properties
- **Days filter** — Or just get listings from the last N days
- Perfect for alerts and notifications

#### Image Storage

Download and store property photos in Apify Key-Value Store for offline access.

---

### Cost

- **Compute**: ~$0.07 per 1,000 listings
- **Speed**: ~21 listings per request (~2 seconds)
- **Reliability**: 99%+ success rate

---

### Input

| Field | Type | Description |
|-------|------|-------------|
| `operation` | string | `venta`, `alquiler`, or `anticretico` |
| `propertyType` | string | `inmuebles`, `casas`, `departamentos`, `terrenos`, etc. |
| `department` | string | `santa-cruz`, `la-paz`, `cochabamba`, etc. |
| `neighborhood` | string | Zone name (e.g., `equipetrol`, `calacoto`) |
| `minPrice` / `maxPrice` | number | Price range in USD |
| `minArea` / `maxArea` | number | Area range in m² |
| `bedrooms` / `bathrooms` | number | Minimum rooms |
| `maxResults` | number | Max listings to extract (default: 100) |
| `mode` | string | `listings` or `agents` |
| `includeDetails` | boolean | Visit each property page for complete data |
| `monitorMode.enabled` | boolean | Only return new listings since last run |
| `monitorMode.sinceDays` | number | Get listings from last N days |

#### Example: Property Search

```json
{
  "operation": "venta",
  "propertyType": "casas",
  "department": "santa-cruz",
  "minPrice": 100000,
  "maxPrice": 500000,
  "bedrooms": 3,
  "maxResults": 50
}
````

#### Example: Agent Directory

```json
{
  "operation": "venta",
  "department": "santa-cruz",
  "mode": "agents",
  "maxResults": 200
}
```

#### Example: New Listings Monitor

```json
{
  "operation": "alquiler",
  "department": "la-paz",
  "monitorMode": {
    "enabled": true
  }
}
```

***

### Output

#### Property Listing

```json
{
  "id": "192758228",
  "url": "https://www.infocasas.com.bo/casa-en-venta-zona-oeste/192758228",
  "title": "Hermosa casa en esquina en venta",
  "description": "Casa de 4 dormitorios con piscina...",
  "operation": "venta",
  "propertyType": "Casa",
  "price": {
    "amount": 365000,
    "currency": "USD",
    "amountUSD": 365000,
    "amountBOB": 2530280
  },
  "address": "Barrio Las Palmas, Av. Ibérica",
  "neighborhood": "Oeste",
  "city": "Santa Cruz",
  "department": "Santa Cruz",
  "latitude": -17.7681896,
  "longitude": -63.1976159,
  "bedrooms": 4,
  "bathrooms": 3,
  "totalArea": 574,
  "builtArea": 450,
  "lotArea": 574,
  "condition": "Excelente estado",
  "parkingSpaces": 2,
  "amenities": ["Piscina", "Churrasquera", "Aire Acondicionado"],
  "agent": {
    "id": "292151",
    "name": "Arturo Terrazas",
    "fullName": "Lic. Arturo Terrazas Century 21 Norte",
    "title": "Lic",
    "company": "Century 21 Norte",
    "phone": "+59176632997",
    "whatsapp": "+59176632997",
    "verified": true,
    "contactType": "agency"
  },
  "photos": ["https://cdn1.infocasas.com.uy/repo/img/..."],
  "photoCount": 12,
  "publishedAt": "2024-09-18",
  "updatedAt": "2024-12-20",
  "isFeatured": true,
  "listingStats": {
    "relevanceScore": 85,
    "highlightLevel": 3,
    "pricePerSqm": 636
  },
  "scrapedAt": "2024-12-27T02:30:00.000Z"
}
```

#### Agent Directory Entry

```json
{
  "id": "292151",
  "name": "Arturo Terrazas",
  "fullName": "Lic. Arturo Terrazas Century 21 Norte",
  "title": "Lic",
  "company": "Century 21 Norte",
  "phone": "+59176632997",
  "whatsapp": "+59176632997",
  "verified": true,
  "contactType": "agency",
  "listingCount": 16,
  "sampleListings": [
    {
      "id": "192890217",
      "url": "https://www.infocasas.com.bo/...",
      "title": "Espectacular terreno comercial",
      "priceUSD": 2140000,
      "operation": "venta"
    }
  ],
  "firstSeen": "2024-12-27T02:30:00.000Z",
  "lastSeen": "2024-12-27T02:30:00.000Z"
}
```

***

### Tips

**Maximize data coverage** — Set `maxResults` high (1000+). The scraper extracts ~21 listings per search page automatically.

**Target specific zones** — Use `neighborhood` with zone names: `equipetrol`, `urbari`, `calacoto`, `sopocachi`, `san-miguel`.

**Get complete data** — Enable `includeDetails` to visit each property page. Slower but captures description, all photos, and exact coordinates.

**Build agent lists** — Use `mode: "agents"` to aggregate sellers by listing count. Great for B2B outreach.

**Set up monitoring** — Enable `monitorMode` and schedule runs to get only new listings each time.

***

### What is Anticrético?

A unique Bolivian rental system. Instead of monthly rent, tenants provide a large deposit ($10,000–$100,000 USD) for 1–2 years. The owner uses this money interest-free and returns the full amount when the contract ends.

***

### Integrations

#### JavaScript

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('YOUR_USERNAME/infocasas-bolivia-scraper').call({
  operation: 'venta',
  propertyType: 'casas',
  department: 'santa-cruz',
  maxResults: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_TOKEN')

run = client.actor('YOUR_USERNAME/infocasas-bolivia-scraper').call(run_input={
    'operation': 'venta',
    'propertyType': 'casas',
    'department': 'santa-cruz',
    'maxResults': 100,
})

items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

***

### Changelog

- **v1.4** — Agent directory mode, monitor mode, contact type classification, improved agent parsing
- **v1.3** — Agent name parsing (title/company separation), WhatsApp extraction, additional fields
- **v1.2** — Image storage, dual currency support
- **v1.1** — JSON extraction from server data
- **v1.0** — Initial release

***

### Support

Questions? Open an issue on [GitHub](https://github.com) or contact via Apify.

***

## Versión en Español

### Scraper de InfoCasas Bolivia

Extrae listados de propiedades de [InfoCasas.com.bo](https://www.infocasas.com.bo), el portal inmobiliario líder de Bolivia con 97% del mercado.

#### Características

- **Precios en USD y Bolivianos** — Conversión automática con tipo de cambio actualizado
- **Venta, alquiler y anticrético** — Todos los tipos de operación
- **Todos los inmuebles** — Casas, departamentos, terrenos, locales, oficinas
- **Los 9 departamentos** — Santa Cruz, La Paz, Cochabamba, y más
- **Datos de agentes** — WhatsApp, teléfono, verificación
- **Fotos completas** — Hasta 30+ imágenes por propiedad

#### Modos de Extracción

**Listados de Propiedades** (por defecto)
Extrae datos detallados de cada propiedad.

**Directorio de Agentes**
Genera un directorio de agentes/vendedores con cantidad de propiedades y datos de contacto. Ideal para generación de leads.

#### Clasificación de Contactos

Cada listado incluye `contactType`:

- `agency` — Inmobiliaria o franquicia (Century 21, RE/MAX, etc.)
- `individual` — Dueño directo o vendedor independiente
- `unknown` — No se pudo determinar

#### Modo Monitor

Detecta propiedades nuevas desde tu última corrida:

- **Guarda estado** — Recuerda la última ejecución para detectar novedades
- **Filtro por días** — O simplemente obtén propiedades de los últimos N días
- Perfecto para alertas y notificaciones

#### Casos de Uso

- **Análisis de mercado** — Seguimiento de precios y tendencias
- **Investigación de inversiones** — Encontrar propiedades subvaloradas
- **Generación de leads** — Obtener contactos de agentes inmobiliarios
- **Alertas de nuevos listados** — Monitorear propiedades que cumplan tus criterios
- **Comparación de precios** — Analizar el mercado boliviano

#### Ejemplo de Entrada

```json
{
  "operation": "venta",
  "propertyType": "casas",
  "department": "santa-cruz",
  "minPrice": 50000,
  "maxPrice": 200000,
  "bedrooms": 2,
  "maxResults": 50
}
```

#### Ejemplo: Directorio de Agentes

```json
{
  "operation": "venta",
  "department": "santa-cruz",
  "mode": "agents",
  "maxResults": 200
}
```

#### ¿Qué es el Anticrético?

Sistema de alquiler único de Bolivia. El inquilino entrega un depósito grande ($10,000–$100,000 USD) por 1–2 años en lugar de pagar alquiler mensual. El propietario devuelve el monto completo al finalizar el contrato.

#### Soporte

¿Preguntas? Contacta vía Apify o GitHub.

# Actor input Schema

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

Buy, rent, or anticrético | Comprar, alquilar, o anticrético

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

Type of property | Tipo de propiedad

## `department` (type: `string`):

Department in Bolivia | Departamento de Bolivia

## `neighborhood` (type: `string`):

Neighborhood, e.g. 'calacoto' | Barrio, ej: 'calacoto'

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

Minimum price | Precio mínimo

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

Maximum price | Precio máximo

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

Minimum size | Tamaño mínimo

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

Maximum size | Tamaño máximo

## `bedrooms` (type: `integer`):

Minimum bedrooms | Mínimo de dormitorios

## `bathrooms` (type: `integer`):

Minimum bathrooms | Mínimo de baños

## `maxResults` (type: `integer`):

How many listings to get | Cuántas propiedades obtener

## `mode` (type: `string`):

Get properties or agent contacts | Obtener propiedades o contactos de agentes

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

Get all property info (slower) | Obtener toda la info (más lento)

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

Scrape specific URLs | Extraer URLs específicas

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

Proxy settings | Configuración de proxy

## `imageStorage` (type: `object`):

Download property photos | Descargar fotos

## `monitorMode` (type: `object`):

Track new listings | Detectar nuevas propiedades

## Actor input object example

```json
{
  "operation": "venta",
  "propertyType": "inmuebles",
  "department": "",
  "maxResults": 100,
  "mode": "listings",
  "includeDetails": false,
  "startUrls": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "imageStorage": {
    "enabled": false,
    "maxImagesPerListing": 5,
    "downloadInFastMode": false,
    "storeName": "property-images",
    "rateLimitMs": 200
  },
  "monitorMode": {
    "enabled": false
  }
}
```

# 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": [],
    "proxyConfiguration": {
        "useApifyProxy": true
    },
    "imageStorage": {
        "enabled": false,
        "maxImagesPerListing": 5,
        "downloadInFastMode": false,
        "storeName": "property-images",
        "rateLimitMs": 200
    },
    "monitorMode": {
        "enabled": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("qoqa/infocasas-bolivia-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": [],
    "proxyConfiguration": { "useApifyProxy": True },
    "imageStorage": {
        "enabled": False,
        "maxImagesPerListing": 5,
        "downloadInFastMode": False,
        "storeName": "property-images",
        "rateLimitMs": 200,
    },
    "monitorMode": { "enabled": False },
}

# Run the Actor and wait for it to finish
run = client.actor("qoqa/infocasas-bolivia-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "imageStorage": {
    "enabled": false,
    "maxImagesPerListing": 5,
    "downloadInFastMode": false,
    "storeName": "property-images",
    "rateLimitMs": 200
  },
  "monitorMode": {
    "enabled": false
  }
}' |
apify call qoqa/infocasas-bolivia-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=qoqa/infocasas-bolivia-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Infocasas Bolivia Scraper",
        "description": "Extract real estate listings from InfoCasas.com.bo, Bolivia's leading property portal.",
        "version": "1.4",
        "x-build-id": "mvMFcvBvm91EhloqC"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/qoqa~infocasas-bolivia-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-qoqa-infocasas-bolivia-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/qoqa~infocasas-bolivia-scraper/runs": {
            "post": {
                "operationId": "runs-sync-qoqa-infocasas-bolivia-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/qoqa~infocasas-bolivia-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-qoqa-infocasas-bolivia-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "operation"
                ],
                "properties": {
                    "operation": {
                        "title": "Operation / Operación",
                        "enum": [
                            "venta",
                            "alquiler",
                            "anticretico"
                        ],
                        "type": "string",
                        "description": "Buy, rent, or anticrético | Comprar, alquilar, o anticrético",
                        "default": "venta"
                    },
                    "propertyType": {
                        "title": "Property Type / Tipo",
                        "enum": [
                            "inmuebles",
                            "casas",
                            "departamentos",
                            "terrenos",
                            "locales",
                            "oficinas",
                            "edificios",
                            "galpones"
                        ],
                        "type": "string",
                        "description": "Type of property | Tipo de propiedad",
                        "default": "inmuebles"
                    },
                    "department": {
                        "title": "Region / Región",
                        "enum": [
                            "",
                            "santa-cruz",
                            "la-paz",
                            "cochabamba",
                            "tarija",
                            "sucre",
                            "oruro",
                            "potosi",
                            "beni",
                            "pando"
                        ],
                        "type": "string",
                        "description": "Department in Bolivia | Departamento de Bolivia",
                        "default": ""
                    },
                    "neighborhood": {
                        "title": "Zone / Zona",
                        "type": "string",
                        "description": "Neighborhood, e.g. 'calacoto' | Barrio, ej: 'calacoto'"
                    },
                    "minPrice": {
                        "title": "Min Price (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum price | Precio mínimo"
                    },
                    "maxPrice": {
                        "title": "Max Price (USD)",
                        "type": "integer",
                        "description": "Maximum price | Precio máximo"
                    },
                    "minArea": {
                        "title": "Min Area (m²)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum size | Tamaño mínimo"
                    },
                    "maxArea": {
                        "title": "Max Area (m²)",
                        "type": "integer",
                        "description": "Maximum size | Tamaño máximo"
                    },
                    "bedrooms": {
                        "title": "Bedrooms / Dormitorios",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Minimum bedrooms | Mínimo de dormitorios"
                    },
                    "bathrooms": {
                        "title": "Bathrooms / Baños",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Minimum bathrooms | Mínimo de baños"
                    },
                    "maxResults": {
                        "title": "Max Results / Límite",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "How many listings to get | Cuántas propiedades obtener",
                        "default": 100
                    },
                    "mode": {
                        "title": "Output Mode / Modo",
                        "enum": [
                            "listings",
                            "agents"
                        ],
                        "type": "string",
                        "description": "Get properties or agent contacts | Obtener propiedades o contactos de agentes",
                        "default": "listings"
                    },
                    "includeDetails": {
                        "title": "Full Details / Detalles",
                        "type": "boolean",
                        "description": "Get all property info (slower) | Obtener toda la info (más lento)",
                        "default": false
                    },
                    "startUrls": {
                        "title": "Custom URLs",
                        "type": "array",
                        "description": "Scrape specific URLs | Extraer URLs específicas",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "proxyConfiguration": {
                        "title": "Proxy",
                        "type": "object",
                        "description": "Proxy settings | Configuración de proxy"
                    },
                    "imageStorage": {
                        "title": "Save Images / Guardar Fotos",
                        "type": "object",
                        "description": "Download property photos | Descargar fotos",
                        "properties": {
                            "enabled": {
                                "title": "Enable / Activar",
                                "type": "boolean",
                                "description": "Save images | Guardar imágenes"
                            },
                            "maxImagesPerListing": {
                                "title": "Max per Property",
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 30,
                                "description": "Images per property | Fotos por propiedad"
                            },
                            "downloadInFastMode": {
                                "title": "Download in Fast Mode",
                                "type": "boolean",
                                "description": "Download even without Full Details | Descargar sin Detalles Completos"
                            },
                            "storeName": {
                                "title": "Store Name",
                                "type": "string",
                                "description": "Key-Value Store name | Nombre del almacén"
                            },
                            "rateLimitMs": {
                                "title": "Delay (ms)",
                                "type": "integer",
                                "minimum": 100,
                                "maximum": 2000,
                                "description": "Wait between downloads | Espera entre descargas"
                            }
                        }
                    },
                    "monitorMode": {
                        "title": "Monitor / Monitoreo",
                        "type": "object",
                        "description": "Track new listings | Detectar nuevas propiedades",
                        "properties": {
                            "enabled": {
                                "title": "Enable / Activar",
                                "type": "boolean",
                                "description": "Only new listings | Solo propiedades nuevas"
                            },
                            "sinceDays": {
                                "title": "Days Back / Días",
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 30,
                                "description": "Get listings from last N days | Propiedades de los últimos N días"
                            },
                            "stateKeyName": {
                                "title": "State Key",
                                "type": "string",
                                "description": "Custom state key | Clave de estado personalizada"
                            }
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
