# Infocasas Scraper (`scrapers_lat/infocasas-scraper`) Actor

Scrape Infocasas real estate listings across Uruguay, Paraguay and more. Extract price, currency, operation, property type, bedrooms, bathrooms, area, location, images, agent and coordinates.

- **URL**: https://apify.com/scrapers\_lat/infocasas-scraper.md
- **Developed by:** [Michael Flores](https://apify.com/scrapers_lat) (community)
- **Categories:** Real estate, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.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

## InfoCasas Scraper

> Extract real estate listings, prices, and agent data from InfoCasas, one of the largest property portals in the region with millions of active listings across Uruguay, Paraguay, Bolivia and more.

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify&logoColor=white)
![LATAM](https://img.shields.io/badge/Coverage-4%20countries-blue)
![Maintained](https://img.shields.io/badge/Maintained-Yes-brightgreen)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)

<table><tr>
<td align="center"><strong>22 fields</strong><br>per record</td>
<td align="center"><strong>4 countries</strong><br>LATAM coverage</td>
<td align="center"><strong>JSON / CSV / Excel</strong><br>output formats</td>
<td align="center"><strong>Updated</strong><br>2026-06-19</td>
</tr></table>

<br>

### What you get

Each listing returns a structured record ready to load into any database, spreadsheet, or analytics pipeline:

- **imageUrl**: main listing photo
- **title**: full listing title as published
- **price**: asking price in the listed currency
- **currency**: ISO currency code (USD, UYU, PYG, BOB)
- **priceUsd**: price normalized to US dollars
- **operationType**: sale or rental (Venta, Alquiler)
- **propertyType**: property category (Casa, Apartamento, Terreno, and more)
- **bedrooms**: number of bedrooms
- **bathrooms**: number of bathrooms
- **garages**: number of garage spaces, when applicable
- **totalAreaM2**: total land or plot area in square meters
- **builtAreaM2**: built area in square meters
- **neighborhood**: neighborhood name
- **city**: city of the listing
- **state**: state or department
- **country**: country of the listing
- **address**: street address, when the publisher shows it
- **listingId**: unique InfoCasas listing ID
- **url**: direct link to the listing page
- **publishedAt**: date the listing was first published
- **updatedAt**: date the listing was last updated
- **description\***: full listing description
- **amenities\***: list of features and amenities
- **images\***: every photo on the listing
- **agentName\***: name of the agency or private seller
- **agentType\***: whether the publisher is an agency or a private owner
- **agentPhone\***: contact phone or WhatsApp number
- **latitude\***: map latitude
- **longitude\***: map longitude
- **observedAt**: when this listing was last seen by the scraper

*\*These fields only appear when withDetails is set to true.*

### Who is it for

| Use case | Who benefits |
|---|---|
| Price monitoring | Agencies tracking asking prices by neighborhood |
| Market research | Analysts studying supply and pricing trends in LATAM real estate |
| Lead generation | Brokers sourcing listings and publisher contacts |
| Data pipelines | Developers feeding BI dashboards or valuation models |
| Investment analysis | Investors comparing yields across cities and property types |

### Frequently Asked Questions

**Which InfoCasas country sites does it support?**
It works across all InfoCasas domains including Uruguay (infocasas.com.uy), Paraguay (infocasas.com.py), Bolivia (infocasas.com.bo) and Argentina. Just paste a search URL from the country you want and the scraper reads listings from that domain.

**How many listings can I collect per run?**
There is no hard cap in the actor. A single search can span thousands of listings paginated 21 per page, and you set the ceiling with the Max Items input. For very large datasets, split the work by city, operation type, or price band.

**Can I filter by operation, property type, location, or price?**
Yes. Apply any filters directly on InfoCasas, then copy the resulting URL into the Search URL input. Operation, property type, location, price range, area, and bedroom filters encoded in the URL are all respected automatically.

**What is the difference between the basic and detailed output?**
By default the scraper returns the core listing fields, which already include price, area, rooms, and location. Turn on Fetch listing details to also collect the full description, complete photo gallery, amenities, publisher contact, and map coordinates.

**What happens if a listing is missing data or a page fails?**
Optional fields like address or garage count are simply left empty when the publisher does not provide them. If a page cannot be loaded, the scraper records the reason in the error field and continues without stopping the run.

---

> This actor is an independent tool and has no affiliation with InfoCasas. It only accesses data that is publicly available on the platform. Use it in accordance with InfoCasas's terms of service.

# Actor input Schema

## `startUrl` (type: `string`):

A full InfoCasas search results URL, for example https://www.infocasas.com.uy/venta/casas/montevideo or any filtered search. All filters encoded in the URL (operation, property type, location, price, area, bedrooms) are respected automatically. Works across all InfoCasas country domains.
## `maxItems` (type: `integer`):

Maximum number of listings to collect. Optional.
## `withDetails` (type: `boolean`):

When enabled, the actor fetches each listing's detail page and emits enriched records with the full description, image gallery, amenities, agent details and coordinates. Slower but more complete.

## Actor input object example

```json
{
  "startUrl": "https://www.infocasas.com.uy/venta/casas/montevideo",
  "maxItems": 10,
  "withDetails": false
}
````

# Actor output Schema

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

No description

# 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 = {
    "startUrl": "https://www.infocasas.com.uy/venta/casas/montevideo",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/infocasas-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 = {
    "startUrl": "https://www.infocasas.com.uy/venta/casas/montevideo",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/infocasas-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 '{
  "startUrl": "https://www.infocasas.com.uy/venta/casas/montevideo",
  "maxItems": 10
}' |
apify call scrapers_lat/infocasas-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Infocasas Scraper",
        "description": "Scrape Infocasas real estate listings across Uruguay, Paraguay and more. Extract price, currency, operation, property type, bedrooms, bathrooms, area, location, images, agent and coordinates.",
        "version": "0.1",
        "x-build-id": "QDapHC0kIik0nJdl7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~infocasas-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-infocasas-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/scrapers_lat~infocasas-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-infocasas-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/scrapers_lat~infocasas-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-infocasas-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": [
                    "startUrl"
                ],
                "properties": {
                    "startUrl": {
                        "title": "Search URL",
                        "type": "string",
                        "description": "A full InfoCasas search results URL, for example https://www.infocasas.com.uy/venta/casas/montevideo or any filtered search. All filters encoded in the URL (operation, property type, location, price, area, bedrooms) are respected automatically. Works across all InfoCasas country domains."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of listings to collect. Optional."
                    },
                    "withDetails": {
                        "title": "Fetch listing details",
                        "type": "boolean",
                        "description": "When enabled, the actor fetches each listing's detail page and emits enriched records with the full description, image gallery, amenities, agent details and coordinates. Slower but more complete.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
