{
  "openapi": "3.0.1",
  "info": {
    "title": "Sreality.cz Scraper: Real Estate Listings & Price Monitor",
    "description": "Scrape Sreality.cz real estate: flats, houses, land, rentals and auctions by URL, location, region, district or ID. Price, price per m², GPS, agency, 100+ parameters, distances to transport. Monitoring of new, changed and removed listings. Unofficial.",
    "version": "0.0",
    "x-build-id": "rXzNR01GHCbbVIMDB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tsutseisoftware~sreality-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tsutseisoftware-sreality-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/tsutseisoftware~sreality-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tsutseisoftware-sreality-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/tsutseisoftware~sreality-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tsutseisoftware-sreality-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": {
          "startUrls": {
            "title": "Sreality.cz search or listing URLs",
            "type": "array",
            "description": "Search pages from Sreality.cz (set the filters on the website and paste the URL, e.g. https://www.sreality.cz/hledani/prodej/byty/praha?velikost=2%2Bkk), API search URLs (…/api/v1/estates/search?…) or listings (…/detail/…/352436300). All the website's filters in the URL are kept. The filters below are added on top.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "transactionType": {
            "title": "Transaction",
            "enum": [
              "sale",
              "rent",
              "auction",
              "share"
            ],
            "type": "string",
            "description": "For the search built from the fields below (locations, regions, districts; or the whole country when no URL, location, region, district or ID is given).",
            "default": "sale"
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "For the search built from these fields (default: flats).",
            "items": {
              "type": "string",
              "enum": [
                "flat",
                "house",
                "land",
                "commercial",
                "other"
              ],
              "enumTitles": [
                "Flats (Byty)",
                "Houses (Domy)",
                "Land (Pozemky)",
                "Commercial (Komerční)",
                "Other (Ostatní)"
              ]
            }
          },
          "subtypes": {
            "title": "Subtypes / layouts",
            "type": "array",
            "description": "Layouts or kinds as the website names them: flats 1+kk, 1+1, 2+kk, 2+1, 3+kk, 3+1, 4+kk, 4+1, 5+kk, 5+1, 6 a více, Atypický, Pokoj; houses Rodinný, Vila, Chata, Chalupa, Na klíč, Zemědělská usedlost, Vícegenerační dům, Památka/jiné; land Bydlení, Komerční, Pole, Lesy, Louky, Zahrady, Rybníky, Sady/vinice, Ostatní; commercial Kanceláře, Sklady, Výroba, Obchodní prostory, Ubytování, Restaurace, Zemědělský, Činžovní dům, Ordinace, Apartmány, Ostatní; other Garáž, Garážové stání, Vinný sklep, Půdní prostor, Mobilheim, Ostatní.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Towns, city parts, streets or districts in words (e.g. \"Brno\", \"Praha 6\", \"Smíchov\", \"Říčany\"), looked up like the website's search box. Each location is its own search. Up to 20.",
            "items": {
              "type": "string"
            }
          },
          "radiusKm": {
            "title": "Radius around the location (km)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Also listings up to this distance from each location (towns, city parts, streets). 0 = only the location itself."
          },
          "regions": {
            "title": "Regions (kraje)",
            "type": "array",
            "description": "Whole regions, searched together.",
            "items": {
              "type": "string",
              "enum": [
                "10",
                "11",
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "13",
                "14",
                "8",
                "9",
                "12"
              ],
              "enumTitles": [
                "Praha",
                "Středočeský",
                "Jihočeský",
                "Plzeňský",
                "Karlovarský",
                "Ústecký",
                "Liberecký",
                "Královéhradecký",
                "Pardubický",
                "Vysočina",
                "Jihomoravský",
                "Olomoucký",
                "Zlínský",
                "Moravskoslezský"
              ]
            }
          },
          "districts": {
            "title": "Districts (okresy)",
            "type": "array",
            "description": "Districts by name, searched together: e.g. \"Brno-město\", \"Praha-západ\", \"Praha 6\", \"Kladno\".",
            "items": {
              "type": "string"
            }
          },
          "estateIds": {
            "title": "Listing IDs",
            "type": "array",
            "description": "Sreality listing IDs (the number at the end of a listing URL, e.g. 352436300). Each listing is read with its details. Up to 2000 per run.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max listings",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings saved (and charged) in total. 0 = no limit (a whole search, even over the website's 10 000 per search: it is split automatically).",
            "default": 100
          },
          "maxItemsPerSearch": {
            "title": "Max listings per search",
            "minimum": 0,
            "type": "integer",
            "description": "Limit for each URL, location and search separately. 0 = no limit."
          },
          "includeDetails": {
            "title": "Add listing details",
            "type": "boolean",
            "description": "Read each listing's page too: description, listed and updated date, views, all parameters (floor, condition, ownership, energy class, balcony…), original price before a discount, the agency's name, IČO and website. One extra request per listing; no extra charge.",
            "default": false
          },
          "descriptionMaxLength": {
            "title": "Description length",
            "minimum": 0,
            "type": "integer",
            "description": "Cut descriptions to this many characters. 0 = full description."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "newest",
              "priceAsc",
              "priceDesc"
            ],
            "type": "string",
            "description": "Order of the results in each search.",
            "default": "newest"
          },
          "minPrice": {
            "title": "Min price (CZK)",
            "minimum": 0,
            "type": "integer",
            "description": "Website filter (also applied to URLs; the narrower range wins)."
          },
          "maxPrice": {
            "title": "Max price (CZK)",
            "minimum": 0,
            "type": "integer",
            "description": "Website filter. For rentals the monthly rent."
          },
          "minArea": {
            "title": "Min usable area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Website filter."
          },
          "maxArea": {
            "title": "Max usable area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Website filter."
          },
          "minPlotArea": {
            "title": "Min plot area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Website filter (houses and land)."
          },
          "maxPlotArea": {
            "title": "Max plot area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Website filter (houses and land)."
          },
          "minFloor": {
            "title": "Min floor",
            "minimum": -5,
            "type": "integer",
            "description": "Website filter (0 = ground floor)."
          },
          "maxFloor": {
            "title": "Max floor",
            "minimum": -5,
            "type": "integer",
            "description": "Website filter."
          },
          "maxAgeDays": {
            "title": "Listed in the last … days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Website filter: only listings published in this many days (e.g. 1, 7, 30). Empty = any age."
          },
          "conditions": {
            "title": "Building condition",
            "type": "array",
            "description": "Website filter.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "10"
              ],
              "enumTitles": [
                "Very good (Velmi dobrý)",
                "Good (Dobrý)",
                "Poor (Špatný)",
                "Under construction (Ve výstavbě)",
                "Project (Projekt)",
                "New build (Novostavba)",
                "For demolition (K demolici)",
                "Before reconstruction (Před rekonstrukcí)",
                "After reconstruction (Po rekonstrukci)",
                "In reconstruction (V rekonstrukci)"
              ]
            }
          },
          "buildingTypes": {
            "title": "Building type",
            "type": "array",
            "description": "Website filter.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8"
              ],
              "enumTitles": [
                "Wooden (Dřevostavba)",
                "Brick (Cihlová)",
                "Stone (Kamenná)",
                "Prefab (Montovaná)",
                "Panel (Panelová)",
                "Skeleton (Skeletová)",
                "Mixed (Smíšená)",
                "Modular (Modulární)"
              ]
            }
          },
          "ownership": {
            "title": "Ownership",
            "type": "array",
            "description": "Website filter.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3"
              ],
              "enumTitles": [
                "Personal (Osobní)",
                "Cooperative (Družstevní)",
                "State/municipal (Státní/obecní)"
              ]
            }
          },
          "furnished": {
            "title": "Furnished",
            "type": "array",
            "description": "Website filter.",
            "items": {
              "type": "string",
              "enum": [
                "yes",
                "no",
                "partly"
              ],
              "enumTitles": [
                "Furnished",
                "Unfurnished",
                "Partly furnished"
              ]
            }
          },
          "energyClasses": {
            "title": "Energy classes",
            "type": "array",
            "description": "Website filter (PENB).",
            "items": {
              "type": "string",
              "enum": [
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G"
              ],
              "enumTitles": [
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G"
              ]
            }
          },
          "features": {
            "title": "Must have",
            "type": "array",
            "description": "Website filter: all of them.",
            "items": {
              "type": "string",
              "enum": [
                "balcony",
                "terrace",
                "loggia",
                "cellar",
                "garage",
                "parking",
                "elevator",
                "barrierFree",
                "garden",
                "video",
                "virtualTour"
              ],
              "enumTitles": [
                "Balcony",
                "Terrace",
                "Loggia",
                "Cellar",
                "Garage",
                "Parking space",
                "Elevator",
                "Barrier-free",
                "Garden",
                "Video",
                "3D tour"
              ]
            }
          },
          "descriptionContains": {
            "title": "Description contains",
            "type": "string",
            "description": "Website full-text search in titles and descriptions (e.g. \"sauna\", \"výhled\")."
          },
          "sellerType": {
            "title": "Seller",
            "enum": [
              "any",
              "agency",
              "private"
            ],
            "type": "string",
            "description": "Agencies only or private sellers only.",
            "default": "any"
          },
          "minPricePerSqm": {
            "title": "Min price per m² (CZK)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings with at least this price per m²."
          },
          "maxPricePerSqm": {
            "title": "Max price per m² (CZK)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings with at most this price per m² (finds bargains)."
          },
          "maxDistanceToPublicTransport": {
            "title": "Max distance to public transport (m)",
            "minimum": 0,
            "type": "integer",
            "description": "Bus or tram stop within this distance."
          },
          "maxDistanceToMetro": {
            "title": "Max distance to metro (m)",
            "minimum": 0,
            "type": "integer",
            "description": "Metro station within this distance (Praha)."
          },
          "maxDistanceToTrain": {
            "title": "Max distance to a train station (m)",
            "minimum": 0,
            "type": "integer",
            "description": "Train station within this distance."
          },
          "maxDistanceToShop": {
            "title": "Max distance to a supermarket (m)",
            "minimum": 0,
            "type": "integer",
            "description": "Supermarket within this distance."
          },
          "maxDistanceToSchool": {
            "title": "Max distance to a school (m)",
            "minimum": 0,
            "type": "integer",
            "description": "Primary school within this distance."
          },
          "maxDistanceToKindergarten": {
            "title": "Max distance to a kindergarten (m)",
            "minimum": 0,
            "type": "integer",
            "description": "Kindergarten within this distance."
          },
          "maxDistanceToDoctor": {
            "title": "Max distance to a doctor (m)",
            "minimum": 0,
            "type": "integer",
            "description": "General practitioner within this distance."
          },
          "maxDistanceToPlayground": {
            "title": "Max distance to a playground (m)",
            "minimum": 0,
            "type": "integer",
            "description": "Playground within this distance."
          },
          "maxDistanceToRestaurant": {
            "title": "Max distance to a restaurant (m)",
            "minimum": 0,
            "type": "integer",
            "description": "Restaurant or pub within this distance."
          },
          "onlyDiscounted": {
            "title": "Only discounted",
            "type": "boolean",
            "description": "Only listings marked as discounted (or with an original price).",
            "default": false
          },
          "onlyWithPrice": {
            "title": "Only with a price",
            "type": "boolean",
            "description": "Skip listings with the price on request.",
            "default": false
          },
          "onlyWithGps": {
            "title": "Only with GPS",
            "type": "boolean",
            "description": "Skip listings without coordinates.",
            "default": false
          },
          "onlyWithImages": {
            "title": "Only with photos",
            "type": "boolean",
            "description": "Skip listings without photos.",
            "default": false
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Skip listings whose title (or description, with details) contains any of these words, e.g. \"podíl\", \"rezervováno\".",
            "items": {
              "type": "string"
            }
          },
          "agencyIds": {
            "title": "Only these agencies",
            "type": "array",
            "description": "Agency IDs (agencyId in the results) or URLs of agency pages on Sreality.cz.",
            "items": {
              "type": "string"
            }
          },
          "excludeAgencyIds": {
            "title": "Exclude agencies",
            "type": "array",
            "description": "Agency IDs (agencyId in the results) or URLs of agency pages on Sreality.cz.",
            "items": {
              "type": "string"
            }
          },
          "onlyNewOrChanged": {
            "title": "Monitoring: only new or changed listings",
            "type": "boolean",
            "description": "Return only listings that are new or whose price or title changed since the previous run with the same monitoring key. Unchanged listings are not saved or charged. Schedule the actor to get a watchdog.",
            "default": false
          },
          "monitoringKey": {
            "title": "Monitoring key",
            "type": "string",
            "description": "Name of the remembered state; use a different key for each watched search.",
            "default": "default"
          },
          "onlyPriceChanges": {
            "title": "Monitoring: only price changes",
            "type": "boolean",
            "description": "Of the changed listings, only those whose price changed (new listings are still returned).",
            "default": false
          },
          "minPriceDropPercent": {
            "title": "Monitoring: min price drop (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only listings whose price dropped at least this much since the previous run."
          },
          "includeRemovedListings": {
            "title": "Monitoring: include removed listings",
            "type": "boolean",
            "description": "Also return listings that left the search since the previous run, each checked on Sreality.cz: removedReason \"deleted\" (gone from the website) or \"noLongerMatches\" (still listed, but no longer in your search). Listings that come back are marked \"reappeared\".",
            "default": false
          },
          "fastMode": {
            "title": "Fast mode (small extra charge)",
            "type": "boolean",
            "description": "About 2× faster (16 requests at a time, 480 per minute) for a small extra charge per listing. Back to the normal speed when the website slows down.",
            "default": false
          },
          "maxRequestsPerMinute": {
            "title": "Max requests per minute (normal speed)",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Normal speed: 8 at a time, 240 per minute by default.",
            "default": 240
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Czech residential proxy (the default, included in the price) is the fastest: Sreality.cz rejects Apify servers without a proxy, and datacenter proxies work but are several times slower.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "CZ"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}