# OLX Brasil Imóveis Scraper Completo (`leadercorp/olx-imoveis-scraper`) Actor

Extraia anúncios de imóveis da OLX Brasil com dados completos e estruturados, incluindo fotos, preços, descrição detalhada e informações do vendedor — ideal para análise de mercado, geração de leads e monitoramento de oportunidades.

- **URL**: https://apify.com/leadercorp/olx-imoveis-scraper.md
- **Developed by:** [Leadercorp](https://apify.com/leadercorp) (community)
- **Categories:** E-commerce
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.20 / 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.

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

## Scraper de Imoveis OLX Brasil

Actor da Apify para extrair anuncios de imoveis da OLX Brasil em formato estruturado, com filtros em portugues e saida pronta para analise.

### O que este scraper entrega

- Coleta anuncios de imoveis no `olx.com.br/imoveis`
- Funciona com `urlsIniciais` (maior precisao) ou filtros estruturados
- Oferece modos `rapido` e `profundo`
- Aplica correspondencia de filtros com controle de precisao (`correspondenciaEstrita`)
- Retorna dataset com campos em portugues e valores normalizados

### Quando usar este scraper

- Monitoramento de preco por tipo de imovel e regiao
- Pesquisa de mercado imobiliario
- Geração de base para BI, dashboards e modelos de previsao
- Acompanhamento de oportunidades (aluguel, venda, temporada)

### Como os modos funcionam

| Modo       | Como funciona                                          | Melhor uso                                      |
| ---------- | ------------------------------------------------------ | ----------------------------------------------- |
| `rapido`   | Le somente os cartoes da busca, sem abrir cada anuncio | Coletas maiores com menor custo e menor tempo   |
| `profundo` | Visita cada anuncio para enriquecer campos             | Quando voce precisa de mais detalhes por imovel |

### Precisao de filtros e semantica de `maxItens`

O comportamento de filtros depende de `correspondenciaEstrita`:

- `correspondenciaEstrita=true` (padrao):
  - o actor conta apenas itens que realmente atendem aos filtros finais;
  - `maxItens` significa "quantidade de itens validos no output";
  - pode precisar paginar mais e aumentar tempo/custo.

- `correspondenciaEstrita=false`:
  - prioriza velocidade;
  - reduz validacoes finais;
  - pode incluir itens que nao atendem totalmente alguns filtros.

### Exemplo de entrada

#### Com `urlsIniciais` (recomendado para alvo preciso)

```json
{
  "urlsIniciais": [
    { "url": "https://www.olx.com.br/imoveis/aluguel/estado-sp/sao-paulo/apartamentos" }
  ],
  "modo": "profundo",
  "maxPaginas": 10,
  "maxItens": 100,
  "incluirDescricao": true,
  "incluirFotos": true,
  "usarProxiesResidenciais": true
}
````

#### Com filtros estruturados

```json
{
  "estado": "SP",
  "cidade": "Valinhos",
  "tipoNegocio": "aluguel",
  "tipoImovel": "apartamentos",
  "precoMin": 300000,
  "precoMax": 800000,
  "quartosMin": 2,
  "maxPaginas": 20,
  "maxItens": 200,
  "correspondenciaEstrita": true
}
```

### Campos de entrada

| Campo                       | Tipo    | Padrao     | Descricao                                                                            |
| --------------------------- | ------- | ---------- | ------------------------------------------------------------------------------------ |
| `urlsIniciais`              | array   | -          | URLs da OLX para inicio da coleta. Se informado, filtros estruturados sao ignorados. |
| `estado`                    | string  | -          | UF (SP, RJ, MG...).                                                                  |
| `cidade`                    | string  | -          | Cidade usada na busca textual (`q`) quando `urlsIniciais` nao e informado.           |
| `termoBusca`                | string  | -          | Termo textual para `q` com prioridade sobre composicao automatica.                   |
| `tipoNegocio`               | string  | -          | `venda`, `aluguel`, `temporada`, `lancamento`.                                       |
| `tipoImovel`                | string  | -          | `apartamentos`, `casas`, `terrenos`, `comercial`, `rural`, `temporada`.              |
| `precoMin`                  | integer | -          | Preco minimo em BRL.                                                                 |
| `precoMax`                  | integer | -          | Preco maximo em BRL.                                                                 |
| `quartosMin`                | integer | -          | Numero minimo de quartos.                                                            |
| `quartosMax`                | integer | -          | Numero maximo de quartos.                                                            |
| `banheirosMin`              | integer | -          | Minimo de banheiros (filtro final).                                                  |
| `banheirosMax`              | integer | -          | Maximo de banheiros (filtro final).                                                  |
| `vagasMin`                  | integer | -          | Minimo de vagas (filtro final).                                                      |
| `vagasMax`                  | integer | -          | Maximo de vagas (filtro final).                                                      |
| `areaMin`                   | integer | -          | Area minima em m2 (filtro final).                                                    |
| `areaMax`                   | integer | -          | Area maxima em m2 (filtro final).                                                    |
| `maxPaginas`                | integer | `50`       | Maximo de paginas de busca por URL inicial.                                          |
| `maxItens`                  | integer | `500`      | Maximo de itens validos retornados.                                                  |
| `modo`                      | string  | `profundo` | `rapido` ou `profundo`.                                                              |
| `coletarDetalhesAnuncio`    | boolean | `true`     | Visita a pagina do anuncio para enriquecer dados.                                    |
| `incluirDescricao`          | boolean | `true`     | Inclui descricao completa quando disponivel.                                         |
| `incluirFotos`              | boolean | `true`     | Inclui URLs de fotos.                                                                |
| `incluirDadosAnunciante`    | boolean | `true`     | Inclui dados de anunciante quando disponivel.                                        |
| `correspondenciaEstrita`    | boolean | `true`     | Conta/retorna apenas itens que batem nos filtros finais.                             |
| `configuracaoProxy`         | object  | -          | Configuracao de proxy da Apify.                                                      |
| `usarProxiesResidenciais`   | boolean | `false`    | Usa proxy residencial Brasil.                                                        |
| `concorrenciaMaxima`        | integer | `3`        | Requisicoes paralelas.                                                               |
| `timeoutRequisicaoSegundos` | integer | `60`       | Timeout por pagina em segundos.                                                      |
| `depurar`                   | boolean | `false`    | Logs detalhados para diagnostico.                                                    |

### Exemplo de saida

```json
{
  "idAnuncio": "1491939251",
  "url": "https://sp.olx.com.br/...",
  "urlCanonica": "https://sp.olx.com.br/...",
  "titulo": "Casa com 3 dormitorios para alugar",
  "tipoNegocio": "Aluguel",
  "tipoImovel": "Casas",
  "preco": "R$ 6.500",
  "precoValor": 6500,
  "moeda": "BRL",
  "cidade": null,
  "estado": null,
  "bairro": null,
  "endereco": null,
  "descricao": null,
  "quartos": 3,
  "banheiros": 3,
  "vagasGaragem": 2,
  "areaM2": 145,
  "valorCondominio": 0,
  "valorIptu": null,
  "mobiliado": null,
  "nomeAnunciante": null,
  "tipoAnunciante": null,
  "urlPerfilAnunciante": null,
  "anuncianteDesde": null,
  "publicadoEm": "2026-04-07T09:08:47.000Z",
  "atualizadoEm": null,
  "fotos": [],
  "atributos": {
    "Categoria": "Casas"
  },
  "fonte": "olx.com.br",
  "coletadoEm": "2026-04-07T09:22:34.685Z",
  "metadadosBusca": {
    "estado": "SP",
    "cidade": null,
    "bairro": null,
    "tipoNegocio": "aluguel"
  }
}
```

### Qualidade dos dados

- Datas sao padronizadas em ISO 8601 quando disponiveis
- Preco em texto (`preco`) e valor numerico (`precoValor`)
- Campos ausentes no anuncio sao retornados como `null`
- `atributos` preserva informacoes adicionais da OLX sem perder contexto

### Boas praticas de configuracao

- Use `urlsIniciais` para segmentacao geografica mais precisa
- Sem `urlsIniciais`, o actor monta busca textual (`q`) com `tipoImovel + cidade + tipoNegocio`
- Use `usarProxiesResidenciais=true` para reduzir bloqueios em carga alta
- Ajuste `concorrenciaMaxima` conforme estabilidade da coleta
- Aumente `timeoutRequisicaoSegundos` para redes mais lentas
- Em coletas muito especificas, aumente `maxPaginas` para atingir `maxItens`

### Limitacoes conhecidas

- Algumas combinacoes de filtros dependem do comportamento da busca da OLX
- Busca por `cidade` via `q` pode incluir regioes proximas; para alvo exato use `urlsIniciais`
- Dados de anunciante podem estar ausentes em parte dos anuncios
- Mudancas de layout/dados da OLX podem afetar disponibilidade de campos

### FAQ

#### Por que nao retornou `maxItens`?

Em geral isso ocorre por filtros muito restritivos, limite de paginas (`maxPaginas`) baixo ou baixa oferta no recorte consultado.

#### Quando devo usar `urlsIniciais`?

Sempre que quiser controle fino de regiao/caminho da busca na OLX.

#### `correspondenciaEstrita` vale a pena?

Sim para qualidade de dados e precisao. Desative apenas quando a prioridade for velocidade.

#### Por que alguns campos vem `null`?

Nem todo anuncio publica todos os dados (ex.: informacoes do anunciante, endereco ou IPTU).

# Actor input Schema

## `urlsIniciais` (type: `array`):

Uma ou mais URLs de busca/anuncio da OLX. Recomendado para alvo preciso por cidade/bairro. Quando informado, os filtros estruturados sao ignorados.

## `estado` (type: `string`):

Sigla do estado brasileiro (ex.: SP, RJ, MG). Obrigatorio quando urlsIniciais nao e informado.

## `cidade` (type: `string`):

Cidade usada para compor busca textual (`q`) quando urlsIniciais nao for informado.

## `termoBusca` (type: `string`):

Termo textual para `q` (ex.: apartamento valinhos aluguel). Quando informado, tem prioridade sobre composicao automatica.

## `tipoNegocio` (type: `string`):

Tipo de transacao imobiliaria.

## `tipoImovel` (type: `string`):

Categoria do imovel. O ator aplica filtro estrito por tipo quando correspondenciaEstrita esta ativa.

## `precoMin` (type: `integer`):

Preco minimo em reais.

## `precoMax` (type: `integer`):

Preco maximo em reais.

## `quartosMin` (type: `integer`):

Quantidade minima de quartos.

## `quartosMax` (type: `integer`):

Quantidade maxima de quartos.

## `banheirosMin` (type: `integer`):

Quantidade minima de banheiros (pos-processamento).

## `banheirosMax` (type: `integer`):

Quantidade maxima de banheiros (pos-processamento).

## `vagasMin` (type: `integer`):

Quantidade minima de vagas (pos-processamento).

## `vagasMax` (type: `integer`):

Quantidade maxima de vagas (pos-processamento).

## `areaMin` (type: `integer`):

Area minima em m2 (pos-processamento).

## `areaMax` (type: `integer`):

Area maxima em m2 (pos-processamento).

## `maxPaginas` (type: `integer`):

Numero maximo de paginas de busca por URL inicial.

## `maxItens` (type: `integer`):

Numero maximo de anuncios validos no resultado.

## `modo` (type: `string`):

rapido: somente pagina de busca. profundo: visita cada anuncio.

## `coletarDetalhesAnuncio` (type: `boolean`):

Se deve visitar a pagina do anuncio. No modo profundo, permanece ativo automaticamente.

## `incluirDescricao` (type: `boolean`):

Extrai o texto completo da descricao quando disponivel.

## `incluirFotos` (type: `boolean`):

Extrai URLs de fotos do anuncio.

## `incluirDadosAnunciante` (type: `boolean`):

Extrai nome, tipo e perfil do anunciante quando disponivel.

## `correspondenciaEstrita` (type: `boolean`):

Quando ativo, so conta e retorna anuncios que atendem aos filtros finais. Pode demandar mais paginas e tempo.

## `configuracaoProxy` (type: `object`):

Configuracao do proxy da Apify.

## `usarProxiesResidenciais` (type: `boolean`):

Usa o grupo RESIDENTIAL da Apify com saida Brasil (recomendado para producao).

## `concorrenciaMaxima` (type: `integer`):

Quantidade maxima de requisicoes em paralelo.

## `timeoutRequisicaoSegundos` (type: `integer`):

Tempo limite de cada pagina em segundos.

## `depurar` (type: `boolean`):

Ativa logs detalhados.

## Actor input object example

```json
{
  "urlsIniciais": [
    {
      "url": "https://www.olx.com.br/imoveis/aluguel/estado-sp/apartamentos"
    }
  ],
  "estado": "SP",
  "cidade": "Valinhos",
  "termoBusca": "apartamento valinhos aluguel",
  "maxPaginas": 50,
  "maxItens": 500,
  "modo": "profundo",
  "coletarDetalhesAnuncio": true,
  "incluirDescricao": true,
  "incluirFotos": true,
  "incluirDadosAnunciante": true,
  "correspondenciaEstrita": true,
  "configuracaoProxy": {
    "useApifyProxy": true
  },
  "usarProxiesResidenciais": false,
  "concorrenciaMaxima": 3,
  "timeoutRequisicaoSegundos": 60,
  "depurar": false
}
```

# Actor output Schema

## `resultados` (type: `string`):

Itens da dataset padrao do run.

## `resultadosOverview` (type: `string`):

Mesma dataset com a view 'overview' selecionada por padrao no Console.

## `chavesExecucao` (type: `string`):

Lista de chaves do key-value store padrao da execucao.

# 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 = {
    "urlsIniciais": [
        {
            "url": "https://www.olx.com.br/imoveis/aluguel/estado-sp/apartamentos"
        }
    ],
    "configuracaoProxy": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("leadercorp/olx-imoveis-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 = {
    "urlsIniciais": [{ "url": "https://www.olx.com.br/imoveis/aluguel/estado-sp/apartamentos" }],
    "configuracaoProxy": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("leadercorp/olx-imoveis-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 '{
  "urlsIniciais": [
    {
      "url": "https://www.olx.com.br/imoveis/aluguel/estado-sp/apartamentos"
    }
  ],
  "configuracaoProxy": {
    "useApifyProxy": true
  }
}' |
apify call leadercorp/olx-imoveis-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "OLX Brasil Imóveis Scraper Completo",
        "description": "Extraia anúncios de imóveis da OLX Brasil com dados completos e estruturados, incluindo fotos, preços, descrição detalhada e informações do vendedor — ideal para análise de mercado, geração de leads e monitoramento de oportunidades.",
        "version": "0.1",
        "x-build-id": "JD7iXaZrYH3J0glhq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/leadercorp~olx-imoveis-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-leadercorp-olx-imoveis-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/leadercorp~olx-imoveis-scraper/runs": {
            "post": {
                "operationId": "runs-sync-leadercorp-olx-imoveis-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/leadercorp~olx-imoveis-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-leadercorp-olx-imoveis-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": {
                    "urlsIniciais": {
                        "title": "URLs iniciais",
                        "type": "array",
                        "description": "Uma ou mais URLs de busca/anuncio da OLX. Recomendado para alvo preciso por cidade/bairro. Quando informado, os filtros estruturados sao ignorados.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "estado": {
                        "title": "Estado (UF)",
                        "type": "string",
                        "description": "Sigla do estado brasileiro (ex.: SP, RJ, MG). Obrigatorio quando urlsIniciais nao e informado."
                    },
                    "cidade": {
                        "title": "Cidade",
                        "type": "string",
                        "description": "Cidade usada para compor busca textual (`q`) quando urlsIniciais nao for informado."
                    },
                    "termoBusca": {
                        "title": "Termo de busca",
                        "type": "string",
                        "description": "Termo textual para `q` (ex.: apartamento valinhos aluguel). Quando informado, tem prioridade sobre composicao automatica."
                    },
                    "tipoNegocio": {
                        "title": "Tipo de negocio",
                        "enum": [
                            "venda",
                            "aluguel",
                            "temporada",
                            "lancamento"
                        ],
                        "type": "string",
                        "description": "Tipo de transacao imobiliaria."
                    },
                    "tipoImovel": {
                        "title": "Tipo de imovel",
                        "enum": [
                            "apartamentos",
                            "casas",
                            "terrenos",
                            "comercial",
                            "rural",
                            "temporada"
                        ],
                        "type": "string",
                        "description": "Categoria do imovel. O ator aplica filtro estrito por tipo quando correspondenciaEstrita esta ativa."
                    },
                    "precoMin": {
                        "title": "Preco minimo (BRL)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Preco minimo em reais."
                    },
                    "precoMax": {
                        "title": "Preco maximo (BRL)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Preco maximo em reais."
                    },
                    "quartosMin": {
                        "title": "Quartos minimos",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Quantidade minima de quartos."
                    },
                    "quartosMax": {
                        "title": "Quartos maximos",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Quantidade maxima de quartos."
                    },
                    "banheirosMin": {
                        "title": "Banheiros minimos",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Quantidade minima de banheiros (pos-processamento)."
                    },
                    "banheirosMax": {
                        "title": "Banheiros maximos",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Quantidade maxima de banheiros (pos-processamento)."
                    },
                    "vagasMin": {
                        "title": "Vagas minimas",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Quantidade minima de vagas (pos-processamento)."
                    },
                    "vagasMax": {
                        "title": "Vagas maximas",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Quantidade maxima de vagas (pos-processamento)."
                    },
                    "areaMin": {
                        "title": "Area minima (m2)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Area minima em m2 (pos-processamento)."
                    },
                    "areaMax": {
                        "title": "Area maxima (m2)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Area maxima em m2 (pos-processamento)."
                    },
                    "maxPaginas": {
                        "title": "Maximo de paginas",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Numero maximo de paginas de busca por URL inicial.",
                        "default": 50
                    },
                    "maxItens": {
                        "title": "Maximo de itens",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Numero maximo de anuncios validos no resultado.",
                        "default": 500
                    },
                    "modo": {
                        "title": "Modo de raspagem",
                        "enum": [
                            "rapido",
                            "profundo"
                        ],
                        "type": "string",
                        "description": "rapido: somente pagina de busca. profundo: visita cada anuncio.",
                        "default": "profundo"
                    },
                    "coletarDetalhesAnuncio": {
                        "title": "Coletar detalhes do anuncio",
                        "type": "boolean",
                        "description": "Se deve visitar a pagina do anuncio. No modo profundo, permanece ativo automaticamente.",
                        "default": true
                    },
                    "incluirDescricao": {
                        "title": "Incluir descricao",
                        "type": "boolean",
                        "description": "Extrai o texto completo da descricao quando disponivel.",
                        "default": true
                    },
                    "incluirFotos": {
                        "title": "Incluir fotos",
                        "type": "boolean",
                        "description": "Extrai URLs de fotos do anuncio.",
                        "default": true
                    },
                    "incluirDadosAnunciante": {
                        "title": "Incluir dados do anunciante",
                        "type": "boolean",
                        "description": "Extrai nome, tipo e perfil do anunciante quando disponivel.",
                        "default": true
                    },
                    "correspondenciaEstrita": {
                        "title": "Correspondencia estrita",
                        "type": "boolean",
                        "description": "Quando ativo, so conta e retorna anuncios que atendem aos filtros finais. Pode demandar mais paginas e tempo.",
                        "default": true
                    },
                    "configuracaoProxy": {
                        "title": "Configuracao de proxy",
                        "type": "object",
                        "description": "Configuracao do proxy da Apify."
                    },
                    "usarProxiesResidenciais": {
                        "title": "Usar proxies residenciais",
                        "type": "boolean",
                        "description": "Usa o grupo RESIDENTIAL da Apify com saida Brasil (recomendado para producao).",
                        "default": false
                    },
                    "concorrenciaMaxima": {
                        "title": "Concorrencia maxima",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Quantidade maxima de requisicoes em paralelo.",
                        "default": 3
                    },
                    "timeoutRequisicaoSegundos": {
                        "title": "Timeout por requisicao (segundos)",
                        "minimum": 10,
                        "type": "integer",
                        "description": "Tempo limite de cada pagina em segundos.",
                        "default": 60
                    },
                    "depurar": {
                        "title": "Depurar",
                        "type": "boolean",
                        "description": "Ativa logs detalhados.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
