{
  "openapi": "3.0.1",
  "info": {
    "title": "CasaDaPrivato Scraper - Italy Private-Seller Homes",
    "description": "Scrape CasaDaPrivato.it, the Italian site where owners sell and let their homes without an agency. Homes for sale, rentals, holiday homes and rooms in 107 provinces, with price, m², rooms, street, GPS and photos.",
    "version": "1.0",
    "x-build-id": "Y3ClET3fIFjvgBLdb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~casadaprivato-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-casadaprivato-property-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/sian.agency~casadaprivato-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-casadaprivato-property-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/sian.agency~casadaprivato-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-casadaprivato-property-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": {
          "operation": {
            "title": "🎯 Mode",
            "enum": [
              "search",
              "detail"
            ],
            "type": "string",
            "description": "🔍 **Property Search** reads CasaDaPrivato results pages for the province, town and section below, 15 listings a page.\n\n📄 **Property Detail** opens the listing addresses you paste in Listing URLs and returns the full record for each one.",
            "default": "search"
          },
          "province": {
            "title": "📍 Province",
            "enum": [
              "agrigento",
              "alessandria",
              "ancona",
              "aosta",
              "arezzo",
              "ascoli_piceno",
              "asti",
              "avellino",
              "bari",
              "barletta_andria_trani",
              "belluno",
              "benevento",
              "bergamo",
              "biella",
              "bologna",
              "bolzano",
              "brescia",
              "brindisi",
              "cagliari",
              "caltanissetta",
              "campobasso",
              "caserta",
              "catania",
              "catanzaro",
              "chieti",
              "como",
              "cosenza",
              "cremona",
              "crotone",
              "cuneo",
              "enna",
              "fermo",
              "ferrara",
              "firenze",
              "foggia",
              "forli_cesena",
              "frosinone",
              "genova",
              "gorizia",
              "grosseto",
              "imperia",
              "isernia",
              "la_spezia",
              "aquila",
              "latina",
              "lecce",
              "lecco",
              "livorno",
              "lodi",
              "lucca",
              "macerata",
              "mantova",
              "massa_carrara",
              "matera",
              "messina",
              "milano",
              "modena",
              "monza_brianza",
              "napoli",
              "novara",
              "nuoro",
              "oristano",
              "padova",
              "palermo",
              "parma",
              "pavia",
              "perugia",
              "pesaro_urbino",
              "pescara",
              "piacenza",
              "pisa",
              "pistoia",
              "pordenone",
              "potenza",
              "prato",
              "ragusa",
              "ravenna",
              "reggio_calabria",
              "reggio_emilia",
              "rieti",
              "rimini",
              "roma",
              "rovigo",
              "salerno",
              "sassari",
              "savona",
              "siena",
              "siracusa",
              "sondrio",
              "sud_sardegna",
              "taranto",
              "teramo",
              "terni",
              "torino",
              "trapani",
              "trento",
              "treviso",
              "trieste",
              "udine",
              "varese",
              "venezia",
              "verbano_cusio_ossola",
              "vercelli",
              "verona",
              "vibo_valentia",
              "vicenza",
              "viterbo"
            ],
            "type": "string",
            "description": "The Italian province to search, out of all 107. With Town left empty the run reads the whole province: the capital and every town around it.",
            "default": "milano"
          },
          "town": {
            "title": "🏘️ Town (optional)",
            "type": "string",
            "description": "One town (comune) inside the province, for example Sesto San Giovanni or Monza in Milano. Leave it empty for the whole province. Accents and apostrophes are fine. If the town has no listings in this section right now, the run stops before any listing is billed and lists towns that do."
          },
          "category": {
            "title": "🏠 Section",
            "enum": [
              "sale",
              "rent",
              "holiday",
              "rooms"
            ],
            "type": "string",
            "description": "Which part of the site to read. For rent covers every rental, holiday homes and rooms included. Pick Holiday homes or Rooms and beds to read only those.",
            "default": "sale"
          },
          "propertyType": {
            "title": "🏢 Property type",
            "enum": [
              "all",
              "appartamenti",
              "attici-mansarde",
              "case-indipendenti",
              "ville-singole-e-a-schiera",
              "rustici-casali",
              "loft-open-space",
              "palazzi-stabili",
              "altro-residenziale",
              "nuove-costruzioni",
              "box-garage-posti-auto",
              "immobili-attivita-commerciali",
              "terreni"
            ],
            "type": "string",
            "description": "Narrows For sale or For rent to one kind of property. New builds are listed for sale only. Holiday homes and Rooms and beds ignore this field.",
            "default": "all"
          },
          "sortBy": {
            "title": "↕️ Order",
            "enum": [
              "relevance",
              "recent",
              "priceLow",
              "priceHigh"
            ],
            "type": "string",
            "description": "The order the site lists results in. Pick Most recent first for regular checks on new listings. When sorting by price, listings whose price is negotiated privately (Trattativa riservata) come first.",
            "default": "relevance"
          },
          "maxResults": {
            "title": "🔢 Properties to collect",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "How many listings to return. One results page holds 15, and you pay per listing returned, not per page. Free Apify plans stop at 25 listings a run.",
            "default": 50
          },
          "includeDetails": {
            "title": "📄 Open each listing in full",
            "type": "boolean",
            "description": "Opens every listing found for the full description and every original photo. You also get GPS where the owner set it, energy class, floor, heating, kitchen, parking, condition, lease type, availability, condo fees, features, and the listed and updated dates. Each one is billed as one Property Detail on top of its search row. Owner names and phone numbers are never collected.",
            "default": false
          },
          "searchUrls": {
            "title": "🔗 Search page URLs",
            "type": "array",
            "description": "CasaDaPrivato results pages, one per line. Handy for a district (zona) the form does not offer, for example https://www.casadaprivato.it/annunci-vendita/appartamenti/roma-zona-bravetta . A sort order already in the address is kept.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listingUrls": {
            "title": "🔗 Listing URLs",
            "type": "array",
            "description": "CasaDaPrivato listing addresses, one per line, for example https://www.casadaprivato.it/appartamenti/grazioso-bilocale-in-corte-privata-bergamo-423133 . Each one returns the full record and is billed as one Property Detail.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}