{
  "openapi": "3.0.1",
  "info": {
    "title": "Boligsiden Scraper — Denmark Property Listings & Agents",
    "description": "Scrape Boligsiden.dk, Denmark's national property portal. Extract asking price, price per m2, public valuation, living and lot area, rooms, build year, energy label, GPS, days on market and the listing agent's name, phone, email and CVR number. No API key, no login.",
    "version": "1.0",
    "x-build-id": "jcnWk75cO0ugYAYXE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/logiover~boligsiden-denmark-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-logiover-boligsiden-denmark-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/logiover~boligsiden-denmark-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-logiover-boligsiden-denmark-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/logiover~boligsiden-denmark-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-logiover-boligsiden-denmark-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": {
          "addressTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Which Boligsiden property types to collect. Pick several to widen the run.",
            "items": {
              "type": "string",
              "enum": [
                "villa",
                "terraced house",
                "condo",
                "holiday house",
                "cooperative",
                "allotment",
                "farm",
                "hobby farm",
                "full year plot",
                "holiday plot",
                "villa apartment",
                "houseboat",
                "double house",
                "multiple family house",
                "business",
                "room"
              ],
              "enumTitles": [
                "House (villa)",
                "Terraced house",
                "Condo / owner flat",
                "Holiday house",
                "Co-operative flat",
                "Allotment",
                "Farm",
                "Hobby farm",
                "Year-round plot",
                "Holiday plot",
                "Villa apartment",
                "Houseboat",
                "Double house",
                "Multi-family house",
                "Business property",
                "Room"
              ]
            },
            "default": [
              "villa"
            ]
          },
          "municipalities": {
            "title": "Municipalities",
            "type": "string",
            "description": "Optional. Municipality slugs as they appear in a Boligsiden URL, e.g. koebenhavn, aarhus, odense, aalborg. Each one is crawled as its own search, so several can be listed. Leave empty for all of Denmark."
          },
          "zipCodes": {
            "title": "Postcodes",
            "type": "string",
            "description": "Optional. Danish postcodes, e.g. 2100, 8000, 5000. Each one is crawled as its own search. Leave empty to ignore postcodes."
          },
          "priceMin": {
            "title": "Minimum price (DKK)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional lower bound on the asking price."
          },
          "priceMax": {
            "title": "Maximum price (DKK)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional upper bound on the asking price."
          },
          "areaMin": {
            "title": "Minimum living area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional lower bound on the living area."
          },
          "roomsMin": {
            "title": "Minimum rooms",
            "minimum": 0,
            "type": "integer",
            "description": "Optional lower bound on the number of rooms."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "timeOnMarket",
              "price",
              "perAreaPrice",
              "housingArea",
              "lotArea",
              "yearBuilt",
              "priceChangePercentage"
            ],
            "type": "string",
            "description": "Order the search results before collecting them.",
            "default": "timeOnMarket"
          },
          "sortAscending": {
            "title": "Sort ascending",
            "type": "boolean",
            "description": "On for lowest first (newest listings when sorting by time on market), off for highest first.",
            "default": true
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many listings. Each request returns 100. Boligsiden caps one search at 10,000 results, so each selected property type is crawled separately to raise the ceiling.",
            "default": 1000
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Boligsiden answers Danish exits. Residential proxy pinned to Denmark is used automatically.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "DK"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}