{
  "openapi": "3.0.1",
  "info": {
    "title": "Imoradar24 Scraper - Romania Real Estate Listings",
    "description": "Scrape imoradar24.ro, Romania's real estate aggregator: sale and rent listings with prices, coordinates, photos, price history, expired listings and market statistics. Export Romania property data to JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "BEaHapTfG8iaek5vy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~imoradar24-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-imoradar24-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/recordsdata~imoradar24-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-imoradar24-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/recordsdata~imoradar24-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-imoradar24-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": {
          "mode": {
            "title": "What to collect",
            "enum": [
              "search",
              "urls",
              "sitemap",
              "expired",
              "market"
            ],
            "type": "string",
            "description": "search = live sale and rent listings for the property types and places below. urls = the imoradar24.ro listing or search addresses and listing numbers you list. sitemap = every listing address the site publishes in its sitemap, newest first. expired = listings the site has taken down (price, location and the date they went offline). market = listing counts and price statistics per place and property type.",
            "default": "search"
          },
          "maxItems": {
            "title": "Maximum items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stops after this many rows (all record types together). Free plans are limited to 10 items per run.",
            "default": 50
          },
          "operation": {
            "title": "Deal type",
            "enum": [
              "sale",
              "rent",
              "both"
            ],
            "type": "string",
            "description": "Sale, rent or both. Property types that do not exist for the chosen deal type are skipped with a warning.",
            "default": "sale"
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Which categories to read (search, market, sitemap and expired modes). Penthouses, land and agricultural land exist for sale only; offices exist for rent only. All property types reads the site's combined category.",
            "items": {
              "type": "string",
              "enum": [
                "all",
                "apartments",
                "studios",
                "penthouses",
                "duplexes",
                "houses",
                "detached-houses",
                "land",
                "agricultural-land",
                "commercial",
                "offices"
              ],
              "enumTitles": [
                "All property types",
                "Apartments",
                "Studios (garsoniere)",
                "Penthouses (sale only)",
                "Duplexes",
                "Houses and villas",
                "Detached houses",
                "Land (sale only)",
                "Agricultural land (sale only)",
                "Commercial spaces",
                "Offices (rent only)"
              ]
            },
            "default": [
              "apartments"
            ]
          },
          "locations": {
            "title": "Places",
            "type": "array",
            "description": "Optional. A county or Bucharest by name (Cluj, Brasov, bucuresti) or a path as it appears in imoradar24.ro addresses, for example judetul-cluj/cluj-napoca or bucuresti/sector-3. Empty means the whole country.",
            "items": {
              "type": "string"
            }
          },
          "minPrice": {
            "title": "Minimum price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings priced at or above this amount in euro. Leave empty or 0 for no limit. Listings priced in lei are compared by the euro price the site shows."
          },
          "maxPrice": {
            "title": "Maximum price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings priced at or below this amount in euro. Leave empty or 0 for no limit."
          },
          "minAreaM2": {
            "title": "Minimum area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings with at least this many square meters (usable area, or land area for plots). Leave empty or 0 for no limit."
          },
          "maxAreaM2": {
            "title": "Maximum area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings with at most this many square meters. Leave empty or 0 for no limit."
          },
          "rooms": {
            "title": "Rooms",
            "enum": [
              "any",
              "2",
              "3",
              "4"
            ],
            "type": "string",
            "description": "Number of rooms for apartments, houses and duplexes. 4 means four or more. Any means no room filter.",
            "default": "any"
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "all",
              "owner",
              "agency"
            ],
            "type": "string",
            "description": "owner = private sellers only (no agency commission), agency = agency listings only, all = both. Private sellers are never named in the output.",
            "default": "all"
          },
          "newBuildOnly": {
            "title": "New builds only",
            "type": "boolean",
            "description": "Only new construction. The site allows reading the first page (30 listings) of each new build search, so use places and property types to cover more.",
            "default": false
          },
          "maxPagesPerSearch": {
            "title": "Maximum list pages per search",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Each list page holds 30 listings. The site allows at most 10 pages (300 listings) per search, so split large areas by place or rooms to go deeper.",
            "default": 10
          },
          "startUrls": {
            "title": "Addresses",
            "type": "array",
            "description": "urls mode: imoradar24.ro listing addresses (https://www.imoradar24.ro/oferta/...) or search addresses (for example https://www.imoradar24.ro/apartamente-de-vanzare/judetul-cluj/cluj-napoca).",
            "items": {
              "type": "string"
            }
          },
          "listingIds": {
            "title": "Listing numbers",
            "type": "array",
            "description": "urls mode: imoradar24.ro listing numbers (the digits at the end of a /oferta/ address).",
            "items": {
              "type": "string"
            }
          },
          "modifiedSince": {
            "title": "Changed since (date)",
            "type": "string",
            "description": "sitemap and expired modes: only listings the site changed on or after this date, written YYYY-MM-DD (for example 2026-10-01). Empty means no date limit.",
            "default": ""
          },
          "scrapeDetails": {
            "title": "Open every listing",
            "type": "boolean",
            "description": "On: open each listing page for the full description, all photos, coordinates, price history, amenities, nearby places and the portals that carry the ad (listing-detail-record). Off: card data only from the list page, about twice as fast (listing-record). In sitemap mode, off returns address, photo and change date only (listing-url-record).",
            "default": true
          },
          "includeContactDetails": {
            "title": "Include agent names",
            "type": "boolean",
            "description": "Adds the name of the individual agent or seller account that posted the ad (agentName) and the seller account id (sellerId). Off by default; agency names are always included, private owners are never named. Phone numbers are never collected.",
            "default": false
          },
          "includeRaw": {
            "title": "Include raw site data",
            "type": "boolean",
            "description": "Adds a raw object with the unprocessed site fields that have no dedicated column.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new listings (monitor)",
            "type": "boolean",
            "description": "Skip listings already delivered by an earlier run of the same search, so scheduled runs only return and charge for what is new. The memory is stored in your own Apify account.",
            "default": false
          },
          "trackPriceChanges": {
            "title": "Report price changes",
            "type": "boolean",
            "description": "With Only new listings: also return a listing again when its price changed since the last run, with the previous price and the change in percent (changed-listing-record).",
            "default": false
          },
          "stateKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional label to keep several monitors on the same search apart.",
            "default": ""
          },
          "resetSeen": {
            "title": "Forget seen listings",
            "type": "boolean",
            "description": "Clear the monitor memory for this search before the run, so everything counts as new.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "Parallel connections when a proxy is used. Without a proxy, requests are paced at about 0.8 per second to respect the site's rate limit, whatever this value is.",
            "default": 2
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. Empty means direct requests, which work. If the site pauses a connection (Cloudflare rate limit), the actor switches to the Apify proxy on its own."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}