{
  "openapi": "3.0.1",
  "info": {
    "title": "Finn.no Real Estate Scraper",
    "description": "Scrape Norwegian real-estate listings from Finn.no with search URL or filter-based discovery, optional full details and broker contact info.",
    "version": "1.0",
    "x-build-id": "cmLbFUVG91i8SRoOS"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rigelbytes~finn-no-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rigelbytes-finn-no-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/rigelbytes~finn-no-scraper/runs": {
      "post": {
        "operationId": "runs-sync-rigelbytes-finn-no-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/rigelbytes~finn-no-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-rigelbytes-finn-no-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": "Search URLs",
            "type": "array",
            "description": "Preferred input. Finn.no real-estate search page URLs (search.html with any filters already applied), e.g. https://www.finn.no/realestate/homes/search.html?location=0.20061&property_type=3. When provided, these take priority over structured filters below.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchQuery": {
            "title": "Search Query",
            "type": "string",
            "description": "Free-text search in Finn Eiendom (q). Used when building a search from filters (or ignored when startUrls already encode the query)."
          },
          "publishedToday": {
            "title": "New Today",
            "type": "boolean",
            "description": "Only listings published today (published=1 / Nye i dag).",
            "default": false
          },
          "locations": {
            "title": "Areas / Counties",
            "uniqueItems": true,
            "type": "array",
            "description": "Norwegian counties or Finn location codes. Names (Oslo, Nordland, Innlandet, Finnmark, …) are mapped to Finn codes; you can also paste codes such as 0.20061.",
            "items": {
              "type": "string",
              "enum": [
                "Oslo",
                "Akershus",
                "Østfold",
                "Innlandet",
                "Buskerud",
                "Vestfold",
                "Telemark",
                "Agder",
                "Rogaland",
                "Vestland",
                "Møre og Romsdal",
                "Trøndelag",
                "Nordland",
                "Troms",
                "Finnmark",
                "Svalbard"
              ]
            }
          },
          "saleStatus": {
            "title": "Sale Status",
            "uniqueItems": true,
            "type": "array",
            "description": "Salgsstatus: for sale, sold last 3 days, or coming for sale.",
            "items": {
              "type": "string",
              "enum": [
                "for_sale",
                "sold_last_3_days",
                "coming_for_sale"
              ],
              "enumTitles": [
                "For sale (Til salgs)",
                "Sold last 3 days (Solgt siste 3 dager)",
                "Coming for sale (Kommer for salg)"
              ]
            }
          },
          "propertyCondition": {
            "title": "Condition",
            "enum": [
              "",
              "used",
              "new"
            ],
            "type": "string",
            "description": "Tilstand: used housing or new construction.",
            "default": ""
          },
          "priceFrom": {
            "title": "Min Price (Prisantydning)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum asking price in NOK (price_from)."
          },
          "priceTo": {
            "title": "Max Price (Prisantydning)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum asking price in NOK (price_to)."
          },
          "totalPriceFrom": {
            "title": "Min Total Price",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum total price in NOK (price_collective_from)."
          },
          "totalPriceTo": {
            "title": "Max Total Price",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum total price in NOK (price_collective_to)."
          },
          "sharedCostFrom": {
            "title": "Min Shared Cost / Month",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum common expenses per month in NOK (rent_from / fellesutgifter)."
          },
          "sharedCostTo": {
            "title": "Max Shared Cost / Month",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum common expenses per month in NOK (rent_to)."
          },
          "areaFrom": {
            "title": "Min Size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum living area in square meters (area_from)."
          },
          "areaTo": {
            "title": "Max Size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum living area in square meters (area_to)."
          },
          "minBedrooms": {
            "title": "Minimum Bedrooms",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Minimum number of bedrooms (1–5 maps to Finn min_bedrooms)."
          },
          "constructionYearFrom": {
            "title": "Min Year of Construction",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Earliest construction year (construction_year_from)."
          },
          "constructionYearTo": {
            "title": "Max Year of Construction",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Latest construction year (construction_year_to)."
          },
          "plotAreaFrom": {
            "title": "Min Plot Size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum plot / tomt size (plot_area_from)."
          },
          "plotAreaTo": {
            "title": "Max Plot Size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum plot / tomt size (plot_area_to)."
          },
          "propertyTypes": {
            "title": "Housing Type",
            "uniqueItems": true,
            "type": "array",
            "description": "Boligtype filters (apartment, detached, townhouse, semi-detached, farm, etc.).",
            "items": {
              "type": "string",
              "enum": [
                "apartment",
                "detached",
                "townhouse",
                "semi-detached",
                "farm",
                "garage",
                "industrial",
                "plot",
                "multi-family",
                "other"
              ],
              "enumTitles": [
                "Apartment (Leilighet)",
                "Detached house (Enebolig)",
                "Townhouse (Rekkehus)",
                "Semi-detached (Tomannsbolig)",
                "Farm / smallholding (Gårdsbruk/Småbruk)",
                "Garage / parking",
                "Production / industrial",
                "Plot (Tomt)",
                "Multi-family (Bygård)",
                "Other"
              ]
            }
          },
          "ownershipTypes": {
            "title": "Ownership",
            "uniqueItems": true,
            "type": "array",
            "description": "Eierform: stock, share, bond, freeholder, other.",
            "items": {
              "type": "string",
              "enum": [
                "stock",
                "share",
                "bond",
                "freeholder",
                "other"
              ],
              "enumTitles": [
                "Stock (Aksje)",
                "Share (Andel)",
                "Bond (Obligasjon)",
                "Freeholder (Selveier)",
                "Other (Annet)"
              ]
            }
          },
          "sellerTypes": {
            "title": "Private / Broker",
            "uniqueItems": true,
            "type": "array",
            "description": "Privat/Megler filter.",
            "items": {
              "type": "string",
              "enum": [
                "broker",
                "private"
              ],
              "enumTitles": [
                "Broker (Megler)",
                "Private seller (Privat)"
              ]
            }
          },
          "facilities": {
            "title": "Facilities",
            "uniqueItems": true,
            "type": "array",
            "description": "Fasiliteter such as balcony, elevator, garage, view, EV charging, etc.",
            "items": {
              "type": "string",
              "enum": [
                "balcony",
                "fireplace",
                "elevator",
                "no_neighbors",
                "modern",
                "airconditioning",
                "beachfront",
                "hiking",
                "garage",
                "laundry",
                "alarm",
                "broadband",
                "caretaker",
                "view",
                "ev_charging"
              ],
              "enumTitles": [
                "Balcony / terrace",
                "Fireplace",
                "Elevator",
                "No neighbors opposite",
                "Modern",
                "Air conditioning",
                "Beachfront",
                "Hiking terrain",
                "Garage / parking",
                "Shared laundry",
                "Alarm",
                "Broadband",
                "Caretaker / security",
                "View",
                "EV charging"
              ]
            }
          },
          "energyLabels": {
            "title": "Energy Label",
            "uniqueItems": true,
            "type": "array",
            "description": "Energikarakter A–G.",
            "items": {
              "type": "string",
              "enum": [
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G"
              ]
            }
          },
          "floors": {
            "title": "Floor",
            "uniqueItems": true,
            "type": "array",
            "description": "Etasje filter values: NOTFIRST, 1–6, or BIG (over 6th floor).",
            "items": {
              "type": "string",
              "enum": [
                "NOTFIRST",
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "BIG"
              ],
              "enumTitles": [
                "Not 1st floor",
                "1st floor",
                "2nd floor",
                "3rd floor",
                "4th floor",
                "5th floor",
                "6th floor",
                "Above 6th floor"
              ]
            }
          },
          "videoTypes": {
            "title": "Digital Viewings",
            "uniqueItems": true,
            "type": "array",
            "description": "Digitale visninger: video and/or 360°.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2"
              ],
              "enumTitles": [
                "Video",
                "360 viewing"
              ]
            }
          },
          "scrapeDetails": {
            "title": "Fetch Full Listing Details",
            "type": "boolean",
            "description": "When enabled, opens each listing and extracts full details (description, all images, facilities, viewings, cadastre, etc.). Slower but much richer output.",
            "default": false
          },
          "includeContactInfo": {
            "title": "Include Broker / Seller Contact",
            "type": "boolean",
            "description": "When enabled, extracts agent/broker or private seller contact information (phone, email). Performs a detail page fetch per listing.",
            "default": false
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings to scrape (0 = unlimited).",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Apify proxy settings. Residential proxies are recommended for Finn.no.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}