# Pincali Scraper (`solidcode/pincali-scraper`) Actor

\[💰 $1.0 / 1K] Extract Mexican real estate listings from Pincali — homes, land, and commercial for sale, rent, pre-construction, and foreclosure. Get price, beds, baths, area, amenities, description, GPS, agent contact, and photos.

- **URL**: https://apify.com/solidcode/pincali-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Real estate, Automation, Developer tools
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 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/platform/actors/running/actors-in-store#pay-per-event

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

## Pincali Scraper

Pull Mexican real estate listings from Pincali (pincali.com) at scale — asking price in MXN or USD, bedrooms, bathrooms, parking, construction and lot area, GPS coordinates, full photo galleries, amenities, and the listing agent and agency behind every property. Cover for-sale, rental, pre-construction, and foreclosure inventory across all of Mexico from a single run. Built for real estate investors, brokerages, relocation firms, and market analysts who need clean, structured Pincali data without hand-building search URLs or copying listings one page at a time.

### Why This Scraper?

- **Four operation types in one actor** — for sale, for rent, pre-construction (development), and foreclosure, switched from a single dropdown. Most Pincali tools only handle sale listings.
- **16 property types across three segments** — residential (house, condo house, apartment, villa, country house, ranch, land), commercial (office, retail, mall unit, building, commercial warehouse, commercial land), and industrial (industrial warehouse, industrial plant, industrial land) — filter to exactly the segment you track.
- **Guided search builder — no URL crafting required** — pick operation, property types, locations, and price/bedroom/bathroom/area filters from plain dropdowns and the actor builds every Pincali search for you. Non-technical users never touch the site.
- **Batch many searches and cities in one run** — supply a list of locations and property types and each combination is searched separately, or paste a mix of search-result URLs and individual property URLs together.
- **MXN and USD price bounds plus room and size filters** — minimum/maximum peso price, minimum bedrooms and bathrooms, and minimum/maximum construction area in square meters, all applied at the source.
- **Real GPS coordinates per listing** — latitude and longitude pulled from each property's embedded map, ready to plot, geofence, or reverse-geocode (occasionally withheld when a listing hides its exact location).
- **Up to 60+ photos per property** — the entire gallery as a clean URL list, plus a cover image and a photo count, not just the thumbnail.
- **Agent and agency attribution on every listing** — the listing agent name and the agency name behind each property, ideal for mapping brokerage market share.
- **Summary-or-full-detail toggle** — run a fast, light pass that returns search-card fields, or follow every listing for the complete description, full gallery, all amenities, map coordinates, and agent/agency names.

### Use Cases

**Market Research**
- Map for-sale and rental inventory by city, state, or nationwide
- Compare asking prices per square meter across Mexican markets
- Track pre-construction supply in growth corridors like the Riviera Maya and Bajío
- Benchmark residential vs. commercial vs. industrial listing volumes

**Investment Analysis**
- Filter foreclosure (remate) listings for below-market opportunities
- Compare price bands within a colonia using bedroom, bathroom, and area filters
- Build price-per-square-meter datasets for underwriting and comps
- Spot mispriced listings by pairing tight price bounds with size filters

**Lead Generation**
- Build agent and agency name lists by target city to map who is active where
- Identify the most active brokerages in a market by listing count
- Segment prospects by property type and operation
- Feed structured listings into your CRM or outreach pipeline

**Relocation & Property Search**
- Surface furnished-ready apartments for rent in expat hubs like Playa del Carmen and Mérida
- Filter houses by minimum bedrooms and bathrooms for family relocations
- Compile shortlists with full galleries, amenities, and map pins for clients
- Compare neighborhoods by inventory, price, and property mix

**Data Enrichment & Integration**
- Enrich existing property databases with current Pincali pricing and specs
- Power dashboards and market reports with fresh listing data
- Build alerting systems for new inventory in target locations
- Geocode and cluster listings using the latitude/longitude fields

### Getting Started

#### Search by Location

The simplest way to start — houses for sale in one city:

```json
{
    "operation": "venta",
    "propertyTypes": ["casa"],
    "locations": ["Merida Yucatan"],
    "maxResults": 50
}
````

#### Filtered Search

Apartments for rent within a budget, with a minimum bedroom count:

```json
{
    "operation": "renta",
    "propertyTypes": ["departamento"],
    "locations": ["Playa del Carmen Quintana Roo"],
    "maxPrice": 25000,
    "minBedrooms": 2,
    "maxResults": 100
}
```

#### Using Pincali URLs

Paste any Pincali search-result page or individual property page — filters are read straight from each URL:

```json
{
    "startUrls": [
        "https://www.pincali.com/inmuebles/casas-en-venta-en-merida-yucatan",
        "https://www.pincali.com/inmueble/casa-en-venta-en-merida"
    ],
    "maxResults": 200
}
```

#### Full-Featured Example

```json
{
    "operation": "venta",
    "propertyTypes": ["casa", "casa-en-condominio", "villa"],
    "locations": ["Monterrey Nuevo Leon", "Guadalajara Jalisco"],
    "minPrice": 1500000,
    "maxPrice": 8000000,
    "minBedrooms": 3,
    "minBathrooms": 2,
    "minArea": 120,
    "maxArea": 400,
    "scrapeDetails": true,
    "maxResults": 500
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `startUrls` | string\[] | `[]` | One or more Pincali URLs — search-result pages or individual property pages. Filters are read from each URL, so the Search Filters below are ignored when this is set. Use it when you already built a search on the site. |

#### Search Filters

Applied only when `startUrls` is empty.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `operation` | select | `For sale` | For sale, For rent, Pre-construction (development), or Foreclosure. |
| `propertyTypes` | select\[] | `House (Casa)` | One or more property kinds to include. Leave empty for all types. |
| `locations` | string\[] | `[]` | Mexican cities or municipalities, e.g. "Merida Yucatan", "Monterrey Nuevo Leon", or a Mexico City borough. Include the state for best results. Each location is searched separately; empty searches all of Mexico. |

#### Price, Rooms & Size

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `minPrice` | integer | — | Only include listings at or above this price, in Mexican pesos. |
| `maxPrice` | integer | — | Only include listings at or below this price, in Mexican pesos. |
| `minBedrooms` | integer | — | Only include listings with at least this many bedrooms. |
| `minBathrooms` | integer | — | Only include listings with at least this many bathrooms. |
| `minArea` | integer | — | Minimum construction area, in square meters. |
| `maxArea` | integer | — | Maximum construction area, in square meters. |
| `sort` | select | `Newest first` | Preferred collection order: Newest first, Oldest first, Price: high to low, or Price: low to high. |

#### Output

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `scrapeDetails` | boolean | `true` | Follow each listing to its property page for the full description, complete photo gallery, all amenities and features, map coordinates, and agent/agency. Turn off for a faster, lighter run that returns only search-result summary fields. |
| `maxResults` | integer | `100` | Maximum listings to collect across all URLs and searches. Set to 0 for as many as possible (up to a built-in cap of 10,000). Start with 10-50 to test, then increase. |

### Output

Here is a representative result with full details enabled:

```json
{
    "propertyId": "76a69821-5b71-42fe-9227-7b3f2a496659",
    "title": "Casa en venta en Mérida, Yucatán",
    "description": "Hermosa casa de una planta en privada con alberca, ubicada al norte de Mérida...",
    "operation": "venta",
    "propertyType": "casa",
    "price": 4850000,
    "currency": "MXN",
    "priceText": "$4,850,000 MXN",
    "bedrooms": 3,
    "bathrooms": 3,
    "parkingSpaces": 2,
    "constructionArea": 210,
    "lotArea": 300,
    "propertyAge": "Nuevo",
    "furnished": false,
    "amenities": ["Alberca", "Seguridad", "Jardín", "Aire acondicionado"],
    "features": ["Cocina integral", "Cuarto de servicio"],
    "state": "Yucatán",
    "city": "Mérida",
    "neighborhood": "Temozón Norte",
    "fullAddress": "Temozón Norte, Mérida, Yucatán",
    "latitude": 21.0725,
    "longitude": -89.6103,
    "coverImage": "https://cdn.easybroker.com/property_images/example-cover.jpg",
    "images": [
        "https://cdn.easybroker.com/property_images/example-1.jpg",
        "https://cdn.easybroker.com/property_images/example-2.jpg"
    ],
    "imageCount": 42,
    "agentName": "María López",
    "agencyName": "Inmuebles Yucatán",
    "publishedAt": "2026-05-18",
    "scrapedAt": "2026-07-02T14:30:00Z",
    "url": "https://www.pincali.com/inmueble/casa-en-venta-en-merida-76a69821-5b71-42fe-9227-7b3f2a496659"
}
```

#### Core Fields

| Field | Type | Description |
|-------|------|-------------|
| `propertyId` | string | Unique Pincali listing identifier |
| `title` | string | Listing title |
| `description` | string | Full listing description (with full details on) |
| `operation` | string | `venta`, `renta`, `desarrollo`, or `remate` |
| `propertyType` | string | Property kind, e.g. `casa`, `departamento`, `terreno` |
| `url` | string | Canonical listing URL |
| `scrapedAt` | string | ISO timestamp of data extraction |

#### Pricing

| Field | Type | Description |
|-------|------|-------------|
| `price` | number | Numeric asking price |
| `currency` | string | `MXN` or `USD` |
| `priceText` | string | Price exactly as shown on the listing |

#### Details

| Field | Type | Description |
|-------|------|-------------|
| `bedrooms` | number | Number of bedrooms (may be empty for land) |
| `bathrooms` | number | Number of bathrooms (may be empty for land) |
| `parkingSpaces` | number | Number of parking spaces |
| `constructionArea` | number | Built area in square meters |
| `lotArea` | number | Land/lot area in square meters |
| `propertyAge` | string | Age of the property as listed |
| `furnished` | boolean | Whether the property is furnished. May be empty when the listing does not state it — common on for-sale homes, more often set on rentals. |
| `amenities` | string\[] | Amenities such as pool, elevator, security, A/C, garden |
| `features` | string\[] | Additional listed features |

#### Location & Map

| Field | Type | Description |
|-------|------|-------------|
| `state` | string | Mexican state |
| `city` | string | City or municipality |
| `neighborhood` | string | Colonia / neighborhood |
| `fullAddress` | string | Full address string when available |
| `latitude` | number | GPS latitude (occasionally empty when the listing hides its exact location) |
| `longitude` | number | GPS longitude |

#### Media & Agent

| Field | Type | Description |
|-------|------|-------------|
| `coverImage` | string | Primary photo URL |
| `images` | string\[] | All photo URLs for the listing |
| `imageCount` | number | Number of photos |
| `agentName` | string | Listing agent name |
| `agencyName` | string | Agency / organization name |
| `publishedAt` | string | Date the listing was published |

### Tips for Best Results

- **Start small** — set `maxResults` to 10-50 on your first run to confirm the data matches your needs, then scale up.
- **Always include the state with a city** — "Merida Yucatan" resolves far more reliably than "Merida" alone, and disambiguates same-named cities across states.
- **Use pre-construction as `desarrollo`** — development/pre-construction inventory lives under the `desarrollo` operation; it is the right choice for tracking new-build supply before completion.
- **Toggle detail for speed vs. depth** — turn `scrapeDetails` off for a fast inventory sweep (title, price, beds, baths, area, city); turn it on when you need descriptions, full galleries, amenities, map pins, and agent/agency.
- **Batch cities and types together** — list several locations and property types in one run; each combination is searched separately so you get complete coverage without multiple runs.
- **Land listings skip rooms** — `terreno` (land) results have no bedrooms or bathrooms; treat those fields as optional when your workflow mixes land with houses.
- **Filter with price and size, not sort** — narrow with `minPrice`/`maxPrice` and `minArea`/`maxArea` for precise result sets; these are applied at the source and are the most dependable way to shape your output.

### Pricing

**From $1.00 per 1,000 results** — a third cheaper than comparable Pincali tools on the store. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.12 | $0.12 | $0.11 | $0.10 |
| 1,000 | $1.20 | $1.15 | $1.05 | $1.00 |
| 10,000 | $12.00 | $11.50 | $10.50 | $10.00 |
| 100,000 | $120.00 | $115.00 | $105.00 | $100.00 |

A "result" is any property row in the output dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor is designed for legitimate real estate research, market analysis, and lead generation. You are responsible for complying with applicable laws and Pincali's Terms of Service. Do not use extracted data for spam, harassment, or any unlawful purpose, and handle any personal data (such as agent names) in line with applicable privacy regulations.

# Actor input Schema

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

Paste one or more Pincali URLs — either search-result pages (e.g. https://www.pincali.com/inmuebles/casas-en-venta-en-merida-yucatan) or individual property pages (e.g. https://www.pincali.com/inmueble/casa-...). The scraper reads every filter straight from each search URL, so the Search Filters below are ignored for these. Use this when you already built a search on the site.

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

Whether to find properties for sale, for rent, in pre-construction (development), or in foreclosure. Only applies when you build a search below (not when pasting URLs).

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

Which kinds of property to include. Leave empty to include all types.

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

Where to search. Enter a Mexican city or municipality — for example 'Merida Yucatan', 'Monterrey Nuevo Leon', 'Guadalajara Jalisco', or a Mexico City borough like 'Miguel Hidalgo Ciudad de Mexico'. Include the state for best results. Each location is searched separately. Leave empty to search all of Mexico, or when you are pasting URLs above.

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

Only include listings at or above this price, in Mexican pesos. Leave empty for no minimum.

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

Only include listings at or below this price, in Mexican pesos. Leave empty for no maximum.

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

Only include listings with at least this many bedrooms. Leave empty for any.

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

Only include listings with at least this many bathrooms. Leave empty for any.

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

Only include listings with at least this much construction area, in square meters. Leave empty for no minimum.

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

Only include listings with at most this much construction area, in square meters. Leave empty for no maximum.

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

Order in which to collect listings. Only applies when you build a search below (not when pasting URLs). Newest and Oldest are applied reliably. Price ordering is requested from Pincali but the site may return results in its default order depending on your filters — for a guaranteed price-bounded set, use the Minimum/Maximum Price filters above.

## `scrapeDetails` (type: `boolean`):

Follow each listing to its property page to collect full data: complete description, the whole photo gallery, all amenities and features, map coordinates, and the agent and agency names. Turn off for a faster, lighter run that returns only the summary fields shown in search results.

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

Maximum number of listings to collect across all URLs and searches. Set to 0 for as many as possible (up to a built-in safety cap of 10,000). Tip: start with 10-50 to test, then increase.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.pincali.com/inmuebles/casas-en-venta-en-merida-yucatan"
  ],
  "operation": "venta",
  "propertyTypes": [
    "casa"
  ],
  "locations": [],
  "sort": "newest",
  "scrapeDetails": true,
  "maxResults": 100
}
```

# Actor output Schema

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

Table of scraped property listings with key fields — title, price, operation, type, beds, baths, area, city, and URL.

## `details` (type: `string`):

Full per-listing fields including description, photos, amenities, coordinates, agent/agency contact, and timestamps.

# 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": [
        "https://www.pincali.com/inmuebles/casas-en-venta-en-merida-yucatan"
    ],
    "operation": "venta",
    "propertyTypes": [
        "casa"
    ],
    "locations": [],
    "sort": "newest",
    "scrapeDetails": true,
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/pincali-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": ["https://www.pincali.com/inmuebles/casas-en-venta-en-merida-yucatan"],
    "operation": "venta",
    "propertyTypes": ["casa"],
    "locations": [],
    "sort": "newest",
    "scrapeDetails": True,
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/pincali-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": [
    "https://www.pincali.com/inmuebles/casas-en-venta-en-merida-yucatan"
  ],
  "operation": "venta",
  "propertyTypes": [
    "casa"
  ],
  "locations": [],
  "sort": "newest",
  "scrapeDetails": true,
  "maxResults": 100
}' |
apify call solidcode/pincali-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Pincali Scraper",
        "description": "[💰 $1.0 / 1K] Extract Mexican real estate listings from Pincali — homes, land, and commercial for sale, rent, pre-construction, and foreclosure. Get price, beds, baths, area, amenities, description, GPS, agent contact, and photos.",
        "version": "1.0",
        "x-build-id": "KC4uRFflWTGWABt0g"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~pincali-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-pincali-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/solidcode~pincali-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-pincali-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/solidcode~pincali-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-pincali-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",
                "properties": {
                    "startUrls": {
                        "title": "Pincali URLs",
                        "type": "array",
                        "description": "Paste one or more Pincali URLs — either search-result pages (e.g. https://www.pincali.com/inmuebles/casas-en-venta-en-merida-yucatan) or individual property pages (e.g. https://www.pincali.com/inmueble/casa-...). The scraper reads every filter straight from each search URL, so the Search Filters below are ignored for these. Use this when you already built a search on the site.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "operation": {
                        "title": "Operation",
                        "enum": [
                            "venta",
                            "renta",
                            "desarrollo",
                            "remate"
                        ],
                        "type": "string",
                        "description": "Whether to find properties for sale, for rent, in pre-construction (development), or in foreclosure. Only applies when you build a search below (not when pasting URLs)."
                    },
                    "propertyTypes": {
                        "title": "Property Types",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Which kinds of property to include. Leave empty to include all types.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "casa",
                                "casa-en-condominio",
                                "departamento",
                                "villa",
                                "quinta",
                                "rancho",
                                "terreno",
                                "oficina",
                                "local-comercial",
                                "local-en-centro-comercial",
                                "edificio",
                                "bodega-comercial",
                                "terreno-comercial",
                                "bodega-industrial",
                                "nave-industrial",
                                "terreno-industrial"
                            ],
                            "enumTitles": [
                                "House (Casa)",
                                "Condo house (Casa en condominio)",
                                "Apartment (Departamento)",
                                "Villa",
                                "Country house (Quinta)",
                                "Ranch (Rancho)",
                                "Land / lot (Terreno)",
                                "Office (Oficina)",
                                "Retail / shop (Local comercial)",
                                "Mall unit (Local en centro comercial)",
                                "Building (Edificio)",
                                "Commercial warehouse (Bodega comercial)",
                                "Commercial land (Terreno comercial)",
                                "Industrial warehouse (Bodega industrial)",
                                "Industrial plant (Nave industrial)",
                                "Industrial land (Terreno industrial)"
                            ]
                        }
                    },
                    "locations": {
                        "title": "Locations",
                        "type": "array",
                        "description": "Where to search. Enter a Mexican city or municipality — for example 'Merida Yucatan', 'Monterrey Nuevo Leon', 'Guadalajara Jalisco', or a Mexico City borough like 'Miguel Hidalgo Ciudad de Mexico'. Include the state for best results. Each location is searched separately. Leave empty to search all of Mexico, or when you are pasting URLs above.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "minPrice": {
                        "title": "Minimum Price (MXN)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include listings at or above this price, in Mexican pesos. Leave empty for no minimum."
                    },
                    "maxPrice": {
                        "title": "Maximum Price (MXN)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include listings at or below this price, in Mexican pesos. Leave empty for no maximum."
                    },
                    "minBedrooms": {
                        "title": "Minimum Bedrooms",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include listings with at least this many bedrooms. Leave empty for any."
                    },
                    "minBathrooms": {
                        "title": "Minimum Bathrooms",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include listings with at least this many bathrooms. Leave empty for any."
                    },
                    "minArea": {
                        "title": "Minimum Construction Area (m²)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include listings with at least this much construction area, in square meters. Leave empty for no minimum."
                    },
                    "maxArea": {
                        "title": "Maximum Construction Area (m²)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include listings with at most this much construction area, in square meters. Leave empty for no maximum."
                    },
                    "sort": {
                        "title": "Sort Order",
                        "enum": [
                            "newest",
                            "oldest",
                            "price_desc",
                            "price_asc"
                        ],
                        "type": "string",
                        "description": "Order in which to collect listings. Only applies when you build a search below (not when pasting URLs). Newest and Oldest are applied reliably. Price ordering is requested from Pincali but the site may return results in its default order depending on your filters — for a guaranteed price-bounded set, use the Minimum/Maximum Price filters above."
                    },
                    "scrapeDetails": {
                        "title": "Scrape Full Details",
                        "type": "boolean",
                        "description": "Follow each listing to its property page to collect full data: complete description, the whole photo gallery, all amenities and features, map coordinates, and the agent and agency names. Turn off for a faster, lighter run that returns only the summary fields shown in search results.",
                        "default": true
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of listings to collect across all URLs and searches. Set to 0 for as many as possible (up to a built-in safety cap of 10,000). Tip: start with 10-50 to test, then increase.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
