# Booli.se Scraper (`rigelbytes/booli-se-scraper`) Actor

Scrapes Swedish real estate listings from Booli.se — for sale, sold prices, and new construction. Supports search filters, direct URLs, listing details, and broker contact info.

- **URL**: https://apify.com/rigelbytes/booli-se-scraper.md
- **Developed by:** [Rigel Bytes](https://apify.com/rigelbytes) (community)
- **Categories:** Real estate, Integrations, 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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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

## Booli.se Scraper

Extract Swedish real estate listings from Booli.se — for sale, sold prices, and new construction properties with full details, images, broker contacts, and market data — for just **$1 per 1,000 listings**.

---

### What can Booli.se Scraper do for you?

- **Build a Swedish property database** — Collect for-sale listings, sold prices, and new construction projects from Booli.se with structured data including prices, rooms, living area, location, and images.
- **Monitor market trends** — Track price changes, listing volumes, and sold prices across municipalities, property types, and price ranges to identify market opportunities.
- **Generate real estate leads** — Extract broker contact details including phone and email for outreach, prospecting, and partnership building.
- **Analyze listing details** — Get comprehensive property info: floor plans, rent, operating costs, showings, energy class, amenities, and broker agency data.
- **Filter by any criteria** — Search by location, property type (apartment, villa, townhouse), price range, room count, living area, and more — or use direct Booli URLs for targeted scraping.
- **Export in any format** — Download your data as JSON, CSV, or Excel for use in spreadsheets, CRM tools, or custom analytics pipelines.

### What data can you extract?

| Field | Description |
|-------|-------------|
| 🏠 **Address & Location** | Street address, municipality, named areas, coordinates, descriptive area name |
| 💰 **Pricing** | List price, sold price, price per m², Booli estimate (low/high) |
| 🛏️ **Property Details** | Rooms, living area, floor, building floors, object type, tenure form, property type |
| 📅 **Listing Info** | Published date, URL, listing ID, Booli ID, upcoming sale flag, bidding status |
| 🖼️ **Media** | Primary image URL, full image array with labels (kitchen, exterior, interior, bathroom) |
| 🏢 **Agency** | Broker name, logo thumbnail, broker page URL |
| 📋 **Amenities** | Amenities list (balcony, patio, etc.) |
| 📊 **Estimates** | Booli price estimate with low and high range |
| 🔍 **Details** (optional) | Rent, operating costs, floor, building floors, property info, breadcrumbs, showings |
| 📞 **Broker Contact** (optional) | Broker phone number and email |
| 🏷️ **Property Info** | Energy class, page views, days on market, property info text |

### Why use this scraper?

- **🔬 Market Research** — Analyze the Swedish housing market with structured data on pricing, property types, and location trends across all municipalities.
- **📊 Price Monitoring** — Track asking prices and sold prices over time to understand market movements and identify undervalued areas.
- **🤝 Lead Generation** — Collect broker and agency contact details for real estate partnerships, marketing, and business development.
- **⚡ Automation** — Replace manual copy-pasting with automated, scalable data extraction. Schedule runs on Apify platform for continuous monitoring.
- **📈 Investment Analysis** — Evaluate properties with data on pricing estimates, rent, operating costs, and price per square meter.

### Pricing

- **$1/1,000 listings** (Free tier: no platform usage costs)
- Apify plan discounts available: Bronze $0.90/1,000 · Silver $0.80/1,000 · Gold $0.70/1,000
- No hidden fees or limits on usage.

---

### How to use Booli.se Scraper

1. **Create a free Apify account** at [apify.com](https://apify.com) and sign in to the Console.
2. **Open the Booli.se Scraper** page and click **Try for free**.
3. **Configure your input** — enter a Booli search URL (e.g. `https://www.booli.se/sok/till-salu?objectType=Lägenhet`) or use the filter fields to set location, property type, price range, and other criteria.
4. **Toggle optional features** — enable **Fetch listing details** for richer data (rent, floor, showings, property info) and **Fetch broker contact details** for agent phone/email.
5. **Start the run** and wait for the data to be collected. Results appear in real-time.
6. **Download your data** as JSON, CSV, or Excel — or access it via Apify API.

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `startUrls` | `array` | Optional | Booli search or listing URLs (e.g. `https://www.booli.se/sok/till-salu?objectType=Lägenhet`) |
| `locations` | `array` | Optional | Booli area IDs (e.g. `77104` for all Sweden) |
| `searchType` | `string` | Optional | `listings` (till salu), `sold` (slutpriser), or `projects` (nyproduktion). Default: `listings` |
| `objectTypes` | `array` | Optional | Property types: Lägenhet, Villa, Kedjehus-Parhus-Radhus, Fritidshus, Gård, Tomt/Mark. Default: `["Lägenhet"]` |
| `areaIds` | `array` | Optional | Booli area ID(s). Default: `["77104"]` (all Sweden) |
| `minRooms` | `integer` | Optional | Minimum number of rooms |
| `maxRooms` | `integer` | Optional | Maximum number of rooms |
| `minLivingArea` | `integer` | Optional | Minimum living area in m² |
| `maxLivingArea` | `integer` | Optional | Maximum living area in m² |
| `minListPrice` | `integer` | Optional | Minimum asking price in SEK |
| `maxListPrice` | `integer` | Optional | Maximum asking price in SEK |
| `minSoldPrice` | `integer` | Optional | Minimum sold price in SEK (for sold search) |
| `maxSoldPrice` | `integer` | Optional | Maximum sold price in SEK (for sold search) |
| `isNewConstruction` | `boolean` | Optional | Show only new construction. Default: `false` |
| `extendAreas` | `integer` | Optional | Expand search radius in km (0–100) |
| `sort` | `string` | Optional | Sort by: published, listPrice, rooms, livingArea, soldPrice, soldDate, sqmPrice |
| `ascending` | `boolean` | Optional | Sort ascending. Default: `false` |
| `fetchDetails` | `boolean` | Optional | Fetch full listing details (rent, floor, showings, property info). Default: `false` |
| `fetchBrokerDetails` | `boolean` | Optional | Fetch broker phone/email. Default: `false` |
| `maxItems` | `integer` | Optional | Max listings to scrape (0 = unlimited). Default: `0` |
| `proxyConfiguration` | `object` | Optional | Apify proxy settings. Default: `{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}` |

#### 📝 Copy for Use:

```json
{
  "startUrls": [
    {
      "url": "https://www.booli.se/sok/till-salu?objectType=L%C3%A4genhet"
    }
  ],
  "objectTypes": ["Lägenhet", "Villa"],
  "areaIds": ["77104"],
  "minListPrice": 1000000,
  "maxListPrice": 5000000,
  "minRooms": 2,
  "maxRooms": 5,
  "fetchDetails": true,
  "fetchBrokerDetails": true,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
````

### Output

![Booli.se Scraper Output](https://github.com/faizanalii/apify-images/blob/main/Booli.se%20Scraper.gif?raw=true)

Each scraped listing includes structured data with pricing, location, property details, images, agency info, and more.

### Why Choose This Scraper?

- **Affordable**: Pay only $1 per 1,000 listings scraped — with discounts available on Bronze, Silver, and Gold Apify plans.
- **Comprehensive**: Full coverage of for-sale, sold, and new construction listings with optional detail enrichment and broker contact data.
- **Easy to Use**: Simple input — provide a Booli search URL or use the built-in filter fields. No coding required.
- **Reliable**: Built on Apify platform with residential proxy support, retry logic, and scalable infrastructure.

### 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.

### API Examples

#### Python

```shell
from apify_client import ApifyClient

client = ApifyClient("YOUR-APIFY-TOKEN")

run_input = {
  "startUrls": [
    {
      "url": "https://www.booli.se/sok/till-salu?objectType=L%C3%A4genhet"
    }
  ],
  "objectTypes": ["Lägenhet", "Villa"],
  "areaIds": ["77104"],
  "minListPrice": 1000000,
  "maxListPrice": 5000000,
  "fetchDetails": True,
  "fetchBrokerDetails": True,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": True,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}

run = client.actor("rigelbytes/booli-se-scraper").call(run_input=run_input)
dataset_items = client.dataset(run["defaultDatasetId"]).iterate_items()
for item in dataset_items:
    print(item)
```

#### JavaScript

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

const client = new ApifyClient({
    token: 'YOUR-APIFY-TOKEN',
});

const runInput = {
  startUrls: [
    {
      url: "https://www.booli.se/sok/till-salu?objectType=L%C3%A4genhet"
    }
  ],
  objectTypes: ["Lägenhet", "Villa"],
  areaIds: ["77104"],
  minListPrice: 1000000,
  maxListPrice: 5000000,
  fetchDetails: true,
  fetchBrokerDetails: true,
  maxItems: 100,
  proxyConfiguration: {
    useApifyProxy: true,
    apifyProxyGroups: ["RESIDENTIAL"]
  }
};

const run = await client.actor("rigelbytes/booli-se-scraper").call(runInput);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.log(item);
});
```

#### cURL

```shell
curl -X POST "https://api.apify.com/v2/acts/rigelbytes/booli-se-scraper/runs?token=YOUR-APIFY-TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "startUrls": [
    {
      "url": "https://www.booli.se/sok/till-salu?objectType=L%C3%A4genhet"
    }
  ],
  "objectTypes": ["Lägenhet", "Villa"],
  "areaIds": ["77104"],
  "minListPrice": 1000000,
  "maxListPrice": 5000000,
  "fetchDetails": true,
  "fetchBrokerDetails": true,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}'
```

### 🚀 Other Tools by Rigel Bytes

Explore **105** 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.
- **[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 Egypt](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.

- **[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.

- **[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,...
- **[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.

- **[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

Below is a sample of the data you can extract with the Booli.se Scraper:

```json
[
  {
    "booliId": "6134349",
    "listingId": "6134349",
    "url": "https://www.booli.se/bostad/717357",
    "streetAddress": "Rönnbärsvägen 27",
    "objectType": "Lägenhet",
    "tenureForm": "Bostadsrätt",
    "searchType": "listings",
    "location": {
      "municipality": "Upplands-Bro",
      "namedAreas": ["Kungsängen"],
      "descriptiveAreaName": "Kungsängen"
    },
    "latitude": 59.4902,
    "longitude": 17.73534,
    "listPrice": {
      "formatted": "1 750 000 kr",
      "raw": 1750000,
      "value": "1 750 000",
      "unit": "kr"
    },
    "listSqmPrice": {
      "formatted": "20 800 kr/m²",
      "raw": 20833,
      "value": "20 800",
      "unit": "kr/m²"
    },
    "rooms": {
      "formatted": "3 rum",
      "raw": 3,
      "value": "3",
      "unit": "rum"
    },
    "livingArea": {
      "formatted": "84 m²",
      "raw": 84,
      "value": "84",
      "unit": "m²"
    },
    "rent": {
      "formatted": null,
      "raw": 6636,
      "value": "6 636",
      "unit": "kr/mån"
    },
    "published": "2026-07-24 17:32:03",
    "upcomingSale": false,
    "isNewConstruction": false,
    "estimate": {
      "price": {
        "formatted": "1 580 000 kr",
        "raw": 1580000,
        "value": "1 580 000",
        "unit": "kr"
      },
      "low": {
        "formatted": null,
        "raw": null,
        "value": "1 460 000",
        "unit": null
      },
      "high": {
        "formatted": "1 700 000 kr",
        "raw": null,
        "value": null,
        "unit": null
      }
    },
    "agency": {
      "name": "Fastighetsbyrån",
      "url": "https://www.booli.se/maklarbyra/fastighetsbyran"
    },
    "primaryImageUrl": "https://bcdn.se/images/raw/54724547?width=1440",
    "images": [
      {
        "id": "54724547",
        "url": "https://bcdn.se/images/raw/54724547?width=1440",
        "alt": "Kök eller matrum",
        "label": "kitchen/dining_room"
      }
    ],
    "floor": 1,
    "buildingFloors": 3,
    "operatingCost": {
      "formatted": null,
      "raw": 291,
      "value": "291",
      "unit": "kr/mån"
    },
    "showings": [
      {
        "title": "Rönnbärsvägen 27, Upplands-Bro",
        "displayDate": "27 juli",
        "displayTime": "18:00 – 18:30",
        "startTime": "2026-07-27T16:00:00.000Z",
        "endTime": "2026-07-27T16:30:00.000Z"
      }
    ],
    "breadcrumbs": [
      {
        "label": "Stockholms län",
        "url": "https://www.booli.se/sok/till-salu?areaIds=2&objectType=Lägenhet"
      }
    ],
    "amenities": ["Balkong", "Uteplats"],
    "propertyInfo": [
      "Den här lägenheten är en bostadsrätt",
      "Den har 6 636 kr/mån i avgift",
      "Driftskostnaden är 291 kr/mån",
      "Utropspriset per kvadratmeter är 20 800 kr/m²",
      "Räkna på ditt boende",
      "Den ligger på våning 1 av 3",
      "Lägenhetsnumret är 1002",
      "Huset har energiklass E",
      "Bostaden har 370 sidvisningar på Booli",
      "Bostaden har varit till salu i 0 dagar"
    ]
  }
]
```

# Actor input Schema

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

Booli search or listing URLs. Search example: https://www.booli.se/sok/till-salu?objectType=Lägenhet — Listing example: https://www.booli.se/bostad/717357

## `locations` (type: `array`):

Booli area IDs to search (e.g. 18 for Stockholm, 77104 for all Sweden). Used when building a search from filters without a start URL.

## `searchType` (type: `string`):

Used when building a search from filter fields (without a start URL). listings = till salu, sold = slutpriser, projects = nyproduktion.

## `objectTypes` (type: `array`):

Property types to include in search.

## `areaIds` (type: `array`):

Booli area ID(s). Default 77104 = all of Sweden. Use area IDs from Booli search URLs (areaIds query param).

## `minRooms` (type: `integer`):

Minimum number of rooms.

## `maxRooms` (type: `integer`):

Maximum number of rooms.

## `minLivingArea` (type: `integer`):

Minimum living area in square meters.

## `maxLivingArea` (type: `integer`):

Maximum living area in square meters.

## `minListPrice` (type: `integer`):

Minimum asking price in SEK (for sale listings).

## `maxListPrice` (type: `integer`):

Maximum asking price in SEK (for sale listings).

## `minSoldPrice` (type: `integer`):

Minimum sold/final price in SEK (slutpriser search).

## `maxSoldPrice` (type: `integer`):

Maximum sold/final price in SEK (slutpriser search).

## `isNewConstruction` (type: `boolean`):

Show only new construction listings.

## `extendAreas` (type: `integer`):

Expand search radius in kilometers (0–100).

## `sort` (type: `string`):

Sort results by this field.

## `ascending` (type: `boolean`):

Sort ascending instead of descending.

## `fetchDetails` (type: `boolean`):

Fetch full listing detail page for each property (rent, floor, showings, property info, etc.). Slower but much richer data.

## `fetchBrokerDetails` (type: `boolean`):

Fetch broker phone number and email via Booli API. Requires listing detail page for agent IDs.

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

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

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

Apify proxy settings. Residential proxy recommended.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.booli.se/sok/till-salu?objectType=L%C3%A4genhet"
    }
  ],
  "locations": [
    "77104"
  ],
  "searchType": "listings",
  "objectTypes": [
    "Lägenhet"
  ],
  "areaIds": [
    "77104"
  ],
  "isNewConstruction": false,
  "sort": "",
  "ascending": false,
  "fetchDetails": false,
  "fetchBrokerDetails": false,
  "maxItems": 25,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

Dataset containing scraped Booli property listings

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

Run statistics including record count and 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.booli.se/sok/till-salu?objectType=L%C3%A4genhet"
        }
    ],
    "maxItems": 25,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rigelbytes/booli-se-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.booli.se/sok/till-salu?objectType=L%C3%A4genhet" }],
    "maxItems": 25,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("rigelbytes/booli-se-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.booli.se/sok/till-salu?objectType=L%C3%A4genhet"
    }
  ],
  "maxItems": 25,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call rigelbytes/booli-se-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Booli.se Scraper",
        "description": "Scrapes Swedish real estate listings from Booli.se — for sale, sold prices, and new construction. Supports search filters, direct URLs, listing details, and broker contact info.",
        "version": "1.0",
        "x-build-id": "QSzQSkOLHeD6acXoD"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/rigelbytes~booli-se-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-rigelbytes-booli-se-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~booli-se-scraper/runs": {
            "post": {
                "operationId": "runs-sync-rigelbytes-booli-se-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~booli-se-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-rigelbytes-booli-se-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": "Booli search or listing URLs. Search example: https://www.booli.se/sok/till-salu?objectType=Lägenhet — Listing example: https://www.booli.se/bostad/717357",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "locations": {
                        "title": "Locations",
                        "type": "array",
                        "description": "Booli area IDs to search (e.g. 18 for Stockholm, 77104 for all Sweden). Used when building a search from filters without a start URL.",
                        "default": [
                            "77104"
                        ]
                    },
                    "searchType": {
                        "title": "Search type",
                        "enum": [
                            "listings",
                            "sold",
                            "projects"
                        ],
                        "type": "string",
                        "description": "Used when building a search from filter fields (without a start URL). listings = till salu, sold = slutpriser, projects = nyproduktion.",
                        "default": "listings"
                    },
                    "objectTypes": {
                        "title": "Object types",
                        "type": "array",
                        "description": "Property types to include in search.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Lägenhet",
                                "Villa",
                                "Kedjehus-Parhus-Radhus",
                                "Fritidshus",
                                "Gård",
                                "Tomt/Mark"
                            ]
                        },
                        "default": [
                            "Lägenhet"
                        ]
                    },
                    "areaIds": {
                        "title": "Area IDs",
                        "type": "array",
                        "description": "Booli area ID(s). Default 77104 = all of Sweden. Use area IDs from Booli search URLs (areaIds query param).",
                        "default": [
                            "77104"
                        ]
                    },
                    "minRooms": {
                        "title": "Minimum rooms",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum number of rooms."
                    },
                    "maxRooms": {
                        "title": "Maximum rooms",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of rooms."
                    },
                    "minLivingArea": {
                        "title": "Minimum living area (m²)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum living area in square meters."
                    },
                    "maxLivingArea": {
                        "title": "Maximum living area (m²)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum living area in square meters."
                    },
                    "minListPrice": {
                        "title": "Minimum list price (SEK)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum asking price in SEK (for sale listings)."
                    },
                    "maxListPrice": {
                        "title": "Maximum list price (SEK)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum asking price in SEK (for sale listings)."
                    },
                    "minSoldPrice": {
                        "title": "Minimum sold price (SEK)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum sold/final price in SEK (slutpriser search)."
                    },
                    "maxSoldPrice": {
                        "title": "Maximum sold price (SEK)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum sold/final price in SEK (slutpriser search)."
                    },
                    "isNewConstruction": {
                        "title": "New construction only",
                        "type": "boolean",
                        "description": "Show only new construction listings.",
                        "default": false
                    },
                    "extendAreas": {
                        "title": "Extend search area (km)",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Expand search radius in kilometers (0–100)."
                    },
                    "sort": {
                        "title": "Sort field",
                        "enum": [
                            "",
                            "published",
                            "listPrice",
                            "rooms",
                            "livingArea",
                            "soldPrice",
                            "soldDate",
                            "sqmPrice"
                        ],
                        "type": "string",
                        "description": "Sort results by this field.",
                        "default": ""
                    },
                    "ascending": {
                        "title": "Ascending sort",
                        "type": "boolean",
                        "description": "Sort ascending instead of descending.",
                        "default": false
                    },
                    "fetchDetails": {
                        "title": "Fetch listing details",
                        "type": "boolean",
                        "description": "Fetch full listing detail page for each property (rent, floor, showings, property info, etc.). Slower but much richer data.",
                        "default": false
                    },
                    "fetchBrokerDetails": {
                        "title": "Fetch broker contact details",
                        "type": "boolean",
                        "description": "Fetch broker phone number and email via Booli API. Requires listing detail page for agent IDs.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of listings to scrape (0 = unlimited).",
                        "default": 0
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy settings. Residential proxy 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
