Booli Property Search Scraper
Pricing
from $2.00 / 1,000 results
Booli Property Search Scraper
Scrape detailed property listings from Booli.se with one click. Collect prices, locations, images, agency info, and 30+ fields per property — perfect for real estate analysts, investors, developers, and market researchers tracking the Swedish housing market.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Stealth mode
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Features
Share
Booli Property Search Scraper: Extract Swedish Real Estate Data at Scale
What Is Booli.se?
Booli.se is Sweden's leading property search platform, hosting thousands of residential listings across apartments, villas, and new construction projects. It serves real estate professionals, investors, and homebuyers seeking market transparency. Booli consolidates listings from multiple agencies and developers, making it a rich source for property market intelligence — but manually collecting and structuring this data is laborious and error-prone.
The Booli Property Search Scraper automates data extraction, transforming unstructured listings into clean, actionable datasets in minutes.
Overview
The Booli Property Search Scraper extracts comprehensive property records from Booli.se search results pages, capturing 30+ data points per listing. It is built for:
- Real estate investors analyzing market trends and pricing patterns
- Market researchers studying Swedish housing supply and demand
- Property developers monitoring competitor projects and launches
- Data analysts building real estate intelligence platforms
- Agencies aggregating market data for client reports
The scraper handles search result pagination, manages proxy rotation to prevent blocking, and gracefully continues on failed URLs — ideal for large-scale collection campaigns.
Input Format
The scraper accepts a JSON configuration object defining which property listings to extract and how to handle the scraping process:
{"urls": ["https://www.booli.se/sok/till-salu/?page=2"],"ignore_url_failures": true,"max_items_per_url": 200}
Input Parameters Explained
| Parameter | Type | Description | Example |
|---|---|---|---|
urls | Array | Booli search result page URLs to scrape. Each URL can return up to max_items_per_url listings. | ["https://www.booli.se/sok/till-salu/?page=2"] |
ignore_url_failures | Boolean | If true, the scraper continues running even if a URL fails. If false, the entire run stops on first error. | true |
max_items_per_url | Integer | Maximum number of property listings to extract per URL. Set based on your data needs and rate-limiting concerns. | 200 |
Input Tips
- Search pages: Use filtered Booli search URLs (e.g., by region, price range, property type) to target specific subsets of the market.
- Pagination: Include multiple page URLs to collect larger datasets. For example:
https://www.booli.se/sok/till-salu/?page=1https://www.booli.se/sok/till-salu/?page=2https://www.booli.se/sok/till-salu/?page=3
- Limits: Set
max_items_per_urlconservatively (50–200) to avoid timeout or server load issues on large result sets.
Output Format
Example Output Record
{"id": 6340992,"origin_id": "listing:6340992","listing_id": "6340992","listing_type": "property_active","url": "https://www.booli.se/annons/6340992","title": "Bengt Ekehjelmsgatan 11","subtitle": "Lägenhet · Södermalm · Stockholm","summary": "2 rum lägenhet på Bengt Ekehjelmsgatan 11 Södermalm, Stockholms kommun","object_type": "Lägenhet","sale_type": "succession","price": "6 750 000 kr","currency": "SEK","price_remark": null,"display_date": "Inkommet idag","status": null,"secondary_status": {"key": "showing","label": "Sön 15 nov kl 12:00"},"attributes": [{"key": "livingArea","label": "Boarea","value": "55 m²","description": null},{"key": "rooms","label": "Rum","value": "2 rum","description": null},{"key": "floor","label": "Våning","value": "vån 3","description": null},{"key": "rentOrPlotAreaText","label": "Avgift","value": "4 032 kr/mån","description": null}],"amenities": [{"__typename": "Amenity","key": "elevator","label": "Hiss","icons": [{"__typename": "CrossPlatformIcon","key": "ElevatorOutlined","svg": "https://bcdn.se/assets/shared/icons/ElevatorOutlined.svg","png": "https://bcdn.se/assets/shared/icons/ElevatorOutlined4x.png"}]},{"__typename": "Amenity","key": "balcony","label": "Balkong","icons": [{"__typename": "CrossPlatformIcon","key": "BalconyOutlined","svg": "https://bcdn.se/assets/shared/icons/BalconyOutlined.svg","png": "https://bcdn.se/assets/shared/icons/BalconyOutlined4x.png"}]},{"__typename": "Amenity","key": "fireplace","label": "Eldstad","icons": [{"__typename": "CrossPlatformIcon","key": "FireplaceOutlined","svg": "https://bcdn.se/assets/shared/icons/FireplaceOutlined.svg","png": "https://bcdn.se/assets/shared/icons/FireplaceOutlined4x.png"}]}],"labels": [],"area": "Södermalm","city": null,"municipality": "Stockholm","county": "Stockholms län","latitude": 59.314759,"longitude": 18.0627227,"has_images": true,"has_showings": true,"upcoming_sale": false,"image_count": 5,"images": [{"id": "57457291","label": "kitchen/dining_room","alt": "Kök eller matrum","width": 2500,"height": 1875,"badge": null,"url": "https://bcdn.se/images/cache/57457291_1440x0.jpg"},{"id": "57457292","label": "interior","alt": "Interiörbild","width": 2500,"height": 1875,"badge": null,"url": "https://bcdn.se/images/cache/57457292_1440x0.jpg"},{"id": "57457293","label": "kitchen/dining_room","alt": "Kök eller matrum","width": 2500,"height": 1875,"badge": null,"url": "https://bcdn.se/images/cache/57457293_1440x0.jpg"},{"id": "57457294","label": "interior","alt": "Interiörbild","width": 2500,"height": 1875,"badge": null,"url": "https://bcdn.se/images/cache/57457294_1440x0.jpg"},{"id": "57457295","label": "balcony/view","alt": "Balkong eller utsiktsbild","width": 2500,"height": 1875,"badge": null,"url": "https://bcdn.se/images/cache/57457295_1440x0.jpg"}],"presenter_name": "Historiska Hem","presenter_logo_url": "https://hm.bcdn.se/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NTU4NCwicHVyIjoiYmxvYl9pZCJ9fQ==--7883b098676a948299afd9cc4f9c4fd3c2875b39/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fZml0IjpbNTQwLDI4MF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--764e8765ff342434238d7b255c3100a3d1eb8a64/hemnet_logga.png","raw_data": null,"from_url": "https://www.booli.se/sok/till-salu"}
Complete Output Structure and Field Definitions
The scraper returns JSON data with each property as an object containing detailed fields. Understanding field purposes enables effective analysis and application.
Listing Identification
ID: Unique numeric Booli identifier of the property listing or sold record. Purpose: Database indexing, tracking specific properties over time, avoiding duplicates.
Origin ID: Source identifier with a prefix showing the record origin (e.g., listing: for active, sold:maklare: for sold). Purpose: Distinguishing record sources and linking back to Booli data.
Listing ID: Identifier of the active listing (null for sold records). Purpose: Separating active listings from sold records.
Listing Type: Record status on Booli (property_active or property_sold). Purpose: Filtering for properties currently for sale versus historical sales.
URL: Direct link to the property page on Booli. Purpose: Accessing complete details, sharing opportunities with clients, verification of scraped data.
Basic Information
Title: Street address or headline of the property. Purpose: Quick identification and display of the property.
Subtitle: Short label combining property type, area and city. Purpose: Fast preview and listing summaries.
Summary: Full descriptive sentence with rooms, property type, address, area and municipality. Purpose: Readable property description for reports and accessibility.
Object Type: Property type (e.g., Villa, Lägenhet). Purpose: Segmenting the market by property category.
Sale Type: Sales category (e.g., succession, newConstruction, sold). Purpose: Identifying new builds, estate sales and sold records.
Pricing and Dates
Price: Asking price for active listings or final sale price for sold records, as displayed. Purpose: Price comparison, market valuation, budget filtering.
Currency: Currency of the price (SEK). Purpose: Correct financial interpretation when merging datasets from multiple markets.
Price Remark: Additional note attached to the price (may be null). Purpose: Capturing pricing conditions or caveats when present.
Display Date: Date label shown on the listing, such as "Inkommet idag" (arrived today) or the sale date for sold records. Purpose: Measuring listing freshness and identifying sale dates.
Status
Status: Primary status tag with key and label (e.g., Förnyad = renewed, Nyproduktion = new construction, Slutpris = final price). Purpose: Identifying property condition and sale stage.
Secondary Status: Additional status tag with key and label (may be null). Purpose: Capturing extra status information when present.
Attributes
Attributes: Flexible array of objects with key, label, value and description. Content varies by property type, e.g., living area, rooms, plot area, floor, monthly fee, and price per m² for sold records. Purpose: Extracting size, layout and cost details without a fixed schema; filtering and comparing properties by any attribute.
Amenities: List of amenities attached to the listing (may be empty). Purpose: Filtering by facilities when available.
Labels: List of promotional or informational labels (may be empty). Purpose: Identifying highlighted features.
Location
Area: Neighborhood or district extracted from the subtitle. Purpose: Micro-market analysis and price comparison between districts.
City: City of the property. Purpose: City-level market analysis.
Municipality: Municipality (kommun) of the property. Purpose: Administrative-level statistics and filtering.
County: County (län) of the property. Purpose: Regional market comparison and aggregation.
Latitude: Geographic latitude of the property. Purpose: Map plotting, distance calculations, spatial analysis.
Longitude: Geographic longitude of the property. Purpose: Map plotting, distance calculations, spatial analysis.
Listing Flags
Has Images: Whether the property has photos. Purpose: Assessing listing completeness.
Has Showings: Whether viewings are scheduled (null for sold records). Purpose: Planning viewings and lead engagement.
Upcoming Sale: Whether the sale is upcoming (null for sold records). Purpose: Identifying properties about to be sold.
Media
Image Count: Number of images returned for the property. Purpose: Evaluating listing quality and completeness.
Images: Array of image objects with id, label (room or view type), alt, width, height and badge. Purpose: Analyzing photo coverage by room type and image quality.
Presenter
Presenter Name: Name of the real estate agency presenting the listing (may be null). Purpose: Lead generation, competitor analysis, market share evaluation.
Presenter Logo URL: Link to the presenter's logo image (may be null). Purpose: Branding in reports and dashboards.
Raw Data
Raw Data: Complete original JSON object of the property as scraped, without modification. Purpose: Auditing, debugging, accessing fields not included in the cleaned output, and reprocessing without re-scraping.
How to Use
Step 1: Identify Search URLs
Visit Booli.se and create search filters matching your needs (region, price range, property type). Copy the resulting page URLs.
Examples:
https://www.booli.se/sok/till-salu/?page=1— All properties for salehttps://www.booli.se/sok/stockholm/till-salu/?page=1— Stockholm onlyhttps://www.booli.se/sok/stockholm/till-salu/?min=4000000&max=6000000&page=1— Stockholm, 4–6M SEK
Step 2: Configure Input
Paste your URLs into the urls array. Set max_items_per_url (e.g., 100–200 for balanced coverage and speed).
Step 3: Run the Scraper
Initiate the actor. The scraper will:
- Navigate to each URL
- Extract property records from search results
- Collect all 30+ fields per listing
- Skip failed URLs if
ignore_url_failures: true - Return structured JSON data
Step 4: Export & Analyze
Download results as JSON, CSV, or Excel. Load into your analysis tool (spreadsheet, database, BI platform).
Best Practices:
- Test with a single page first to verify output format
- Use
ignore_url_failures: truefor production runs - Space out large scraping jobs to avoid rate limiting
- Cross-reference with Booli's
Estimatefield to identify underpriced listings
Use Cases & Business Value
- Investment analysis: Identify market gaps, underpriced properties, and emerging neighborhoods
- Market intelligence: Track price trends, days-on-market, and supply dynamics by region
- Competitive monitoring: Monitor competitor listings, pricing strategies, and market share
- Data enrichment: Append property data to your CRM, database, or investment platform
- Academic research: Analyze Swedish housing affordability, market efficiency, and regional variation
Real estate professionals using the Booli Property Search Scraper gain competitive advantage through data-driven decision-making, reducing manual research time from hours to minutes.
Conclusion
The Booli Property Search Scraper delivers Swedish property market data in structured, actionable format. With 30+ fields per listing and flexible filtering, it empowers investors, analysts, and developers to unlock insights from Booli's comprehensive marketplace. Start scraping today and transform raw listings into strategic advantage.