# Aste giudiziarie PRO — Perizie, stime e sconti (`promptica/aste-giudiziarie-pro`) Actor

Aste giudiziarie italiane attive con perizie PDF, valore di stima, sconto, superficie, occupazione, documenti e monitor.

- **URL**: https://apify.com/promptica/aste-giudiziarie-pro.md
- **Developed by:** [Lorenzo Talamucci](https://apify.com/promptica) (community)
- **Categories:** Real estate, Business
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $15.00 / 1,000 auction lots

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Italian court auctions with appraisal values, discounts and property facts

Find active Italian judicial auctions from the official **Portale delle Vendite Pubbliche (PVP)**. For each returned lot, this Actor can read the public appraisal PDF and deliver an estimated value, area, occupancy, document links and the discount against the appraisal — with evidence for every extracted fact.

Built for property investors, real estate agencies and NPL teams that need a shortlist they can check against the original court documents.

### How do I find Italian court auctions with appraisal value?

Run a search by region, province, city, court, property type, category, base price or sale date. The default shows **active auctions only**, ordered by sale date. Set `includiPassate: true` when you need past sales.

```json
{
  "tipoLotto": "IMMOBILI",
  "regione": "LAZIO",
  "prezzoMax": 250000,
  "maxResults": 5,
  "includiPerizia": true,
  "includiCatasto": true
}
```

Each result includes a link to the official PVP announcement. The Actor reads public documents only for the lots it returns. To export many listings faster, set `exportCompleto: true`, `includiDettaglio: false`, `includiPerizia: false` and `includiCatasto: false`; narrow the region or property type if the run reaches its time or data limit.

### What property data will I receive?

| Field | What it means |
| --- | --- |
| `prezzoBaseAsta`, `offertaMinima`, `dataVendita` | Official base price, minimum offer and sale date. A missing or zero base price is shown as `null`, with `prezzoBaseAsta_unavailable_reason`. |
| `valoreStimaEuro`, `valoreStimaTipo` | Appraisal value and whether it is a final adjusted value, a gross value before adjustments or an unqualified appraisal total. |
| `scontoSuStimaPercent` | Difference between base price and appraisal value: `(appraisal − base price) / appraisal × 100`. A negative value means the base price exceeds the selected appraisal value. |
| `metraturaMq`, `statoOccupazionale` | Area and explicitly stated occupancy, when the PDF supports a clear answer. |
| `perizia`, `documenti` | Structured facts with short evidence and links to the original public PDF and other sale documents. |
| `catasto` | Cadastral references checked against the Agenzia delle Entrate map when the source provides enough location data. |
| `history_status`, `reduction_percent` | Observed price changes. Cross-announcement reductions are temporarily withheld (`reduction_percent` null, `history_status` `same_announcement_only`) until lot identity across announcements is verified. Missing history stays empty. |
| `data_status`, `partial_reasons` | Whether the result set and historical data have known coverage limits. |

When the appraisal offers different values for a free and an occupied property, the Actor selects the final value matching an **explicit occupancy fact**. If it cannot identify the right final value, it keeps the gross figure and labels it `lordo_prima_adeguamenti`, or leaves the value empty when the documents conflict. Every nonempty appraisal fact has a source link and a short supporting excerpt. Check the PDF before relying on a valuation.

Lots without a valid base price stay visible in searches without a price filter. They are excluded when you set a minimum or maximum price, and no appraisal discount is calculated for them. The minimum offer is never substituted for the base price.

### Can I monitor new auctions or export a large area?

Set `soloNuove: true` and reuse the same `monitorNome` on scheduled runs. The first run establishes the baseline; later runs return new or changed auctions. Run one schedule at a time for each monitor name.

`exportCompleto: true` has no 10,000-result cap. Large exports can still stop at the run's time or data budget, especially when every lot needs a PDF. The run summary reports whether delivery was partial.

### What does it cost?

| Charge | Price |
| --- | ---: |
| Run with at least one lot delivered | **$0.10** |
| Lot delivered | **$0.015** |
| Structured appraisal with at least one extracted property fact | **$0.02** |

For example, a run delivering ten lots and five structured appraisals costs $0.35. Check the price shown by Apify before starting a run.
If the auction index is temporarily unavailable and no lots are delivered, no event is charged. The run summary tells you to retry.

### FAQ: why is an appraisal field empty?

PVP may not publish a PDF, or the PDF may be a scan without selectable text. This Actor reads up to 60 pages per appraisal PDF and does **not** perform OCR. A value also stays empty when several properties or documents give conflicting figures that cannot be assigned confidently to the lot. The dataset explains missing fields and links to the original documents.

### FAQ: does a price reduction mean an auction failed?

No. Price history is still being built and is available only where the same lot can be linked reliably across observed sales. A reduction is not proof of a failed auction, and missing history is not filled in by guessing.

### FAQ: are cadastral matches and appraisals investment advice?

No. Cadastral checks need usable PVP coordinates and matching parcel details in the PDF. A partial match does not prove the municipality code or cadastral section; the map does not establish ownership, subunits or parcel boundaries. Map data is attributed to **Agenzia delle Entrate** under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). Appraisal values and occupancy describe what the published document says, not the present condition of the property. Verify the official announcement and PDF before bidding.

### Italiano — come cercare aste giudiziarie con perizia e stima?

Cerca le aste attive del PVP per regione, comune, tribunale, tipo di bene, prezzo e data. Per i lotti restituiti puoi ottenere documenti pubblici, metratura, occupazione esplicita, valore di stima e sconto rispetto alla stima. Ogni fatto letto dalla perizia porta una breve evidenza e il link al PDF originale.

Il valore di stima finale viene usato quando la perizia lo indica chiaramente e lo scenario libero/occupato coincide con lo stato esplicito del bene. Altrimenti il dato resta lordo e dichiarato, oppure vuoto se ambiguo. I PDF scansiti richiedono OCR e quindi non producono fatti strutturati. Lo storico ribassi è in costruzione: non deduciamo aste deserte da un cambio di prezzo.

Un prezzo base mancante o pari a zero nel listato diventa `null` con motivo dichiarato: il lotto non supera i filtri per prezzo e non genera uno sconto sulla stima. L'offerta minima non sostituisce il prezzo base.

Prezzi: **$0,10** per una run che consegna almeno un lotto, **$0,015** per lotto consegnato, **$0,02** per perizia con almeno un fatto strutturato. Il catasto usa il WMS dell'Agenzia delle Entrate con attribuzione CC BY 4.0; le verifiche parziali sono segnalate. Consulta sempre l'annuncio e i documenti ufficiali prima di investire.

# Actor input Schema

## `regione` (type: `string`):

Nome regione, es. LAZIO. Vuoto = tutte.

## `provincia` (type: `string`):

Nome provincia, anche parziale.

## `comune` (type: `string`):

Nome comune, anche parziale.

## `tribunale` (type: `string`):

Nome tribunale, anche parziale.

## `tipoLotto` (type: `string`):

IMMOBILI, MOBILI, AZIENDE o ALTRO; vuoto = tutti.

## `categoriaLotto` (type: `string`):

Categoria PVP, anche parziale.

## `prezzoMin` (type: `integer`):

Prezzo base minimo in euro; zero = nessun limite.

## `prezzoMax` (type: `integer`):

Prezzo base massimo in euro; zero = nessun limite.

## `scontoMinimo` (type: `integer`):

Sconto minimo sulla stima letta dalla perizia; zero = nessun filtro.

## `dataDa` (type: `string`):

Data vendita minima YYYY-MM-DD.

## `dataA` (type: `string`):

Data vendita massima YYYY-MM-DD.

## `includiPassate` (type: `boolean`):

Default false: solo vendite attive da oggi Europe/Rome a tre anni. True include anche l’archivio passato.

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

Numero massimo di lotti consegnati; ignorato per export completo.

## `exportCompleto` (type: `boolean`):

Scansiona tutti gli shard compatibili, senza limite di 10.000; soggetto a budget di tempo e download.

## `includiDettaglio` (type: `boolean`):

Legge il dettaglio pubblico per ogni risultato.

## `includiPerizia` (type: `boolean`):

Link documenti e fatti da tutti i PDF di perizia leggibili del lotto; fino a 60 pagine per PDF e 12 MB ciascuno, senza OCR.

## `includiCatasto` (type: `boolean`):

Verifica riferimenti della perizia sul WMS Agenzia delle Entrate (CC BY 4.0).

## `soloConPerizia` (type: `boolean`):

Consegna soltanto risultati con almeno un link perizia.

## `soloNuove` (type: `boolean`):

Consegna solo aste nuove o con prezzo/data/storico/perizia cambiati.

## `monitorNome` (type: `string`):

KV store nominato da riusare fra run; eseguire uno schedule alla volta.

## Actor input object example

```json
{
  "tipoLotto": "IMMOBILI",
  "prezzoMin": 0,
  "prezzoMax": 0,
  "scontoMinimo": 0,
  "includiPassate": false,
  "maxResults": 5,
  "exportCompleto": false,
  "includiDettaglio": true,
  "includiPerizia": true,
  "includiCatasto": true,
  "soloConPerizia": false,
  "soloNuove": false,
  "monitorNome": "aste-pro-monitor"
}
```

# Actor output Schema

## `auctions` (type: `string`):

Righe con provenienza e stato dell'indice.

## `diagnostics` (type: `string`):

Stato indice, generazione, completezza, fallback ed errori.

# 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 = {
    "tipoLotto": "IMMOBILI",
    "maxResults": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("promptica/aste-giudiziarie-pro").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 = {
    "tipoLotto": "IMMOBILI",
    "maxResults": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("promptica/aste-giudiziarie-pro").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "tipoLotto": "IMMOBILI",
  "maxResults": 5
}' |
apify call promptica/aste-giudiziarie-pro --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,promptica/aste-giudiziarie-pro"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/vz3BibuoO6PoFHspw/builds/IGMbaQfgsgZTzgaKk/openapi.json
