{
  "openapi": "3.0.1",
  "info": {
    "title": "Imobiliare.ro Scraper - Romania Property Listings & Prices",
    "description": "Scrape Imobiliare.ro listings across Romania: price, price cuts, area, rooms, floor, photos, agency contacts. Sale and rental, in Romanian.",
    "version": "1.0",
    "x-build-id": "Uu4tkwkP4pVc5HURR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~imobiliare-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-imobiliare-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~imobiliare-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-imobiliare-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~imobiliare-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-imobiliare-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": "🎯 What do you want to scrape?",
            "enum": [
              "search",
              "detail"
            ],
            "type": "string",
            "description": "Pick one per run. Property Search walks Imobiliare.ro's own listing pages for Bucharest or any county and returns 30 listings per page; Property Detail takes Imobiliare.ro advert URLs and returns the full advert text, every photo, the numeric price with its VAT flag, the room/area/floor facts and the agency behind the listing.",
            "default": "search"
          },
          "locations": {
            "title": "📍 Cities and counties",
            "uniqueItems": true,
            "type": "array",
            "description": "Which parts of Romania to read. Bucharest is its own entry; each county covers every town and village Imobiliare.ro indexes under it. Every value is Imobiliare.ro's own area slug, so the list is exactly what the site publishes. A zone or sector as narrow as Pipera or sector-1 is searched by pasting that page's Imobiliare.ro address into Search URLs.",
            "items": {
              "type": "string",
              "enum": [
                "bucuresti",
                "judetul-alba",
                "judetul-arad",
                "judetul-arges",
                "judetul-bacau",
                "judetul-bihor",
                "judetul-bistrita-nasaud",
                "judetul-botosani",
                "judetul-braila",
                "judetul-brasov",
                "judetul-buzau",
                "judetul-calarasi",
                "judetul-caras-severin",
                "judetul-cluj",
                "judetul-constanta",
                "judetul-covasna",
                "judetul-dambovita",
                "judetul-dolj",
                "judetul-galati",
                "judetul-giurgiu",
                "judetul-gorj",
                "judetul-harghita",
                "judetul-hunedoara",
                "judetul-ialomita",
                "judetul-iasi",
                "judetul-ilfov",
                "judetul-maramures",
                "judetul-mehedinti",
                "judetul-mures",
                "judetul-neamt",
                "judetul-olt",
                "judetul-prahova",
                "judetul-salaj",
                "judetul-satu-mare",
                "judetul-sibiu",
                "judetul-suceava",
                "judetul-teleorman",
                "judetul-timis",
                "judetul-tulcea",
                "judetul-valcea",
                "judetul-vaslui",
                "judetul-vrancea"
              ],
              "enumTitles": [
                "🏙️ Bucharest — București",
                "🗺️ județul Alba",
                "🗺️ județul Arad",
                "🗺️ județul Argeș",
                "🗺️ județul Bacău",
                "🗺️ județul Bihor",
                "🗺️ județul Bistrița-Năsăud",
                "🗺️ județul Botoșani",
                "🗺️ județul Brăila",
                "🗺️ județul Brașov",
                "🗺️ județul Buzău",
                "🗺️ județul Călărași",
                "🗺️ județul Caraș-Severin",
                "🗺️ județul Cluj",
                "🗺️ județul Constanța",
                "🗺️ județul Covasna",
                "🗺️ județul Dâmbovița",
                "🗺️ județul Dolj",
                "🗺️ județul Galați",
                "🗺️ județul Giurgiu",
                "🗺️ județul Gorj",
                "🗺️ județul Harghita",
                "🗺️ județul Hunedoara",
                "🗺️ județul Ialomița",
                "🗺️ județul Iași",
                "🗺️ județul Ilfov",
                "🗺️ județul Maramureș",
                "🗺️ județul Mehedinți",
                "🗺️ județul Mureș",
                "🗺️ județul Neamț",
                "🗺️ județul Olt",
                "🗺️ județul Prahova",
                "🗺️ județul Sălaj",
                "🗺️ județul Satu Mare",
                "🗺️ județul Sibiu",
                "🗺️ județul Suceava",
                "🗺️ județul Teleorman",
                "🗺️ județul Timiș",
                "🗺️ județul Tulcea",
                "🗺️ județul Vâlcea",
                "🗺️ județul Vaslui",
                "🗺️ județul Vrancea"
              ]
            },
            "default": [
              "bucuresti"
            ]
          },
          "dealType": {
            "title": "🤝 For sale or for rent",
            "enum": [
              "vanzare",
              "inchirieri"
            ],
            "type": "string",
            "description": "Sale adverts carry an asking price; rental adverts carry a monthly rent in the same field. Imobiliare.ro keeps the two in separate sections, so a run reads one or the other.",
            "default": "vanzare"
          },
          "propertyTypes": {
            "title": "🏠 Property sections",
            "uniqueItems": true,
            "type": "array",
            "description": "Which sections to read. Leave the list empty to take every property type in one sweep — Imobiliare.ro's own 'imobiliare' section, which is what a market study usually wants. Picking sections is also how a big search is covered past the ~10,000-listing ceiling: each section is walked separately, so Bucharest flats and Bucharest houses each get their own 10,000. Sections the site only publishes for one deal type are handled for you: offices fall under commercial spaces for sale, and land…",
            "items": {
              "type": "string",
              "enum": [
                "imobiliare",
                "apartamente",
                "case-vile",
                "individuale",
                "garsoniere",
                "duplexuri",
                "penthouses",
                "terenuri",
                "terenuri-constructii",
                "terenuri-agricole",
                "spatii-comerciale",
                "birouri"
              ],
              "enumTitles": [
                "🏘️ Imobiliare (all types) — Imobiliare",
                "🏢 Apartments — Apartamente",
                "🏡 Houses and villas — Case și vile",
                "🏠 Individual homes — Individuale",
                "🚪 Studios — Garsoniere",
                "🏘️ Duplexes — Duplexuri",
                "🌆 Penthouses — Penthouses",
                "🌳 Land — Terenuri",
                "🧱 Construction land — Terenuri pentru construcții",
                "🌾 Agricultural land — Terenuri agricole",
                "🏪 Commercial spaces — Spații comerciale",
                "💼 Offices — Birouri"
              ]
            },
            "default": []
          },
          "maxResults": {
            "title": "🔢 Max listings",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Stop after this many listings across the whole run, not per area. One page carries 30 listings, so a run ends on the first page that crosses your limit.",
            "default": 100
          },
          "includeDetails": {
            "title": "📄 Add full details",
            "type": "boolean",
            "description": "Open each listing's own page to add the untruncated advert text, the complete photo set, the numeric price with its VAT flag, the publish and last-edit dates, bathrooms, and the agency's legal name and agents. Costs one extra request per listing and bills the Property Detail event on top of the listing row.",
            "default": false
          },
          "minPrice": {
            "title": "💵 Min price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip listings priced below this. 0 means no lower bound. Imobiliare.ro quotes in euros, and for a rental this is the monthly rent. Listings that say 'price on request' carry no number and are kept whatever you set here.",
            "default": 0
          },
          "maxPrice": {
            "title": "💰 Max price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip listings priced above this. 0 means no upper bound. Pairing it with a minimum is the usual way to carve a big city into bands that each stay under the ~10,000-listing ceiling.",
            "default": 0
          },
          "minArea": {
            "title": "📐 Min area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip listings smaller than this. 0 means no minimum. Areas are read from the listing's own facts, where Imobiliare.ro writes them as '44,8 mp'.",
            "default": 0
          },
          "maxArea": {
            "title": "📏 Max area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip listings larger than this. 0 means no maximum.",
            "default": 0
          },
          "onlyPriceReduced": {
            "title": "📉 Only price cuts",
            "type": "boolean",
            "description": "Keep only listings Imobiliare.ro is currently flagging as reduced. The site marks the last price move on the card itself, so this is its own judgement, not a guess from comparing two of your runs.",
            "default": false
          },
          "onlyPrivateSellers": {
            "title": "👤 Only owner adverts",
            "type": "boolean",
            "description": "Keep only listings published by the owner rather than an estate agency or developer. The flag comes from the listing card itself, so it works on the first run.",
            "default": false
          },
          "searchUrls": {
            "title": "🌐 Search URLs",
            "type": "array",
            "description": "Paste Imobiliare.ro search addresses instead of filling the form. Build the search on imobiliare.ro, copy the address bar, and the section, county and zone in it are read straight off the URL — including zone-level pages such as https://www.imobiliare.ro/vanzare-apartamente/bucuresti/sector-1/pipera that the form above does not reach. A page number in the address is ignored; the run starts at page one and pages forward on its own.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listingUrls": {
            "title": "🏠 Advert URLs",
            "type": "array",
            "description": "Used by the Property Detail operation: Imobiliare.ro advert addresses to expand, e.g. https://www.imobiliare.ro/oferta/apartament-de-vanzare-sector-1-pipera-2-camere-3-41530318",
            "default": [],
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}