{
  "openapi": "3.0.1",
  "info": {
    "title": "Boligsiden.dk Scraper 🔥 Homes & Real Estate 🏠",
    "description": "Boligsiden.dk scraper: Danish homes for sale, rentals and foreclosure auctions. Price, every price cut, views, open house, energy label, GPS, photos, agent phone, email, CVR. Rent, deposit, move-in date. Auction court, bids, lawyer. Filter by area, type, price. New-listings mode.",
    "version": "0.0",
    "x-build-id": "1iazvRUCOP9hi7eMa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~boligsiden-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-boligsiden-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/memo23~boligsiden-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-boligsiden-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/memo23~boligsiden-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-boligsiden-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",
        "required": [
          "startUrl"
        ],
        "properties": {
          "startUrl": {
            "title": "Start URL",
            "type": "string",
            "description": "Boligsiden.dk search URL copied from your browser. Homes for sale: /kommune/koebenhavn/tilsalg, /by/aarhus-c/tilsalg, /postnummer/2100/tilsalg or /tilsalg for all of Denmark, optionally with type slugs (/tilsalg/villa,raekkehus) and priceMin/priceMax/areaMin/areaMax query parameters. Rentals: any /lejeboliger URL. Foreclosure auctions: /tvangsauktioner or /tvangsauktioner/kommune/aarhus/kort. /landsdel/<region> paths also work. The fields below override what the URL carries. Default: Copenhagen homes for sale.",
            "default": "https://www.boligsiden.dk/kommune/koebenhavn/tilsalg"
          },
          "listingType": {
            "title": "Listing type",
            "enum": [
              "auto",
              "forSale",
              "rentals",
              "foreclosures"
            ],
            "type": "string",
            "description": "What to scrape. 'auto' (default) reads it from startUrl: /tilsalg = homes for sale, /lejeboliger = rentals, /tvangsauktioner = foreclosure auctions. Pick a value to override the URL.",
            "default": "auto"
          },
          "municipality": {
            "title": "Municipality",
            "type": "string",
            "description": "Municipality slug as it appears in Boligsiden URLs, e.g. koebenhavn, aarhus, odense, aalborg, frederiksberg. Separate several with commas (odense,aalborg). When set, it replaces the location in startUrl. Leave empty to use the URL's location."
          },
          "propertyTypes": {
            "title": "Property types",
            "uniqueItems": true,
            "type": "array",
            "description": "Only return these property types. Pick one or more; leave empty for all types (or for the types in startUrl). When set, it replaces the types in startUrl.",
            "items": {
              "type": "string",
              "enum": [
                "villa",
                "condo",
                "terraced house",
                "villa apartment",
                "holiday house",
                "cooperative",
                "farm",
                "hobby farm",
                "full year plot",
                "holiday plot",
                "houseboat",
                "cattle farm",
                "pig farm",
                "plant farm",
                "forest"
              ],
              "enumTitles": [
                "Villa",
                "Condo (ejerlejlighed)",
                "Terraced house (rækkehus)",
                "Villa apartment (villalejlighed)",
                "Holiday house (fritidsbolig)",
                "Cooperative (andelsbolig)",
                "Farm (landejendom)",
                "Hobby farm (fritidslandbrug)",
                "Building plot (helårsgrund)",
                "Holiday plot (fritidsgrund)",
                "Houseboat (husbåd)",
                "Cattle farm (kvæggård)",
                "Pig farm (svinegård)",
                "Arable farm (planteavlsgård)",
                "Forest property (skovejendom)"
              ]
            }
          },
          "priceMin": {
            "title": "Minimum price (DKK)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price in DKK. Homes for sale: asking price, e.g. 2000000. Rentals: monthly rent, e.g. 6000. Foreclosures: public valuation. Overrides the URL. Leave empty for no lower bound."
          },
          "priceMax": {
            "title": "Maximum price (DKK)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price in DKK. Homes for sale: asking price, e.g. 5000000. Rentals: monthly rent, e.g. 12000. Foreclosures: public valuation. Overrides the URL. Leave empty for no upper bound."
          },
          "areaMin": {
            "title": "Minimum size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest living area in square meters, e.g. 60. Overrides areaMin in startUrl. Leave empty for no lower bound."
          },
          "areaMax": {
            "title": "Maximum size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Largest living area in square meters, e.g. 150. Overrides areaMax in startUrl. Leave empty for no upper bound."
          },
          "roomsMin": {
            "title": "Minimum rooms (rentals)",
            "minimum": 0,
            "type": "integer",
            "description": "Rentals only: fewest rooms, e.g. 2. Ignored for homes for sale and foreclosures."
          },
          "roomsMax": {
            "title": "Maximum rooms (rentals)",
            "minimum": 0,
            "type": "integer",
            "description": "Rentals only: most rooms, e.g. 4. Ignored for homes for sale and foreclosures."
          },
          "petsAllowed": {
            "title": "Pets allowed (rentals)",
            "type": "boolean",
            "description": "Rentals only: when checked, return only rentals that allow pets. Leave unchecked for all rentals."
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "default",
              "newest",
              "longestOnMarket",
              "priceLow",
              "priceHigh",
              "sqmPriceLow",
              "sqmPriceHigh",
              "biggestPriceDrop",
              "latestPriceDrop"
            ],
            "type": "string",
            "description": "Order in which listings are read. Homes for sale support every option. Rentals support newest, priceLow and priceHigh (by rent). Foreclosures support newest, priceLow and priceHigh (by valuation) and otherwise list the soonest auction first. With more than 10,000 homes for sale the order applies within each price band. Default: Boligsiden's own order.",
            "default": "default"
          },
          "includePriceHistory": {
            "title": "Include price history",
            "type": "boolean",
            "description": "Homes for sale: adds originalPrice, numberOfPriceChanges, lastPriceChangeDate and priceHistory (every asking-price change with date and percent). One extra request per listing. Not used for rentals or foreclosures. Default: true.",
            "default": true
          },
          "includeListingStats": {
            "title": "Include listing popularity",
            "type": "boolean",
            "description": "Homes for sale and rentals: adds pageViews, agentSiteClicks and favourites, how many people viewed, clicked through and saved the listing on Boligsiden. One extra request per listing. Default: true.",
            "default": true
          },
          "onlyNewListings": {
            "title": "Only new listings (for scheduled runs)",
            "type": "boolean",
            "description": "Skip listings this same search already returned in earlier runs, so a daily schedule outputs only fresh homes, rentals or auctions. Seen IDs are kept in the key-value store 'boligsiden-seen-listings' in your account. The first run returns everything up to maxItems. Default: false.",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum number of listings to save, 1 to 50000. Default 100. Searches with more than 10,000 matches are split by price automatically, so the full limit is reachable. Free Apify plan: 5 listings per run.",
            "default": 100
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. The actor reaches Boligsiden directly without a proxy, which is the default and the cheapest option. Set Apify Proxy or your own proxy URLs only if your runs get blocked."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}