{
  "openapi": "3.0.1",
  "info": {
    "title": "Nepremicnine.net Scraper - Slovenia Property Listings & Prices",
    "description": "Scrape Nepremicnine.net listings across Slovenia: asking price, area, rooms, floor, build year, photos and agency contacts. Sale, rent and wanted ads, in Slovenian.",
    "version": "1.0",
    "x-build-id": "juI5wda6YQ8QV7UHl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~nepremicnine-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-nepremicnine-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~nepremicnine-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-nepremicnine-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~nepremicnine-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-nepremicnine-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 Nepremicnine.net's own listing pages for any Slovenian region (or Croatia) and returns 25 listings per page, for sale or for rent — plus the two wanted-ad sections no other tool reads; Property Detail takes listing URLs and returns the full advert text, every photo, the attribute list and the agency's contact details.",
            "default": "search"
          },
          "regions": {
            "title": "📍 Regions",
            "uniqueItems": true,
            "type": "array",
            "description": "Which parts of Slovenia (or Croatia) to read. Ljubljana city and Ljubljana surroundings are separate entries and do not overlap; Slovenija is the whole-country view in one search. Every value is Nepremicnine.net's own region, so the list is exactly what the site indexes. A single town such as Maribor or a Ljubljana district such as Bežigrad is searched by pasting that page's address into Search URLs instead.",
            "items": {
              "type": "string",
              "enum": [
                "ljubljana-mesto",
                "ljubljana-okolica",
                "gorenjska",
                "juzna-primorska",
                "severna-primorska",
                "notranjska",
                "savinjska",
                "podravska",
                "koroska",
                "dolenjska",
                "posavska",
                "zasavska",
                "pomurska",
                "slovenija",
                "hrvaska",
                "ostale-drzave"
              ],
              "enumTitles": [
                "🏙️ Ljubljana (city) — LJ-mesto",
                "🗺️ Ljubljana surroundings — LJ-okolica",
                "⛰️ Gorenjska",
                "🌊 Inner Primorska — J. Primorska",
                "🌊 Coastal Primorska — S. Primorska",
                "🌲 Notranjska",
                "🌾 Savinjska",
                "🍇 Podravska",
                "🏔️ Koroška",
                "🌳 Dolenjska",
                "🏞️ Posavska",
                "⚒️ Zasavska",
                "🌻 Pomurska",
                "🇸🇮 All Slovenia — Slovenija",
                "🇭🇷 Croatia — Hrvaška",
                "🌍 Other countries — Ostale države"
              ]
            },
            "default": [
              "ljubljana-mesto"
            ]
          },
          "dealType": {
            "title": "🤝 Section",
            "enum": [
              "prodaja",
              "oddaja",
              "nakup",
              "najem"
            ],
            "type": "string",
            "description": "The portal keeps four sections. Prodaja and oddaja are the adverts — homes for sale and homes to rent. Nakup and najem are the wanted-ad boards, where buyers and renters post what they are looking for with their budget and phone; agencies read those boards for leads. A run reads one section.",
            "default": "prodaja"
          },
          "propertyTypes": {
            "title": "🏠 Property types",
            "uniqueItems": true,
            "type": "array",
            "description": "Which kinds of property to read. Leave the list empty to take every type in one sweep, which is what a market study usually wants. Picking types is also how a wide region is covered manageably: each type is searched separately, so Ljubljana flats and Ljubljana houses each get their own page run.",
            "items": {
              "type": "string",
              "enum": [
                "stanovanje",
                "hisa",
                "vikend",
                "posest",
                "poslovni-prostor",
                "garaza",
                "pocitniski-objekt"
              ],
              "enumTitles": [
                "🏢 Apartments — Stanovanje",
                "🏡 Houses — Hiša",
                "🌄 Weekend houses — Vikend",
                "🌳 Land — Posest",
                "🏬 Commercial — Poslovni prostor",
                "🚗 Garages — Garaža",
                "🏖️ Holiday properties — Počitniški objekt"
              ]
            },
            "default": []
          },
          "maxResults": {
            "title": "🔢 Max listings",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Stop after this many listings across the whole run, not per region. One page carries 25 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 instead of the card's thumbnails, the attribute list (size, floor, bedrooms, bathrooms, land, furnishing), the energy class and the agency's address, website and direct-dial phone numbers with contact names. 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. For sale adverts this is the asking price; for rent adverts the monthly rent. Listings that quote no number are dropped once you set a bound, because they cannot be shown to satisfy it.",
            "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 region into price bands.",
            "default": 0
          },
          "minArea": {
            "title": "📐 Min area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip listings smaller than this. 0 means no minimum. For a house this is the built area; land is reported separately where the portal publishes it.",
            "default": 0
          },
          "maxArea": {
            "title": "📏 Max area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip listings larger than this. 0 means no maximum.",
            "default": 0
          },
          "searchUrls": {
            "title": "🌐 Search URLs",
            "type": "array",
            "description": "Paste Nepremicnine.net search addresses instead of filling the form. Build the search on the site, copy the address bar, and the section, region and town or district in it are read straight off the URL — including town pages such as https://www.nepremicnine.net/oglasi-prodaja/podravska/maribor/ and Ljubljana districts such as https://www.nepremicnine.net/oglasi-prodaja/ljubljana-mesto/lj-center/ that the form above does not reach. A page number in the address is ignored; the run starts at page…",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listingUrls": {
            "title": "🏠 Listing URLs",
            "type": "array",
            "description": "Used by the Property Detail operation: Nepremicnine.net advert addresses to expand, e.g. https://www.nepremicnine.net/oglasi-prodaja/crnuce-nadgorica-zasavska-cesta-stanovanje_7290794/ — the address a listing card links to. The shorter advert form https://www.nepremicnine.net/nepremicnine.html?id=7433390 works too.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}