{
  "openapi": "3.0.1",
  "info": {
    "title": "Immobiliare.it $1💰 Property Listings, Prices & Agency Details",
    "description": "From $1/1K. Extract property listings from Immobiliare.it with clean structured data including prices, descriptions, GPS coordinates, agency details, photos, and property attributes such as condition, heating, garage, floor, and features. Search by city, filters, or URL. Blazing fast, reliable.",
    "version": "1.0",
    "x-build-id": "NJNoVOfvTtv7BsFC7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~immobiliare-it-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-immobiliare-it-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/abotapi~immobiliare-it-scraper/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-immobiliare-it-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/abotapi~immobiliare-it-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-immobiliare-it-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": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Search mode",
            "enum": [
              "search",
              "url"
            ],
            "type": "string",
            "description": "search = build searches from city names + filters. url = paste one or more listing-search URLs and walk them forward.",
            "default": "search"
          },
          "locations": {
            "title": "Cities",
            "type": "array",
            "description": "City names to search, e.g. Roma, Milano, Torino. Slugification is automatic; accents are stripped. Only applies when mode = search.",
            "items": {
              "type": "string"
            }
          },
          "contract": {
            "title": "Buy or rent",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Listing contract type. Only applies when mode = search.",
            "default": "sale"
          },
          "category": {
            "title": "Property type",
            "enum": [
              "all",
              "apartments",
              "villas"
            ],
            "type": "string",
            "description": "Property category. 'All residential' covers every home type; 'Apartments' and 'Villas' narrow by building type. Only applies when mode = search.",
            "default": "all"
          },
          "minPrice": {
            "title": "Min price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price in euro. Only applies when mode = search."
          },
          "maxPrice": {
            "title": "Max price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price in euro. Only applies when mode = search."
          },
          "minSurface": {
            "title": "Min surface (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum surface in square metres. Only applies when mode = search."
          },
          "maxSurface": {
            "title": "Max surface (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum surface in square metres. Only applies when mode = search."
          },
          "minRooms": {
            "title": "Min rooms",
            "minimum": 1,
            "type": "integer",
            "description": "Minimum number of rooms (locali). Only applies when mode = search."
          },
          "maxRooms": {
            "title": "Max rooms",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of rooms (locali). Only applies when mode = search."
          },
          "excludeAuctions": {
            "title": "Exclude auctions",
            "type": "boolean",
            "description": "Hide auction listings (aste). Only applies when mode = search.",
            "default": false
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "relevance",
              "price-asc",
              "price-desc",
              "newest",
              "surface-desc"
            ],
            "type": "string",
            "description": "Result ordering. Only applies when mode = search.",
            "default": "relevance"
          },
          "urls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Paste one or more immobiliare.it listing-search URLs. Multi-URL supported. Filter fields above are ignored in this mode. Pagination starts at the page in the URL and walks forward.",
            "items": {
              "type": "string"
            }
          },
          "maxPages": {
            "title": "Max pages per search",
            "minimum": 0,
            "type": "integer",
            "description": "Optional bound on result pages walked per keyword/category/URL. Leave empty to walk every result page."
          },
          "maxListings": {
            "title": "Max listings (0 = unlimited)",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on total listings across all searches. 0 means no cap (bounded by maxPages).",
            "default": 20
          },
          "resumeFromRunId": {
            "title": "Resume from run ID",
            "type": "string",
            "description": "Optional: paste a previous run ID (or dataset ID) from this actor. Listings already collected there are skipped, so this run only returns new ones. Leave empty for a normal run. Not for recurring monitoring of the same search — use Incremental mode below for that."
          },
          "incrementalMode": {
            "title": "Incremental mode (recurring monitoring)",
            "type": "boolean",
            "description": "For scheduling this actor on the SAME search (e.g. daily). The actor remembers the previous run itself and tags every listing NEW / UPDATED / UNCHANGED / REAPPEARED / EXPIRED — no need to paste a run ID. Distinct from Resume from run ID above, which continues one specific interrupted run.",
            "default": false
          },
          "stateKey": {
            "title": "State key (incremental mode, optional)",
            "type": "string",
            "description": "Only used when Incremental mode is on. Leave empty to let the actor derive the tracked scope automatically from your search/filters. Set your own text to manually control which runs share a baseline (e.g. to split two schedules that use the same filters)."
          },
          "emitUnchanged": {
            "title": "Emit unchanged listings (incremental mode)",
            "type": "boolean",
            "description": "Only used when Incremental mode is on. Off by default: UNCHANGED listings are not pushed (saving cost). Turn on to also receive a row for every listing that has not changed since the last run — this returns and BILLS extra rows.",
            "default": false
          },
          "emitExpired": {
            "title": "Emit expired listings (incremental mode)",
            "type": "boolean",
            "description": "Only used when Incremental mode is on. Off by default. Turn on to also receive a tombstone row (changeType=EXPIRED) for listings that were tracked before but no longer appear — only emitted after a run that scanned the full tracked search with no cap/resume in the way. This returns and BILLS extra rows.",
            "default": false
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Residential proxy is strongly recommended. The actor defaults the country to Italy and rotates across EU pools when needed."
          },
          "mcpConnectors": {
            "title": "Pipe results into your apps (optional)",
            "type": "array",
            "description": "Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON — the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
          },
          "notionParentPageUrl": {
            "title": "Notion parent page (Notion connector only)",
            "type": "string",
            "description": "URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
          },
          "maxNotifyListings": {
            "title": "Max items to export per connector",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on items written to each connector per run. Does not affect the dataset.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}