{
  "openapi": "3.0.1",
  "info": {
    "title": "Serbian Real Estate Scraper | Nekretnine.rs",
    "description": "Scrape apartments, houses, rentals, land, prices, images, and detailed real estate listings from Nekretnine.rs with advanced filters for property type, location, price, rooms, and more. Export structured JSON data for market analysis, lead generation, and property tracking.",
    "version": "0.0",
    "x-build-id": "sGCaZL0vG4TV52elM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/true.false.maybe~nekretnine-rs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-true.false.maybe-nekretnine-rs-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/true.false.maybe~nekretnine-rs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-true.false.maybe-nekretnine-rs-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/true.false.maybe~nekretnine-rs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-true.false.maybe-nekretnine-rs-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": {
          "startUrl": {
            "title": "Custom search URL (advanced)",
            "type": "string",
            "description": "A full nekretnine.rs search URL, e.g. https://www.nekretnine.rs/prodaja-stambenih-nekretnina/beograd/?prezzoMinimo=50000. Overrides all the filter fields below (except Max results) if set."
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "City to search in, e.g. \"Beograd\" or \"Novi Sad\". Ignored if \"Custom search URL\" is set."
          },
          "typeOfListing": {
            "title": "Listing type",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Whether to search for-sale or for-rent listings. Ignored if \"Custom search URL\" is set.",
            "default": "sale"
          },
          "minPrice": {
            "title": "Minimum price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Leave empty for no minimum. Ignored if \"Custom search URL\" is set."
          },
          "maxPrice": {
            "title": "Maximum price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Leave empty for no maximum. Ignored if \"Custom search URL\" is set."
          },
          "sqMeterMin": {
            "title": "Minimum size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Ignored if \"Custom search URL\" is set."
          },
          "sqMeterMax": {
            "title": "Maximum size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Ignored if \"Custom search URL\" is set."
          },
          "noOfRoomsMin": {
            "title": "Minimum number of rooms",
            "minimum": 0,
            "type": "integer",
            "description": "Ignored if \"Custom search URL\" is set."
          },
          "noOfRoomsMax": {
            "title": "Maximum number of rooms",
            "minimum": 0,
            "type": "integer",
            "description": "Ignored if \"Custom search URL\" is set."
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Only show listings whose description matches these keywords, e.g. \"grad\", \"kamin\". Ignored if \"Custom search URL\" is set.",
            "items": {
              "type": "string"
            }
          },
          "listingIds": {
            "title": "Listing IDs",
            "type": "array",
            "description": "The numeric ID(s) from a listing's URL, e.g. for https://www.nekretnine.rs/oglasi/1030479/ the ID is 1030479.",
            "items": {
              "type": "string"
            }
          },
          "listingUrls": {
            "title": "Listing URLs",
            "type": "array",
            "description": "Full URLs of specific listings to scrape, e.g. https://www.nekretnine.rs/oglasi/1030479/",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Maximum number of results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings to scrape. Leave empty for unlimited. Does not apply when scraping specific Listing IDs/URLs. Note: the site itself never shows more than 2000 results for a given search, regardless of how many total matches it reports."
          },
          "startPage": {
            "title": "Start page of search",
            "minimum": 1,
            "type": "integer",
            "description": "Skip ahead to this search-results page instead of starting from page 1. Only applies when using City/filters, not a Custom search URL or direct listings.",
            "default": 1
          },
          "scrapeCompany": {
            "title": "Add-on: Scrape Advertising Company ($)",
            "type": "boolean",
            "description": "Scrape the agency/company advertising each property: name, address, phone numbers, website, logo, opening hours, and the specific agent's name when the site shows one. \nWith this add-on enabled there are additional charges per listing.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}