# Krogsveen.no Real Estate Scraper (`rigelbytes/krogsveen-no-scraper`) Actor

Scrape Norwegian real-estate listings from Krogsveen.no with search URL or filter-based discovery, optional full details and broker contact info.

- **URL**: https://apify.com/rigelbytes/krogsveen-no-scraper.md
- **Developed by:** [Rigel Bytes](https://apify.com/rigelbytes) (community)
- **Categories:** Integrations, Real estate, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Krogsveen.no Real Estate Scraper

Extract thousands of Norwegian real estate listings from Krogsveen.no to power market research, property investment analysis, and automated listing alerts — for just **$1.00** per 1,000 listings.

---

### What can Krogsveen.no Real Estate Scraper do for you?

- **Build targeted property lists** by location, price range, property type, size, and listing status — filter for exactly what your clients or research need.
- **Track market trends** across Norway's housing market with structured pricing, area, and bedroom data refreshed on demand.
- **Enrich listings with full details** — optionally fetch descriptions, all images, floor plans, documents, showings, energy ratings, cadastre data, and construction year for each property.
- **Extract broker contact information** — capture agent names, emails, phones, and department details to power lead generation and CRM workflows.
- **Export ready-to-use data** in JSON, CSV, XML, or Excel via the Apify platform — plug directly into your existing tools and integrations.
- **Stay up to date** — schedule recurring runs and monitor new listings, price changes, and upcoming properties automatically.

### What data can you extract?

| Field | Description |
|-------|-------------|
| 🆔 `id` | Unique estate identifier |
| 📝 `title` | Listing headline |
| 🔗 `url` | Direct link to the Krogsveen.no listing |
| 📍 `location` | Street address, city, postal code |
| 💰 `priceSuggestion` | Asking price in NOK |
| 📅 `rentPerMonth` | Monthly rent in NOK (rental listings) |
| 📐 `areaUsable` | Usable living area in m² |
| 🛏️ `bedrooms` | Number of bedrooms |
| 🏠 `propertyType` | Type of property (leilighet, enebolig, rekkehus, etc.) |
| 📋 `ownershipType` | Ownership form (Selveier, Andel, Aksje, etc.) |
| 📊 `status` | Listing status (For sale, Sold, Reserved, Coming soon) |
| 🖼️ `imageUrl` | Primary listing image |

#### With Full Details (`scrapeDetails: true`):

| Field | Description |
|-------|-------------|
| 📄 `description` | Full property description |
| 🖼️ `imageUrls` | All listing images |
| 🗺️ `latitude` / `longitude` | Geolocation coordinates |
| 🏗️ `constructionYear` | Year built |
| ⚡ `energyLetter` | Energy efficiency rating |
| 📅 `showings` | Scheduled viewing dates |
| 📑 `documents` | Attached documents (prospectus, floor plans) |
| 🏢 `department` | Broker office details |

#### With Broker Contact (`includeContactInfo: true`):

| Field | Description |
|-------|-------------|
| 👤 `brokers` | Agent names, roles, photos |
| 📧 `brokerEmails` | Broker email addresses |
| 📞 `contactPhones` | Mobile and office phone numbers |
| 🏢 `department` | Department name and address |

### Why use this scraper?

- 🔬 **Market research** — analyze pricing trends, inventory levels, and property characteristics across Norwegian regions.
- 📊 **Competitive intelligence** — monitor listings by developers, agencies, or specific neighborhoods.
- 📬 **Lead generation** — collect broker contact details alongside property data for targeted outreach.
- 🤖 **Automate manual work** — replace tedious copy-paste research with scheduled, hands-free data extraction.
- 🔔 **Listing alerts** — track new and upcoming properties before they hit the broader market.

### Pricing

- **$1.00/1,000 listings** (base charge per listing)
- **$2.00/1,000 detailed listings** (when `scrapeDetails` is enabled)
- **$2.00/1,000 broker contacts** (when `includeContactInfo` is enabled)

No hidden fees or limits on usage. Apify plan discounts apply:
- **Bronze:** 10% off - $0.90 / $1.70 / $1.70 per 1,000
- **Silver:** 20% off - $0.80 / $1.50 / $1.50 per 1,000
- **Gold:** 30% off - $0.70 / $1.30 / $1.30 per 1,000

You only pay for what you use — base listings are always charged, detail and broker enrichments only when you enable them.

---

### How to use Krogsveen.no Real Estate Scraper

1. **Create an Apify account** — sign up at [Apify.com](https://apify.com) (free tier available).
2. **Open the actor** — go to [Krogsveen.no Real Estate Scraper](https://apify.com/rigelbytes/krogsveen-no-scraper) on Apify Store.
3. **Configure your search** — add search queries (e.g. "Oslo", "Bergen") or paste Krogsveen search URLs, then set price range, property types, size, and bedroom filters.
4. **Choose enrichments** — enable `scrapeDetails` for full property details and/or `includeContactInfo` for broker contacts.
5. **Start the run** — click **Start** and let the scraper collect your listings.
6. **Download the results** — export your dataset in JSON, CSV, XML, Excel, or access it via the Apify API.

### Input

The actor accepts the following input parameters. Below is a list of all supported fields:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `startUrls` | array | No | Krogsveen search pages (with filters in the query string) or individual listing URLs |
| `listingType` | string | No | Search mode: `sale` (For sale) or `rent` (For rent). Default: `sale` |
| `searchQueries` | array | No | Free-text location or keyword phrases, e.g. "Oslo", "Bergen", "Lillestrøm" |
| `minPrice` | integer | No | Minimum asking price / rent in NOK |
| `maxPrice` | integer | No | Maximum asking price / rent in NOK |
| `minHabitableArea` | integer | No | Minimum habitable area in m² |
| `maxHabitableArea` | integer | No | Maximum habitable area in m² |
| `bedrooms` | integer | No | Minimum number of bedrooms |
| `propertyTypes` | array | No | Property type filters: `enebolig`, `rekkehus`, `tomannsbolig`, `leilighet`, `annet`, `tomt`, `hytter/fritid`, `gårdsbruk/småbruk` |
| `commissionStates` | array | No | Listing status: `ACTIVE` (on market) and/or `UPCOMING` (coming soon) |
| `commissionTypes` | array | No | Advanced. Override GraphQL commissionTypes |
| `ownershipTypes` | array | No | Ownership type codes passed to the search API |
| `scrapeDetails` | boolean | No | Fetch full listing detail payload. Default: `false` |
| `includeContactInfo` | boolean | No | Extract broker contact info. Default: `false` |
| `maxItems` | integer | No | Maximum listings to scrape (0 = unlimited). Default: 50 |
| `proxyConfiguration` | object | No | Apify proxy settings. Residential proxies recommended |

#### 📝 Copy for Use:

```json
{
    "listingType": "sale",
    "searchQueries": ["Oslo"],
    "propertyTypes": ["leilighet"],
    "maxPrice": 8000000,
    "scrapeDetails": true,
    "includeContactInfo": true,
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}
````

### Why Choose This Scraper?

- **Affordable**: Pay only $1.00 per 1,000 listings scraped, with optional enrichments at $2.00/1,000 each. Apify plan discounts up to 30% off.
- **Comprehensive**: Capture listing details, full descriptions, images, broker contacts, showings, documents, and more — all in one run.
- **Easy to Use**: Start with a simple location query or paste a Krogsveen search URL. No coding required to get started.
- **Reliable**: Built on Krogsveen's native APIs (GraphQL + Sanity) with residential proxy support to keep your data flowing.

### Recommended Proxy Providers

- ## **Shifter**

  - Reliable residential proxies all over the world.
  - Cheap rates
  - [Order Shifter Now](https://shifter.io/r/YoBB/order)
  - Get 10% Off any product, use coupan `rigelbytes-YoBB`.

- ## **OxyLabs**

  - **100M+ Proxies**
  - Fastest proxies in the market
  - Real profile, human-like Residential IPs
  - Quality assurance framework for most reliable IPs
  - [Get Proxies](https://oxylabs.go2cloud.org/aff_c?offer_id=7\&aff_id=1366\&url_id=7)

- ## **DataImpulse**

  - Covers **200+ Counties**
  - Reliable Residential Proxies for just $1/GB
  - [Get Residential Proxies](https://dataimpulse.com/?aff=89421)

### [![Learn More About Proxies](https://img.shields.io/badge/Learn_More-About_Proxies-blue?style=for-the-badge)](#understanding-proxies)

### 🙌 Why Buy Through Our Affiliate Link?

- Exclusive Deals: Some providers may offer special discounts or bonuses when you use our link.
- Support Our Work: Each purchase helps us maintain and improve the tools and services we provide.
- No Extra Cost: You pay the same price, but part of it goes to supporting our efforts.

#### Running via Apify Console

You can run this actor from the Apify Console by providing the necessary input parameters.

#### Running via API

You can trigger this actor using the Apify API, passing the required input in the request body.

```shell
## Python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run_input = {
    "listingType": "sale",
    "searchQueries": ["Oslo"],
    "propertyTypes": ["leilighet"],
    "maxPrice": 8000000,
    "scrapeDetails": True,
    "includeContactInfo": True,
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}

run = client.actor("rigelbytes/krogsveen-no-scraper").call(run_input=run_input)

dataset_id = run["defaultDatasetId"]
for item in client.dataset(dataset_id).iterate_items():
    print(item)
```

```shell
## JavaScript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const runInput = {
    listingType: 'sale',
    searchQueries: ['Oslo'],
    propertyTypes: ['leilighet'],
    maxPrice: 8000000,
    scrapeDetails: true,
    includeContactInfo: true,
    maxItems: 50,
    proxyConfiguration: {
        useApifyProxy: true,
        apifyProxyGroups: ['RESIDENTIAL']
    }
};

const run = await client.actor('rigelbytes/krogsveen-no-scraper').call(runInput);

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

```shell
## cURL
curl -X POST "https://api.apify.com/v2/acts/rigelbytes/krogsveen-no-scraper/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "listingType": "sale",
    "searchQueries": ["Oslo"],
    "propertyTypes": ["leilighet"],
    "maxPrice": 8000000,
    "scrapeDetails": true,
    "includeContactInfo": true,
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}'
```

### 🚀 Other Tools by Rigel Bytes

Explore **110** more scraping tools by Rigel Bytes, organized by use case:

#### 📱 Social Media

Scrape Instagram, TikTok, LinkedIn, and more for content research and marketing intelligence.

- **[Export Instagram Reels](https://apify.com/rigelbytes/export-instagram-reels)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Facebook Ads Scraper](https://apify.com/rigelbytes/facebook-ads-scraper)** — Extract posts, profiles, and engagement data from Facebook for content research, influencer tracking, and marketing analytics.
- **[Instagram Analytics Tool](https://apify.com/rigelbytes/instagram-analytics-tool)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Comment Scraper](https://apify.com/rigelbytes/instagram-comment-scraper)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Creator Stats](https://apify.com/rigelbytes/instagram-creator-stats)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Engagement Tool](https://apify.com/rigelbytes/instagram-engagement-tool)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Post Scraper](https://apify.com/rigelbytes/instagram-post-scraper)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[instagram-posts](https://apify.com/rigelbytes/instagram-posts)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Profile Scraper](https://apify.com/rigelbytes/instagram-profile-scraper)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Reel Scraper](https://apify.com/rigelbytes/instagram-reel-scraper)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[linkedin-company-details](https://apify.com/rigelbytes/linkedin-company-details)** — Extract posts, profiles, and engagement data from LinkedIn for content research, influencer tracking, and marketing analytics.
- **[Linkedin Company Scraper](https://apify.com/rigelbytes/linkedin-company-scraper)** — Extract posts, profiles, and engagement data from LinkedIn for content research, influencer tracking, and marketing analytics.
- **[LinkedIn Job Scraper](https://apify.com/rigelbytes/linkedin-job-scraper)** — Extract posts, profiles, and engagement data from LinkedIn for content research, influencer tracking, and marketing analytics.
- **[LinkedIn Profile Scraper](https://apify.com/rigelbytes/linkedin-profile-scraper)** — Extract posts, profiles, and engagement data from LinkedIn for content research, influencer tracking, and marketing analytics.
- **[Scrape Instagram Creators](https://apify.com/rigelbytes/scrape-instagram-creators)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Tiktok Comment Scraper](https://apify.com/rigelbytes/tiktok-comment-scraper)** — Extract posts, profiles, and engagement data from TikTok for content research, influencer tracking, and marketing analytics.
- **[Tiktok Creator Stats](https://apify.com/rigelbytes/tiktok-creator-stats)** — Extract posts, profiles, and engagement data from TikTok for content research, influencer tracking, and marketing analytics.
- **[Tiktok Engagement Rate](https://apify.com/rigelbytes/tiktok-engagement-rate)** — Extract posts, profiles, and engagement data from TikTok for content research, influencer tracking, and marketing analytics.
- **[TikTok Profile Scraper](https://apify.com/rigelbytes/tiktok-profile-scraper)** — Extract posts, profiles, and engagement data from TikTok for content research, influencer tracking, and marketing analytics.
- **[YouTube Comment Scraper](https://apify.com/rigelbytes/youtube-comment-scraper)** — Extract posts, profiles, and engagement data from YouTube for content research, influencer tracking, and marketing analytics.

#### 🏠 Real Estate

Extract property listings, prices, and agent data from top real estate platforms.

- **[Aengevelt Scraper — German Real Estate Property Listings](https://apify.com/rigelbytes/aengevelt-scraper)** — Extract property listings from Aengevelt Immobilien. Get pricing, location, contact data, and images from Germany's...
- **[Airbnb Address Finder](https://apify.com/rigelbytes/airbnb-address-finder)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Availability Calendar](https://apify.com/rigelbytes/airbnb-availability-calendar)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Detailed Scraper - Search & Listing Details](https://apify.com/rigelbytes/airbnb-detailed-scraper)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Images Downloader](https://apify.com/rigelbytes/airbnb-images-downloader)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Listing](https://apify.com/rigelbytes/airbnb-listing)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Listing Urls](https://apify.com/rigelbytes/airbnb-listing-urls)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Property Details](https://apify.com/rigelbytes/airbnb-property-details)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Reviews](https://apify.com/rigelbytes/airbnb-reviews)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Scraper - Search & Listing Details](https://apify.com/rigelbytes/airbnb-scraper)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Aqar.fm Scraper — النسخة العربية](https://apify.com/rigelbytes/aqar-fm-scraper)** — Scrapes Saudi real estate listings from aqar.fm via Next.js RSC search API. Supports Arabic search paths, start...
- **[Bayut Scraper](https://apify.com/rigelbytes/bayut-scraper)** — Scrape property listings and market data from Bayut for market research, price monitoring, and investment analysis.
- **[BNP Paribas Real Estate Scraper](https://apify.com/rigelbytes/bnppre-scraper)** — Scrape commercial property listings from BNP Paribas Real Estate (bnppre.de) — offices, retail, industrial, and...
- **[Boligsiden.dk Scraper](https://apify.com/rigelbytes/boligsiden-dk-scraper)** — Scrape Danish real estate listings from Boligsiden.dk — for sale, sold, and rental properties with pricing, details,...
- **[CBRE Scraper — Extract German Commercial Property Listings](https://apify.com/rigelbytes/cbre-scraper)** — Scrape commercial real estate letting listings from CBRE Germany (cbre.de). Office & industrial property data for...
- **[Colliers Scraper — German Commercial Property Listings](https://apify.com/rigelbytes/colliers-scraper)** — Extract commercial property listings from Colliers.de — offices, industrial, retail & logistics with pricing, map...
- **[Daft.ie Property Scraper](https://apify.com/rigelbytes/daft-ie-scraper)** — Scrapes property listings from Daft.ie including residential, rental, commercial, and new homes across Ireland.
- **[DAHLER Real Estate Scraper — German Property Listings API](https://apify.com/rigelbytes/dahler-scraper)** — Extract buy and rent property listings from DAHLER Immobilien across Germany, Austria, and Spain. Get prices,...
- **[dubai-listing-scraper](https://apify.com/rigelbytes/dubai-listing-scraper)** — Extract unlimited property listings from Bayut.com — the UAE's largest real estate platform. Get detailed property...
- **[Export Airbnb Calendar](https://apify.com/rigelbytes/export-airbnb-calendar)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Funda Netherlands Real Estate Scraper](https://apify.com/rigelbytes/funda-nl-scraper)** — Scrape property listings from Funda.nl — the largest real estate platform in the Netherlands. Supports buy and rent,...
- **[Furnished Finder Fast](https://apify.com/rigelbytes/furnished-finder-fast)** — Scrape property listings and market data from Furnished Finder for market research, price monitoring, and investment analysis.
- **[Extract Furnished Finder Hosts](https://apify.com/rigelbytes/furnished-finder-hosts)** — Scrape property listings and market data from Furnished Finder for market research, price monitoring, and investment analysis.
- **[FurnishedFinder](https://apify.com/rigelbytes/furnishedfinder)** — Scrape property listings and market data from Furnished Finder for market research, price monitoring, and investment analysis.
- **[German Real Estate MCP](https://apify.com/rigelbytes/german-realestate-mcp)** — MCP server for German real estate — 14 Rigel Bytes scrapers (ImmoScout24, Immowelt, Kleinanzeigen, RE/MAX, CBRE,...
- **[GrandCityProperty Scraper — Extract German Rental Listings](https://apify.com/rigelbytes/grandcityproperty)** — Extract rental property listings from GrandCityProperty.de — prices, floor plans, energy data, and contact details....
- **[Grossmann Berger Scraper — German Real Estate Listings](https://apify.com/rigelbytes/grossmann-berger-scraper)** — Extract property listings, prices, agent contacts, and images from grossmann-berger.de. From $2/1,000 listings....
- **[Hemnet.se Scraper - Swedish Real Estate Listings](https://apify.com/rigelbytes/hemnet-se-scraper)** — Scrape property listings from Hemnet.se including for-sale, upcoming, and sold homes. Search by URL or location...
- **[Immobiliare Italy Real Estate Scraper](https://apify.com/rigelbytes/immobiliare-it-scraper)** — Scrape property listings and market data from real estate portals for market research, price monitoring, and investment analysis.
- **[Immobilienscout24](https://apify.com/rigelbytes/immobilienscout24)** — Scrape property listings and market data from real estate portals for market research, price monitoring, and investment analysis.
- **[Immobilienscout24-scraper](https://apify.com/rigelbytes/immobilienscout24-scraper)** — Scrape property listings and market data from real estate portals for market research, price monitoring, and investment analysis.
- **[Immoweb Scraper - Belgium Property Listings](https://apify.com/rigelbytes/immoweb-scraper)** — Scrapes property listings from Immoweb.be. Supports search result extraction with optional property detail enrichment.
- **[Immowelt Property Scraper](https://apify.com/rigelbytes/immowelt-property-scraper)** — The Immowelt Scraper helps you extract unlimited real estate listings from Immowelt with complete details including...
- **[Immowelt Scraper](https://apify.com/rigelbytes/immowelt-scraper)** — The Immowelt Scraper helps you extract unlimited real estate listings from Immowelt with complete details including...
- **[JLL Property Scraper — Extract Commercial  Investment Listings](https://apify.com/rigelbytes/jll-scraper)** — Scrape commercial and investment property data from JLL Germany (gewerbeimmobilien.jll.de and invest.jll.com)....
- **[Land.com Agents Scraper](https://apify.com/rigelbytes/landdotcom-agents)** — Scrape property listings and market data from Land.com for market research, price monitoring, and investment analysis.
- **[Land.com Scraper](https://apify.com/rigelbytes/landdotcom-scraper)** — Scrape property listings and market data from Land.com for market research, price monitoring, and investment analysis.
- **[Outdoorsy Scraper](https://apify.com/rigelbytes/outdoorsy-scraper)** — Scrape property listings and market data from Outdoorsy for market research, price monitoring, and investment analysis.
- **[PropertyFinder Eygpt](https://apify.com/rigelbytes/propertyfinder-eygpt)** — Scrape property listings and market data from Property Finder for market research, price monitoring, and investment analysis.
- **[Propertyfinder Scraper](https://apify.com/rigelbytes/propertyfinder-scraper)** — Scrape property listings and market data from Property Finder for market research, price monitoring, and investment analysis.
- **[Realtor.com Agent Scraper](https://apify.com/rigelbytes/realtor-agent-scraper)** — Scrape real estate agents from Realtor.com by city or ZIP code. Optionally fetch full agent profiles and reviews via...
- **[Realtor.com Scraper](https://apify.com/rigelbytes/realtor-scraper)** — Scrape Realtor.com property listings with full search filters via GraphQL. Supports price, beds/baths, property...
- **[Redfin Scraper](https://apify.com/rigelbytes/redfin-scraper)** — Scrape property listings and market data from Redfin for market research, price monitoring, and investment analysis.
- **[RE/MAX Germany Scraper](https://apify.com/rigelbytes/remax-scraper)** — Scrapes residential and commercial real estate listings from remax.de by German Bundesland. Extracts prices, areas,...
- **[Rent.com Scraper](https://apify.com/rigelbytes/rent-com-scraper)** — Scrape rental listings from rent.com — search by location query or URL. Extracts property details, photos, floor...
- **[Rightmove Scraper](https://apify.com/rigelbytes/rightmove-scraper)** — Scrape property listings and market data from Rightmove for market research, price monitoring, and investment analysis.
- **[RVshare Scraper](https://apify.com/rigelbytes/rvshare-scraper)** — Scrape property listings and market data from RVshare for market research, price monitoring, and investment analysis.
- **[Savills Property Scraper — Extract Listings by Location](https://apify.com/rigelbytes/savills-scraper)** — Scrape residential and commercial property listings from Savills by city. Get prices, addresses, sizes, bedrooms,...
- **[Unlimited Redfin Scraper](https://apify.com/rigelbytes/unlimited-redfin-scraper)** — Scrape property listings and market data from Redfin for market research, price monitoring, and investment analysis.
- **[Wüstenrot Immobilien Scraper — German Property Listings API](https://apify.com/rigelbytes/wuestenrot-immobilien)** — Scrape property listings and market data from real estate portals for market research, price monitoring, and investment analysis.
- **[Zillow Detail Scraper](https://apify.com/rigelbytes/zillow-detail-scraper)** — Scrape property listings and market data from Zillow for market research, price monitoring, and investment analysis.
- **[Zillow Scraper](https://apify.com/rigelbytes/zillow-scraper)** — Scrape property listings and market data from Zillow for market research, price monitoring, and investment analysis.
- **[Zoopla Scraper](https://apify.com/rigelbytes/zoopla-scraper)** — Scrape property listings and market data from Zoopla for market research, price monitoring, and investment analysis.

#### ✈️ Travel & Hospitality

Monitor rentals, bookings, and travel listings at scale.

- **[Autotrader Scraper](https://apify.com/rigelbytes/autotrader-scraper)** — Scrapes car listings from Autotrader.com with advanced search filters, pagination, and detailed vehicle data.
- **[CarMax Scraper](https://apify.com/rigelbytes/carmax-scraper)** — Scrapes used car listings from CarMax.com with search URL, zip code filtering, and pagination support.
- **[Cars.com Scraper](https://apify.com/rigelbytes/cars-scraper)** — Scrapes car listings from Cars.com using their GraphQL API. Extracts detailed vehicle data including price, specs,...
- **[Cars & Bids Scraper](https://apify.com/rigelbytes/carsandbids-scraper)** — Scrape live, upcoming, and past car auctions from Cars & Bids. Extract vehicle details, bids, photos, comments, and...
- **[Ticketmaster Scraper](https://apify.com/rigelbytes/ticketmaster-scraper)** — Collect rental and travel listings from Ticketmaster for pricing intelligence and availability tracking.

#### 🛒 E-commerce

Scrape products, prices, and marketplace data for competitive research.

- **[Amazon Product Scraper](https://apify.com/rigelbytes/amazon-product-scraper)** — Scrape products, prices, and seller data from Amazon for competitor monitoring, pricing, and product research.
- **[Amazon Search Scraper](https://apify.com/rigelbytes/amazon-scraper)** — Scrape products, prices, and seller data from Amazon for competitor monitoring, pricing, and product research.
- **[AutoScout24 Scraper](https://apify.com/rigelbytes/autoscout24-scraper)** — Scrape car listings from AutoScout24 with full filter support. Extract makes, models, prices, mileage, seller info,...
- **[Daraz](https://apify.com/rigelbytes/daraz)** — Scrape products, prices, and seller data from Daraz for competitor monitoring, pricing, and product research.
- **[Etsy Scraper](https://apify.com/rigelbytes/etsy-scraper)** — Scrape products, prices, and seller data from Etsy for competitor monitoring, pricing, and product research.
- **[Homedepot Scraper](https://apify.com/rigelbytes/homedepot-scraper)** — HomeDepot Products Scraper lets you extract product data from homedepot.com using a collection URL and delivery ZIP....
- **[Kleinanzeigen Scraper](https://apify.com/rigelbytes/kleinanzeigen-scraper)** — Scrape listings from kleinanzeigen.de — search results and detail pages for any category (electronics, vehicles,...
- **[Otodom Scraper - Polish Real Estate Listings](https://apify.com/rigelbytes/otodom-scraper)** — Scrapes property listings from Otodom.pl, Poland's leading real estate marketplace. Supports filters for transaction...

#### 💼 Jobs & Recruitment

Collect job listings and company hiring data for market analysis.

- **[StepStone Jobs Scraper — Extract German/DACH Job Listings](https://apify.com/rigelbytes/stepstone-jobs-scraper)** — Scrape thousands of job listings from StepStone (DE, AT, BE, NL) with salary, skills, remote status & more. From...
- **[Upwork Jobs Scraper](https://apify.com/rigelbytes/upwork-jobs-scraper)** — Scrapes Upwork freelance job listings by keyword with full search filters (sort, experience, job type, budget,...
- **[ZipRecruiter Job Scraper](https://apify.com/rigelbytes/ziprecruiter-scraper)** — Scrape job listings from ZipRecruiter with search queries, locations, and radius filters. Extracts title, company,...

#### 📩 Lead Generation

Find business contacts, leads, and company data for sales and outreach.

- **[Booli.se Scraper](https://apify.com/rigelbytes/booli-se-scraper)** — Scrapes Swedish real estate listings from Booli.se — for sale, sold prices, and new construction. Supports search...
- **[Company Service Finder](https://apify.com/rigelbytes/company-service-finder)** — The Company Service Finder uses AI to extract and analyze company services from Google Search & Maps. Get detailed...
- **[Doctify Scraper](https://apify.com/rigelbytes/doctify-scraper)** — Doctify Scraper lets you extract doctor and practice data from doctify.com using a search results URL. Collect...
- **[Doctolib Scraper](https://apify.com/rigelbytes/doctolib-scraper)** — Scrape doctor profiles, availability, and practice details from Doctolib.de — Germany's largest medical appointment...
- **[FindLaw Law Firm Scraper - Attorney & Law Firm Data Extraction](https://apify.com/rigelbytes/findlaw-scraper)** — Scrape law firm profiles from FindLaw.com. Extract detailed attorney and firm information including contact details,...
- **[Finn.no Real Estate Scraper](https://apify.com/rigelbytes/finn-no-scraper)** — Scrape Norwegian real-estate listings from Finn.no with search URL or filter-based discovery, optional full details...
- **[Google Maps Scraper](https://apify.com/rigelbytes/google-maps-scraper)** — Find business leads and contact details from Google Maps for outbound sales, prospecting, and CRM enrichment.
- **[Website Services Finder](https://apify.com/rigelbytes/website-services-finder)** — Automatically extract and analyze company services from any business website using advanced AI. Choose from 5 AI...
- **[Zillow Agents](https://apify.com/rigelbytes/zillow-agents)** — Find business leads and contact details from Zillow for outbound sales, prospecting, and CRM enrichment.
- **[Zillow Agents Phone](https://apify.com/rigelbytes/zillow-agents-phone)** — Find business leads and contact details from Zillow for outbound sales, prospecting, and CRM enrichment.
- **[Zillow Agents Vault](https://apify.com/rigelbytes/zillow-agents-vault)** — Find business leads and contact details from Zillow for outbound sales, prospecting, and CRM enrichment.

#### ⭐ Reviews & Ratings

Monitor reviews and reputation data across review platforms.

- **[Airbnb Listing Reviews](https://apify.com/rigelbytes/airbnb-listing-reviews)** — Collect reviews and ratings from Airbnb for reputation monitoring and customer insights.
- **[BBB Scraper](https://apify.com/rigelbytes/bbb-scraper)** — Collect reviews and ratings from BBB for reputation monitoring and customer insights.
- **[Costco Product Scraper](https://apify.com/rigelbytes/costco-scraper)** — Scrapes product data from Costco.com including prices, descriptions, ratings, and availability. Supports search...
- **[HRS Hotel Reviews Scraper](https://apify.com/rigelbytes/hrs-hotel-reviews-scraper)** — Extract hotel details, room offers, and guest reviews from HRS hotel URLs.
- **[HRS Hotel Scraper](https://apify.com/rigelbytes/hrs-scraper)** — Scrapes hotel listings, prices, ratings, and amenities from HRS (hrs.com) by location and travel dates.
- **[Rottentomatoes Reviews Scraper](https://apify.com/rigelbytes/rottentomatoes-reviews-scraper)** — Collect reviews and ratings from Rotten Tomatoes for reputation monitoring and customer insights.
- **[Trustpilot Reviews Scraper](https://apify.com/rigelbytes/trustpilot-reviews)** — Collect reviews and ratings from Trustpilot for reputation monitoring and customer insights.

#### 🍔 Food & Delivery

Extract restaurant, grocery, and delivery platform data.

- **[Instacart Scraper](https://apify.com/rigelbytes/instacart-scraper)** — Scrape menus, stores, and delivery data from Instacart for data-driven research and automation.
- **[Publix Scraper](https://apify.com/rigelbytes/publix-scraper)** — Scrape menus, stores, and delivery data from Publix for data-driven research and automation.

#### 🛠️ Developer Tools

General-purpose scraping and automation tools.

- **[EU Tenders Scraper](https://apify.com/rigelbytes/eu-tenders-scraper)** — Scrape EU public procurement notices from TED (Tenders Electronic Daily) with advanced search filters,...
- **[Web Crawler](https://apify.com/rigelbytes/webcrawler)** — This web crawler is designed to provide users with complete flexibility by allowing them to use their \*\*own...

### Understanding Proxies:

When scraping data or browsing anonymously, proxies are essential. They act as intermediaries, masking your original IP address and allowing you to send requests from another location.

#### Why Use Proxies?

- Avoid IP Blocks: By routing requests through proxies, you prevent the target website from recognizing your IP as a scraper or spammer.
- Access Geo-restricted Content: Proxies let you access content or websites restricted by location.
- Enhance Anonymity: Hide your actual IP, ensuring privacy while scraping or browsing.

#### Types of Proxies

1. Residential Proxies
   - Real IP addresses provided by ISPs to home users.
   - They mimic regular users, making them harder to detect.
   - Best for: Long-term, undetectable scraping, and avoiding blocks.
2. Data Center Proxies
   - IP addresses from servers in data centers.
   - Faster and cheaper than residential proxies but easier to detect and block.
   - Best for: High-speed scraping, but with a higher risk of detection.
3. Mobile Proxies
   - IPs provided by mobile carriers (3G/4G/5G networks).
   - Very difficult to detect, as they appear as regular mobile users.
   - Best for: Mobile-related scraping or avoiding sophisticated blocks.

#### Rotating Proxies vs. Straight Proxies

- Rotating Proxies: Every request you send goes through a different proxy, making it harder for websites to detect patterns.
- Straight Proxies: All requests are sent through the same proxy, making it easier to track your IP.

### About Rigel Bytes

Rigel Bytes specializes in web scraping, automation, and data analytics. We help businesses extract and leverage valuable data for informed decision-making.

### Contact Us

Ready to unlock the power of data? Reach out to us at (contact@rigelbytes.com) or [book an appointment](https://cal.com/faizanali/appointments) with us to learn more about how we can help you achieve your data goals.

### Detailed Data

Sample card-level listing:

```json
{
    "id": "12345678",
    "url": "https://www.krogsveen.no/kjope/boliger-til-salgs/12345678",
    "title": null,
    "streetAddress": "Storgata 12",
    "postalCode": "0155",
    "postalName": "Oslo",
    "localAreaName": "Sentrum",
    "location": "Storgata 12, Sentrum, 0155",
    "propertyType": "leilighet",
    "estateBaseType": "residential",
    "assignmentType": null,
    "ownershipType": "Andel",
    "ownershipCode": 1,
    "status": "For sale",
    "statusCode": 2,
    "upcoming": false,
    "searchStatus": "ACTIVE",
    "priceSuggestion": 4250000,
    "collectiveDebt": 150000,
    "rentPerMonth": null,
    "areaUsable": 62,
    "plotArea": null,
    "bedrooms": 2,
    "latitude": 59.9139,
    "longitude": 10.7522,
    "imageUrl": "https://cdn.sanity.io/images/u9ed36i9/production/abc123-800x600.jpg",
    "imageUrls": ["https://cdn.sanity.io/images/u9ed36i9/production/abc123-800x600.jpg"],
    "projectId": null,
    "listingKind": "sale",
    "source": "card"
}
```

Sample detail-enriched listing (with `scrapeDetails: true` and `includeContactInfo: true`):

```json
{
    "id": "12345678",
    "url": "https://www.krogsveen.no/kjope/boliger-til-salgs/12345678",
    "title": "Lys 2-roms leilighet i sentrum",
    "description": "Flott leilighet med sentral beliggenhet...",
    "streetAddress": "Storgata 12",
    "postalCode": "0155",
    "postalName": "Oslo",
    "location": "Storgata 12, Sentrum, 0155",
    "priceSuggestion": 4250000,
    "collectiveDebt": 150000,
    "areaUsable": 62,
    "bedrooms": 2,
    "bathrooms": 1,
    "rooms": 3,
    "propertyType": "leilighet",
    "ownershipType": "Andel",
    "status": "For sale",
    "latitude": 59.9139,
    "longitude": 10.7522,
    "imageUrl": "https://cdn.sanity.io/images/u9ed36i9/production/abc123-800x600.jpg",
    "imageUrls": [],
    "constructionYear": 2018,
    "energyLetter": "C",
    "finnCode": "12345678",
    "floor": 3,
    "listingKind": "sale",
    "source": "detail",
    "brokers": [
        {
            "name": "Kari Nordmann",
            "title": "Eiendomsmegler",
            "email": "kari.nordmann@krogsveen.no",
            "mobilePhone": "+47 987 65 432",
            "workPhone": "+47 123 45 678",
            "departmentName": "Krogsveen Oslo Sentrum"
        }
    ],
    "contactPhones": ["+47 987 65 432", "+47 123 45 678"],
    "brokerEmails": ["kari.nordmann@krogsveen.no"],
    "department": {
        "name": "Krogsveen Oslo Sentrum",
        "legalName": "Krogsveen AS",
        "organisationNumber": "123456789"
    },
    "showings": [
        {
            "start": "2026-08-01T10:00:00Z",
            "end": "2026-08-01T11:00:00Z"
        }
    ],
    "documents": [
        {
            "title": "Prospekt.pdf",
            "url": "https://cdn.sanity.io/.../prospekt.pdf"
        }
    ]
}
```

# Actor input Schema

## `startUrls` (type: `array`):

Optional. Krogsveen search pages (with filters in the query string) or individual listing URLs, e.g. https://www.krogsveen.no/kjope/boliger-til-salgs?minPrice=0\&maxPrice=5000000\&propertyTypes=leilighet or https://www.krogsveen.no/kjope/boliger-til-salgs/<estate-id>. Prefer searchQueries/filters for agents; URLs are optional for power users.

## `listingType` (type: `string`):

Default search mode when not encoded in startUrls: homes for sale or for rent.

## `searchQueries` (type: `array`):

Free-text location or keyword phrases for Krogsveen search, e.g. "Oslo", "Bergen", "Lillestrøm". Passed to the site search API as phrases. Use instead of (or together with) startUrls.

## `minPrice` (type: `integer`):

Minimum asking price / rent in NOK (minPrice).

## `maxPrice` (type: `integer`):

Maximum asking price / rent in NOK (maxPrice).

## `minHabitableArea` (type: `integer`):

Minimum habitable area in square meters (minHabitableArea).

## `maxHabitableArea` (type: `integer`):

Maximum habitable area in square meters (maxHabitableArea).

## `bedrooms` (type: `integer`):

Minimum number of bedrooms (bedrooms).

## `propertyTypes` (type: `array`):

Eiendomstype filter values used by Krogsveen search.

## `commissionStates` (type: `array`):

Commission states: ACTIVE (on market) and/or UPCOMING (coming soon). Defaults depend on listing type.

## `commissionTypes` (type: `array`):

Advanced. Override GraphQL commissionTypes (e.g. RESIDENTIAL\_FOR\_SALE, PROJECT\_FOR\_SALE, RESIDENTIAL\_FOR\_RENT).

## `ownershipTypes` (type: `array`):

Optional ownership type codes passed to the search API (ownershipTypes).

## `scrapeDetails` (type: `boolean`):

When enabled, fetches each listing’s full detail payload (description, all images, showings, documents, cadastre, department, etc.) and charges the detailed-listing event.

## `includeContactInfo` (type: `boolean`):

When enabled, extracts broker contact information (name, email, phone) from the listing detail and charges the broker-info event. Performs a detail fetch per listing.

## `maxItems` (type: `integer`):

Maximum number of listings to scrape (0 = unlimited).

## `proxyConfiguration` (type: `object`):

Apify proxy settings. Residential proxies are recommended.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.krogsveen.no/kjope/boliger-til-salgs"
    }
  ],
  "listingType": "sale",
  "searchQueries": [
    "Oslo"
  ],
  "scrapeDetails": false,
  "includeContactInfo": false,
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset containing scraped Krogsveen.no real-estate listings

## `runStats` (type: `string`):

Key-value store record with recordsScraped and run timestamps

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.krogsveen.no/kjope/boliger-til-salgs"
        }
    ],
    "searchQueries": [
        "Oslo"
    ],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rigelbytes/krogsveen-no-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.krogsveen.no/kjope/boliger-til-salgs" }],
    "searchQueries": ["Oslo"],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("rigelbytes/krogsveen-no-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.krogsveen.no/kjope/boliger-til-salgs"
    }
  ],
  "searchQueries": [
    "Oslo"
  ],
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call rigelbytes/krogsveen-no-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=rigelbytes/krogsveen-no-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Krogsveen.no Real Estate Scraper",
        "description": "Scrape Norwegian real-estate listings from Krogsveen.no with search URL or filter-based discovery, optional full details and broker contact info.",
        "version": "1.0",
        "x-build-id": "LXIEnptaKcrrxadE5"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/rigelbytes~krogsveen-no-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-rigelbytes-krogsveen-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~krogsveen-no-scraper/runs": {
            "post": {
                "operationId": "runs-sync-rigelbytes-krogsveen-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~krogsveen-no-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-rigelbytes-krogsveen-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": "Start URLs",
                        "type": "array",
                        "description": "Optional. Krogsveen search pages (with filters in the query string) or individual listing URLs, e.g. https://www.krogsveen.no/kjope/boliger-til-salgs?minPrice=0&maxPrice=5000000&propertyTypes=leilighet or https://www.krogsveen.no/kjope/boliger-til-salgs/<estate-id>. Prefer searchQueries/filters for agents; URLs are optional for power users.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "listingType": {
                        "title": "Listing Type",
                        "enum": [
                            "sale",
                            "rent"
                        ],
                        "type": "string",
                        "description": "Default search mode when not encoded in startUrls: homes for sale or for rent.",
                        "default": "sale"
                    },
                    "searchQueries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "Free-text location or keyword phrases for Krogsveen search, e.g. \"Oslo\", \"Bergen\", \"Lillestrøm\". Passed to the site search API as phrases. Use instead of (or together with) startUrls.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "minPrice": {
                        "title": "Min Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum asking price / rent in NOK (minPrice)."
                    },
                    "maxPrice": {
                        "title": "Max Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum asking price / rent in NOK (maxPrice)."
                    },
                    "minHabitableArea": {
                        "title": "Min Size (m²)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum habitable area in square meters (minHabitableArea)."
                    },
                    "maxHabitableArea": {
                        "title": "Max Size (m²)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum habitable area in square meters (maxHabitableArea)."
                    },
                    "bedrooms": {
                        "title": "Minimum Bedrooms",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Minimum number of bedrooms (bedrooms)."
                    },
                    "propertyTypes": {
                        "title": "Property Types",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Eiendomstype filter values used by Krogsveen search.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "enebolig",
                                "rekkehus",
                                "tomannsbolig",
                                "leilighet",
                                "annet",
                                "tomt",
                                "hytter/fritid",
                                "gårdsbruk/småbruk"
                            ],
                            "enumTitles": [
                                "Enebolig",
                                "Rekkehus",
                                "Tomannsbolig",
                                "Leilighet",
                                "Annet",
                                "Tomt",
                                "Hytter/Fritid",
                                "Gårdsbruk/Småbruk"
                            ]
                        }
                    },
                    "commissionStates": {
                        "title": "Listing Status",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Commission states: ACTIVE (on market) and/or UPCOMING (coming soon). Defaults depend on listing type.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "ACTIVE",
                                "UPCOMING"
                            ],
                            "enumTitles": [
                                "Active (Til salgs / til leie)",
                                "Upcoming (Kommer for salg)"
                            ]
                        }
                    },
                    "commissionTypes": {
                        "title": "Commission Types",
                        "type": "array",
                        "description": "Advanced. Override GraphQL commissionTypes (e.g. RESIDENTIAL_FOR_SALE, PROJECT_FOR_SALE, RESIDENTIAL_FOR_RENT).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ownershipTypes": {
                        "title": "Ownership Types",
                        "type": "array",
                        "description": "Optional ownership type codes passed to the search API (ownershipTypes).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "scrapeDetails": {
                        "title": "Fetch Full Listing Details",
                        "type": "boolean",
                        "description": "When enabled, fetches each listing’s full detail payload (description, all images, showings, documents, cadastre, department, etc.) and charges the detailed-listing event.",
                        "default": false
                    },
                    "includeContactInfo": {
                        "title": "Include Broker Contact",
                        "type": "boolean",
                        "description": "When enabled, extracts broker contact information (name, email, phone) from the listing detail and charges the broker-info event. Performs a detail 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.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
