# Homestra Property Search Scraper (`alexist/homestra-property-search-scraper`) Actor

Scrape property listings from Homestra.com in seconds. This scraper extracts addresses, prices, property details, listing dates, and more from residential listings across multiple countries — perfect for real estate agents, investors, and market analysts.

- **URL**: https://apify.com/alexist/homestra-property-search-scraper.md
- **Developed by:** [Alex](https://apify.com/alexist) (community)
- **Categories:** Automation, Developer tools, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

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

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Homestra Property Search Scraper: Collect Real Estate Listings Data

***

### What Is Homestra.com?

Homestra.com is a comprehensive international real estate listing platform offering properties for sale, rent, and lease across multiple countries including Norway, Sweden, and beyond. The platform aggregates residential properties with detailed information such as pricing, location data, property descriptions, and listing metadata. For real estate professionals, investors, and market researchers, manually collecting this data across hundreds of listings is inefficient — the **Homestra Property Search Scraper** automates this workflow, delivering structured property data ready for analysis.

***

### Overview

The **Homestra Property Search Scraper** extracts comprehensive property listing records from Homestra.com search result pages, converting raw web data into clean, structured datasets. It is designed for:

- **Real estate agents** gathering competitive listings and market pricing
- **Investment analysts** tracking property market trends and valuations
- **Property aggregators** building multi-source real estate databases
- **Market researchers** analyzing housing supply and pricing patterns
- **Data scientists** building predictive models on property markets

Key advantages include flexible URL configuration, adjustable item limits per page, and robust error handling to ensure uninterrupted data collection.

***

### Input Format

The scraper accepts a JSON configuration object with three main parameters:

```json
{
    "urls": [
        "https://homestra.com/list/houses-for-sale/norway/?page=2"
    ],
    "max_items_per_url": 200,
    "ignore_url_failures": true
}
```

#### Input Parameters Explained

| Parameter | Type | Description | Example |
|---|---|---|---|
| `urls` | array | Direct links to Homestra property list pages. Include pagination parameters (e.g., `?page=2`) to scrape specific result sets. Can add multiple URLs to collect data across regions, countries, or property types. | `["https://homestra.com/list/houses-for-sale/norway/?page=1", "https://homestra.com/list/houses-for-sale/norway/?page=2"]` |
| `max_items_per_url` | integer | Maximum number of property listings to extract from each URL. Limits the volume of data collected per page. Useful for testing or controlling API costs. Set to `200` for full-page scrapes (most pages display ~200 listings). | `100`, `200`, `500` |
| `ignore_url_failures` | boolean | If `true`, the scraper continues running if a URL fails to load. If `false`, the entire run stops on the first failure. Recommended: `true` for large batches to ensure partial data collection on transient errors. | `true` or `false` |

**Tips for effective input configuration:**

- Use specific search filters in URLs: `/houses-for-sale/`, `/apartments-for-rent/`, or by country code for targeted scraping
- Include pagination to scrape multiple pages: `?page=1`, `?page=2`, etc.
- For bulk scraping, set `ignore_url_failures: true` to handle network or temporary blocking issues gracefully
- Adjust `max_items_per_url` based on your data needs—lower values (50-100) for quick tests, higher values (200+) for comprehensive datasets

***

### Output Format

**Output example (annotated):**

```json
{
  "id": "6a1cec86-5b0b-4ea3-ae29-aa3584d0b986",
  "title": "4-Bed Norwegian Chalet with Fishing Pond & Ski Trails – Holiday Home in Hornnes, Agder",
  "slug": "4-bed-norwegian-chalet-with-fishing-pond-and-ski-trails-holiday-home-in-hornnes-agder",
  "address": "Lislåttane 32, 4737 Hornnes",
  "saved": false,
  "location": {
    "type": "Point",
    "coordinates": [
      58.51956,
      7.684513
    ]
  },
  "price": 194690,
  "size": 118,
  "description": "Step off the gravel driveway on a January morning and you'll hear it before you see it — silence. Not the uncomfortable kind, but the deep, pressing quiet that only comes when a full metre of snow has settled across the spruce forest, and the nearest main road is far enough away that it doesn't matter. That's Lislåttane. That's what you're buying into.\n\nSitting on a generous plot in the Fjellestad cabin area just outside Hornnes in Agder county, this four-bedroom Norwegian chalet at Lislåttane 32 is the kind of place that becomes the fixed point in a family's calendar. The week everyone agrees on. The place the kids talk about in February because they can't wait to get back.\n\nThe chalet covers 118 square metres on a single level — no stairs, no split-levels, just a logical, easy flow that works brilliantly when you've got a group of ten in the house and wet ski gear drying in the hallway. The living room was extended in 2008/2009, and the difference shows. There's genuine space here — room for a deep sofa arrangement and a proper dining table where everyone can sit together, not the cramped, elbows-on-knees situation you find in so many older Norwegian cabins of this era. Modern recessed lighting runs across the ceiling, softened by the warm pine surfaces that wrap the walls and floor. On a grey November afternoon, with the wood-burner going, it feels genuinely warm rather than aesthetically warm, which is a distinction worth making.\n\nThe kitchen opens directly into the living area, which means whoever's cooking the Saturday night lamb chops or the post-hike soup doesn't get exiled to a separate room. Storage and countertop space are generous — this isn't a kitchen designed for heating soup and giving up. Large windows line the living space, and through them you look out over a private pond. In summer the pond holds fish. In autumn the reflection of the birch trees is absurdly photogenic. In winter it freezes.\n\nA covered section of the front terrace means you can sit outside in light rain — a useful feature in southern Norway — and the main terrace itself is properly large. Sun-drenched in the afternoon hours, it's where coffee happens in the morning and where the barbecue comes out on warm July evenings. The lawn stretches around it, and the neighbouring plots are far enough away that you genuinely don't register them.\n\nFour bedrooms sleep ten people in total. Three of the bedrooms sit in the newer section of the cabin, with the fourth in the original part — a handy arrangement when you want to give a family group their own wing, or when teenagers need to feel like they're not sleeping three feet from their parents. The bathroom is functional and modern, fitted with a shower and built-in sink. There's a separate WC room alongside it, plus a dedicated laundry room with washing machine connections, a utility sink, and a full wall of shelving — critical infrastructure for any property that sees heavy weekend use across all four seasons.\n\nThe property also comes with a storage shed and workshop. In practice this means somewhere to put the bicycles, the fishing rods, the cross-country skis, the kayak, the tools — all the paraphernalia of a Norwegian outdoor life — without it eating into the living space. Year-round car access to the private driveway makes arrivals and departures straightforward regardless of season.\n\nNow, the location. Hornnes itself is a small village — grocery stores, a fuel station, the basics covered. But the Agder region surrounding it is the real draw. The Otra river valley runs through this part of southern Norway, and the landscape it carves out is one of the less-talked-about genuinely great outdoor corridors in the country. In summer, the trails above Fjellestad take you up through heather and lichen-covered rock to open ridge lines with views across the forested hills toward Kristiansand. The swimming spots along the local lakes and waterways are cold, clean, and rarely crowded. Fishing — both along the Otra and in the smaller forest lakes dotted around the area — is serious sport here, not a postcard activity.\n\nWinter is when the area shifts register entirely. The groomed cross-country ski trails run directly from the cabin area, which means you can clip into your skis at the edge of the property and be on marked trail within minutes. No driving to a car park, no queuing. For downhill, Valle Skisenter is a reasonable drive north up the valley. The Agder region sees reliable snowfall from December through March most years, and the light up here in January — low, golden, bouncing off white birch trunks — is the sort of thing that makes you understand why Scandinavians have historically been so good at painting.\n\nAccessibility from the wider world is practical rather than instant. Kristiansand Airport Kjevik sits roughly an hour's drive south, with connections to Oslo Gardermoen and select European destinations. Oslo itself is about three and a half hours by car via the E18, making this a feasible weekend destination for buyers based in the Norwegian capital or arriving via international connection through Oslo. For European buyers flying into Kristiansand, the drive up through the Setesdal valley to Hornnes is one of the better airport-to-cabin journeys in southern Norway — genuinely scenic rather than a motorway slog.\n\nThe property is connected to both mains water and electricity, and the 2008/2009 renovation brought the electrical system fully up to current standards. This is a move-in ready chalet, not a project. Good condition throughout, well-maintained, and practical for immediate use as a holiday base or for generating rental income in the increasingly popular Norwegian cabin market.\n\nKey features at a glance:\n\n- 4 bedrooms, 1 bathroom, sleeping capacity for 10\n- 118 sqm single-level layout with open-plan kitchen and living room\n- Large sun-drenched terrace with covered section, overlooking a private fishing pond\n- Direct access to groomed cross-country ski trails in winter\n- Hiking, fishing, and swimming opportunities on the doorstep\n- Extended and renovated in 2008/2009, including full electrical upgrade\n- Connected to mains water and electricity\n- Private storage shed and workshop for outdoor equipment\n- Year-round car access and private parking\n- Peaceful, well-spaced plot with strong privacy from neighbouring cabins\n- Located in the sought-after Fjellestad cabin area outside Hornnes, Agder\n- Approx. 1 hour from Kristiansand Airport Kjevik\n- Strong rental potential in the Norwegian holiday cabin market\n- Move-in ready condition — no renovation required\n\nFor international buyers, Norwegian property law is relatively straightforward for EEA nationals, and the cabin market in Agder has seen consistent demand as domestic buyers from Kristiansand and Oslo seek holiday bases within manageable driving distance of major cities. The combination of year-round usability, genuine natural surroundings, and solid infrastructure makes this an unusually practical entry point into the Norwegian second-home market at a price point — 194,690 EUR — that reflects real value for what's on offer.\n\nIf you'd like to arrange a viewing or get more detail on the property, reach out through Homestra today. Cabins in areas like Fjellestad move when the right buyer finds them, and the right buyer for this one will recognise it immediately.",
  "lot_size": 1020,
  "country_code": "no",
  "created_at": "2026-07-11T21:48:10.462Z",
  "listing_date": "2026-07-13T17:12:57.739Z",
  "status": "for_sale",
  "city": "Hornnes",
  "type": "chalet",
  "featured_photo": {
    "__typename": "Photo",
    "id": "8b35ed26-0562-4d88-830c-cc7dfd9f4b0f",
    "url": "https://storage.googleapis.com/homestra-images/property-image-8b35ed26-0562-4d88-830c-cc7dfd9f4b0f-1783844821.jpg",
    "featured": true,
    "title": "Welcome to Lislåttane 32! Photo: Deliver Media AS"
  },
  "from_url": "https://homestra.com/list/houses-for-sale/norway/?page=2"
}
```

Each scraped property returns a detailed record with 16+ core fields:

#### Property Identification & Metadata

| Field | Meaning |
|---|---|
| `ID` | Unique internal Homestra identifier for the listing |
| `Title` | Property headline as displayed on Homestra (e.g., "Modern 3-bedroom villa with pool") |
| `Slug` | URL-friendly identifier derived from the property title |
| `URL` | Direct link to the full property detail page on Homestra |
| `Featured Photo` | URL of the primary listing image or photo gallery link |

#### Location & Geography

| Field | Meaning |
|---|---|
| `Address` | Full street address of the property |
| `Location` | Geographic coordinates or area name (neighborhood/district) |
| `City` | City or municipality where the property is located |
| `Country Code` | ISO country code (e.g., `NO` for Norway, `SE` for Sweden) |

#### Property Details

| Field | Meaning |
|---|---|
| `Title` | Display name/headline of the property listing |
| `Type` | Property category (e.g., house, apartment, villa, townhouse) |
| `Size` | Property floor area, typically in square meters (m²) |
| `Lot Size` | Land/plot size of the property in square meters |
| `Description` | Full text description of the property, features, condition, and amenities |

#### Financial & Listing Information

| Field | Meaning |
|---|---|
| `Price` | Listed selling or rental price in the property's local currency |
| `Listing Date` | Date the property was first listed on Homestra |
| `Created At` | Timestamp when the listing record was created in the system |

#### Status & Availability

| Field | Meaning |
|---|---|
| `Status` | Current listing status (e.g., available, sold, pending, archived) |
| `Saved` | Boolean flag indicating whether the listing is saved/bookmarked by users |

***

### How to Use

**Step 1: Prepare URLs**

- Navigate to Homestra.com and use filters (location, property type, price range) to build search results pages
- Copy the filtered URL (e.g., `https://homestra.com/list/houses-for-sale/norway/?page=1`)
- To scrape multiple pages, add separate URLs: `?page=1`, `?page=2`, etc.

**Step 2: Configure the input**

- Paste your URLs into the `urls` array
- Set `max_items_per_url` (typically `100-200` for full pages)
- Set `ignore_url_failures: true` for reliability

**Step 3: Start the scraper**

- Execute the scraper and monitor the run log in real-time
- Track items collected, errors, and completion status

**Step 4: Download & process**

- Export results as JSON, CSV, or Excel
- Load into your database, spreadsheet, or analysis tool
- Use structured data for reporting, filtering, and further analysis

**Common tips & troubleshooting:**

- If no results appear, verify the URL is a Homestra search results page (not a single listing detail page)
- For large multi-page scrapes, space out requests or use multiple scraper runs to avoid rate limiting
- Check the `Status` field to identify available vs. sold listings
- Use `Listing Date` and `Created At` to sort by recency

***

### Use Cases & Business Value

- **Competitive pricing analysis:** Compare property prices, sizes, and features across regions in real-time
- **Market trend tracking:** Monitor inventory levels, price movements, and time-to-sale metrics
- **Lead generation:** Build targeted lists of properties matching investment criteria
- **Real estate aggregation:** Combine Homestra data with other sources to build comprehensive property databases
- **Portfolio benchmarking:** Evaluate personal property investments against market comparables
- **Research & reports:** Generate market snapshots for presentations, valuations, and investment memos

By automating data collection from Homestra, you eliminate hours of manual browsing and spreadsheet entry, freeing your team to focus on analysis, negotiation, and closing deals.

***

### Conclusion

The **Homestra Property Search Scraper** is an efficient, reliable tool for gathering property listing data at scale. With 16+ structured output fields covering location, pricing, property details, and metadata, it empowers real estate professionals and investors to make faster, data-driven decisions. Configure your search, run the scraper, and turn Homestra listings into actionable market intelligence.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the property list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://homestra.com/list/houses-for-sale/norway/?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 100
}
```

# 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 = {
    "urls": [
        "https://homestra.com/list/houses-for-sale/norway/?page=2"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("alexist/homestra-property-search-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 = {
    "urls": ["https://homestra.com/list/houses-for-sale/norway/?page=2"],
    "ignore_url_failures": True,
    "max_items_per_url": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("alexist/homestra-property-search-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://homestra.com/list/houses-for-sale/norway/?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 100
}' |
apify call alexist/homestra-property-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,alexist/homestra-property-search-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/qU5fd6W3J5LSN89ce/builds/f8JPKjjrCHu4r28Ke/openapi.json
