# GetHome.pl Scraper (`trev0n/gethome-scraper`) Actor

Scrape gethome.pl - Polish real-estate listings for sale and rent, resale and new developer projects. Get prices, area, rooms, floor, address, coordinates, photos and seller contacts. Filter by city, district, price and rooms, plus cheap incremental monitoring of new offers and price drops.

- **URL**: https://apify.com/trev0n/gethome-scraper.md
- **Developed by:** [Paweł](https://apify.com/trev0n) (community)
- **Categories:** Real estate, Automation, Developer tools
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

## 🏠 GetHome.pl Scraper

🎯 **Every flat, house and plot listed on GetHome.pl — for sale or for rent, from private owners, agencies and developers — delivered as clean, ready-to-use data.**

This scraper collects complete property listings from one of Poland's fastest-growing real-estate portals: asking price and price per square metre, floor area, number of rooms, floor, build year, full address with map coordinates, photo galleries, descriptions, and who is selling — including agency names, agent phone numbers and developer projects. It covers both the resale market and brand-new developments, and can drill into a new development to list every individual flat inside it.

### 🚀 What Does It Do?

This scraper automatically browses GetHome.pl and collects **structured, ready-to-use data** on Polish residential property. No manual clicking through pages — just set your filters and hit Start.

💡 **Two modes of operation:**

1. **🔍 Discovery Mode** — Pick a city (and optionally a district), choose sale or rent, set your price, area and room filters, and the scraper pages through every matching listing for you.
2. **📋 Direct URL Mode** — Already have a GetHome.pl search, listing or new-development page you care about? Paste the links in and the scraper handles the rest, filters and all.

### 👥 Who Is This For?

| 🏢 Use Case                       | 💬 How It Helps                                                                       |
| --------------------------------- | ------------------------------------------------------------------------------------- |
| 🏦 **Property investors**         | Spot underpriced flats the moment they appear, and track price drops street by street |
| 🏗️ **Developers & land buyers**   | Watch competing new developments, their unit mixes and asking prices per square metre |
| 📊 **Market analysts & valuers**  | Build reliable price-per-m² datasets by city, district and property type              |
| 🤝 **Estate agents**              | Find fresh private-owner listings before the competition calls them                   |
| 🔎 **Relocation & buying agents** | Hand clients a filtered shortlist instead of a hundred browser tabs                   |
| 📣 **Proptech & portals**         | Feed a comparison site, valuation model or alerting product with fresh supply data    |
| 🏘️ **Rental operators**           | Monitor rent levels for comparable flats and react to the market weekly               |

### ✨ Features

- 🏙️ **City & district targeting** — Search a whole city or zoom into a single district like Mokotów or Krowodrza
- 🤝 **Sale and rent** — Both transaction types, with monthly rent handled correctly
- 🏗️ **Resale and brand-new** — Include the secondary market, developer projects, or both
- 🔬 **Individual flats in new developments** — Expand a development into every unit, with its own area, floor, unit code and price
- 📍 **Map-ready locations** — Latitude and longitude on every listing, plus street, district and province split into their own fields
- 📞 **Seller contacts** — Agency name, agent name and phone number where the portal publishes them
- 🖼️ **Full photo galleries** — Every image URL, not just the thumbnail
- 📖 **Optional deep detail** — Switch on full details for the complete description, amenities, heating, legal status and the whole gallery
- 🎛️ **Smart Filters** — Price, price per m², floor area, rooms, floor, build year, seller type, plus keyword include/exclude rules
- 🔄 **Incremental Monitoring** — Scheduled runs return only what is new, changed or back on the market, so daily monitoring stays cheap
- 🔔 **Instant Alerts** — Push new listings and price drops straight to Telegram, Slack, Discord or your own webhook
- ⚡ **Fast & Scalable** — Thousands of listings per run, and typically only a couple of requests once monitoring is warmed up
- 🧹 **Deduplication** — Every listing appears once, even across overlapping pages and filters
- 📤 **Export Anywhere** — Download results as JSON, CSV, Excel, or push to Google Sheets, Zapier, Make, or your CRM

### 🎛️ Filters & Options

| Option                                      | What It Does                                                                 |
| ------------------------------------------- | ---------------------------------------------------------------------------- |
| 🏙️ **City**                                 | The city to search, written normally in Polish — Warszawa, Kraków, Gdańsk    |
| 📍 **District**                             | Narrow the search to one district inside that city                           |
| 🤝 **Transaction**                          | Choose sale or rent                                                          |
| 🏠 **Property type**                        | Apartments, houses, plots, or all of them together                           |
| 🏗️ **Market**                               | Resale only, brand-new developer stock only, or both                         |
| 💰 **Min / Max price**                      | Price range in PLN — monthly rent when searching rentals                     |
| 📐 **Min / Max area**                       | Floor-area range in square metres                                            |
| 🛏️ **Min / Max rooms**                      | Room-count range                                                             |
| 📊 **Min / Max price per m²**               | Zero in on genuine value, independent of flat size                           |
| 🗓️ **Built after / before**                 | Filter by construction year                                                  |
| 🏢 **Min / Max floor**                      | Skip ground floors, or find them                                             |
| 👤 **Seller**                               | Private owners only, agencies only, or developers only                       |
| ✅ **Must contain**                         | Keep only listings mentioning your keywords, like balkon or garaż            |
| 🚫 **Must not contain**                     | Drop listings mentioning words you never want to see                         |
| ↕️ **Sort by**                              | Newest first, cheapest, most expensive, by price per m², or by size          |
| 📖 **Fetch full details**                   | Add the complete description, amenities and contact details to every listing |
| 🏗️ **Expand new developments**              | Turn one development row into every individual flat inside it                |
| 🔄 **Incremental monitoring**               | Return only new, changed or reappeared listings on scheduled runs            |
| ⏱️ **Early-stop after N quiet pages**       | Keep monitoring runs to a couple of requests once nothing new shows up       |
| 🗑️ **Also emit disappeared offers**         | Get a record when a listing is sold, rented or withdrawn                     |
| ♻️ **Skip reposts**                         | Ignore listings that are just a re-post of something that recently vanished  |
| 🔔 **Telegram / Slack / Discord / Webhook** | Where to send alerts about new listings and price changes                    |
| 🗜️ **Compact output**                       | Emit only the essential fields, ideal for spreadsheets and AI workflows      |
| 🔢 **Max Results**                          | Control how many listings to extract per run                                 |
| 🔗 **Direct URLs**                          | Optionally provide specific GetHome.pl URLs to scrape                        |

### 📦 What You Get (Output Fields)

Every listing includes:

#### 🏠 Property Basics

| Field             | Example                              |
| ----------------- | ------------------------------------ |
| title             | `2-pokojowe mieszkanie na Mokotowie` |
| propertyType      | `mieszkanie`                         |
| marketType        | `wtorny`                             |
| dealType          | `sell`                               |
| area              | `40`                                 |
| numberOfRooms     | `2`                                  |
| numberOfBathrooms | `1`                                  |
| numberOfBedrooms  | `1`                                  |
| floor             | `4`                                  |
| totalFloors       | `6`                                  |
| buildYear         | `2025`                               |
| lotSize           | `null`                               |
| balconies         | `1`                                  |
| isReserved        | `false`                              |

#### 💰 Pricing

| Field         | Example   |
| ------------- | --------- |
| price         | `1100000` |
| priceCurrency | `PLN`     |
| pricePerM2    | `27500`   |
| oldPrice      | `1150000` |
| priceIsHidden | `false`   |

#### 📍 Location

| Field       | Example                                 |
| ----------- | --------------------------------------- |
| location    | `Warszawa, Mokotów, Służewiec, Wołoska` |
| street      | `Wołoska`                               |
| city        | `Warszawa`                              |
| district    | `Mokotów`                               |
| subdistrict | `Służewiec`                             |
| province    | `mazowieckie`                           |
| county      | `null`                                  |
| latitude    | `52.18047`                              |
| longitude   | `21.00079`                              |

#### 👤 Seller

| Field          | Example                                |
| -------------- | -------------------------------------- |
| sellerType     | `agency`                               |
| agencyName     | `PIÓREK HOUSE`                         |
| agencyId       | `d001b38f-14c6-44c7-bfdd-8d2db180eecd` |
| agentName      | `Klaudia Dudzińska`                    |
| sellerPhone    | `48 730173007`                         |
| investmentName | `Katowicka Residence`                  |
| unitSignature  | `LM.02.02.15`                          |

#### 🖼️ Content & Media

| Field          | Example                                                                  |
| -------------- | ------------------------------------------------------------------------ |
| description    | `2-pokojowe mieszkanie zlokalizowane na Mokotowie przy ul. Wołoskiej...` |
| images         | `["https://thumbs.gethome.pl/.../114469015.jpg", "..."]`                 |
| imageCount     | `16`                                                                     |
| mainImage      | `https://thumbs.gethome.pl/.../114469015.jpg`                            |
| floorPlanImage | `https://thumbs.gethome.pl/.../plan.png`                                 |
| videoUrl       | `null`                                                                   |
| tourUrl        | `null`                                                                   |

#### 📖 Extra Details (with full details switched on)

| Field          | Example                                 |
| -------------- | --------------------------------------- |
| amenities      | `["Meble", "System alarmowy", "Metro"]` |
| heating        | `C.o. z sieci miejskiej`                |
| legalStatus    | `Własność`                              |
| finishingState | `Wysoki standard`                       |
| kitchenType    | `Aneks kuchenny`                        |
| availableFrom  | `2026-08-09`                            |
| offerNumber    | `10270/3715/OMW`                        |

#### 🔄 Identifiers & Monitoring

| Field        | Example                                                                        |
| ------------ | ------------------------------------------------------------------------------ |
| id           | `9c64af1a-2eea-45c1-8e6f-67a4fb7ed364`                                         |
| offerId      | `9c64af1a-2eea-45c1-8e6f-67a4fb7ed364`                                         |
| propertyUrl  | `https://gethome.pl/oferta/sprzedam-mieszkanie-warszawa-woloska-40m2-2357684/` |
| datePosted   | `2026-08-10`                                                                   |
| dateModified | `2026-08-11T06:39:16.891124Z`                                                  |
| changeType   | `NEW`                                                                          |
| firstSeenAt  | `2026-08-09T06:00:00.000Z`                                                     |
| lastSeenAt   | `2026-08-11T06:00:00.000Z`                                                     |
| isRepost     | `false`                                                                        |
| scrapedAt    | `2026-08-11T08:35:12.004Z`                                                     |

### 📊 Example Output

```json
{
    "id": "9c64af1a-2eea-45c1-8e6f-67a4fb7ed364",
    "offerId": "9c64af1a-2eea-45c1-8e6f-67a4fb7ed364",
    "title": "2-pokojowe mieszkanie na Mokotowie",
    "propertyUrl": "https://gethome.pl/oferta/sprzedam-mieszkanie-warszawa-woloska-40m2-dwupokojowe-4-pietro-2357684/",
    "price": 1100000,
    "priceCurrency": "PLN",
    "pricePerM2": 27500,
    "oldPrice": null,
    "priceIsHidden": false,
    "area": 40,
    "numberOfRooms": 2,
    "numberOfBathrooms": 1,
    "numberOfBedrooms": 1,
    "floor": 4,
    "totalFloors": 6,
    "buildYear": 2025,
    "lotSize": null,
    "balconies": 0,
    "propertyType": "mieszkanie",
    "marketType": "wtorny",
    "dealType": "sell",
    "location": "Warszawa, Mokotów, Służewiec, Wołoska",
    "street": "Wołoska",
    "city": "Warszawa",
    "district": "Mokotów",
    "subdistrict": "Służewiec",
    "province": "mazowieckie",
    "county": null,
    "latitude": 52.18047,
    "longitude": 21.00079,
    "sellerType": "agency",
    "agencyName": "PIÓREK HOUSE",
    "agencyId": "d001b38f-14c6-44c7-bfdd-8d2db180eecd",
    "agentName": "BIURO PIÓREK HOUSE",
    "sellerPhone": "48 730173007",
    "investmentName": null,
    "unitSignature": null,
    "description": "2-pokojowe mieszkanie zlokalizowane na Mokotowie przy ul. Wołoskiej. Mieszkanie znajduje się na 4 piętrze w 6-piętrowym budynku z 2025 roku i składa się z salonu z aneksem kuchennym, sypialni, łazienki oraz przedpokoju.",
    "images": [
        "https://thumbs.gethome.pl/500x0/media/asari/piorek/114469015-832312b0.jpg",
        "https://thumbs.gethome.pl/500x0/media/asari/piorek/114469016-20f43540.jpg"
    ],
    "imageCount": 16,
    "mainImage": "https://thumbs.gethome.pl/500x0/media/asari/piorek/114469015-832312b0.jpg",
    "floorPlanImage": null,
    "amenities": ["Meble", "Metro"],
    "heating": "C.o. z sieci miejskiej",
    "legalStatus": "Własność",
    "finishingState": "Wysoki standard",
    "kitchenType": null,
    "availableFrom": null,
    "offerNumber": "10270/3715/OMW",
    "videoUrl": null,
    "tourUrl": null,
    "datePosted": "2026-08-10",
    "dateModified": "2026-08-11T06:39:16.891124Z",
    "isReserved": false,
    "changeType": "NEW",
    "scrapedAt": "2026-08-11T08:35:12.004Z"
}
```

### 📋 Dataset Views

The Apify Console gives you **five ready-made table views** to quickly browse your results:

| View                      | What It Shows                                                                              |
| ------------------------- | ------------------------------------------------------------------------------------------ |
| 📊 **Overview**           | Title, price, price per m², area, rooms, floor, type, market, city, district and the link  |
| 🗺️ **Location & map**     | Full address broken into street, district and province, with coordinates ready for mapping |
| 📞 **Seller contacts**    | Who is selling, the agency, the agent and the phone number                                 |
| 🔄 **Monitoring changes** | What changed since the last run — new, updated, price drops and reappeared listings        |
| 📋 **Full Details**       | Every single field — the complete dataset                                                  |

### ❓ FAQ

**🤔 Does it cover brand-new developer apartments as well as resale?**
Yes — both. GetHome shows a new development as a single row, so there is a switch that expands it into every individual flat inside, complete with unit code, exact area, floor and price. Units are spread evenly across developments, so a small result limit still gives you a broad picture of the market.

**🤔 Can I monitor a city daily without paying for the same listings over and over?**
That is exactly what incremental monitoring is for. The first run builds a baseline, and every run after that returns only what is genuinely new, changed or back on the market. It also stops paging as soon as it recognises the listings it has already seen, so a routine daily check is only a couple of requests.

**🤔 How many listings can I get in one run?**
The portal serves up to 10 000 listings for any single search. For bigger sweeps, split the run by city, property type or a price range — running one task per city is the usual approach, and the scraper warns you in the log whenever a search is wider than the portal will serve.

**🤔 Do I get phone numbers?**
Where GetHome publishes them, yes — agency name, agent name and the contact phone number. Switch on full details to get the phone number on every listing, along with the complete description and amenities.

**🤔 Why is the price missing on some new-build listings?**
Some developers choose not to publish prices for individual flats. Those listings come through with everything else intact — area, rooms, floor, unit code and location — and the price left empty, so you can see the supply even when the asking price is on request.

**🤔 Can I export the data?**
Yes — JSON, CSV, Excel, XML, HTML, RSS. You can also push data directly to Google Sheets, Zapier, Make, or any webhook/API endpoint.

**🤔 How often should I run this?**
For fresh data, run daily or weekly. You can schedule automatic runs on Apify with just a few clicks, and have new listings delivered to Telegram, Slack or Discord the moment they appear.

**🤔 Does it work with proxies?**
It does, but you will not usually need one — this scraper is efficient enough to run without proxies, which keeps it fast and cheap. If you run at very high volume you can enable Apify's proxy service in the settings.

### 🛠️ Need Custom Filters or Features?

**I'm happy to customize this scraper for your specific needs!** 🤝

Whether you need:

- 🎯 Additional filters (specific streets or postcodes, distance from a point on the map, garage or balcony requirements, energy class, plot shape)
- 📊 Extra data fields or custom output formats
- 🔄 Integration with your CRM, Google Sheets, or database
- ⏰ Scheduled scraping with automatic deduplication and instant alerts
- 🗺️ Combined datasets covering several Polish property portals at once alongside GetHome.pl

👉 **Don't hesitate to reach out via private message** — I respond quickly and I'm always open to building exactly what you need. No request is too small or too specific!

### ⚖️ Legal & Ethical Use

This scraper collects **only publicly available information** from GetHome.pl. It does not access private data, bypass authentication, or log into any account. Please use the data responsibly and in compliance with applicable laws and platform terms of service.

# Actor input Schema

## `city` (type: `string`):

City to search, in plain Polish — e.g. Warszawa, Kraków, Gdańsk, Wrocław. Leave empty to search all of Poland (or use Start URLs instead).

## `district` (type: `string`):

Optional district inside the city — e.g. Mokotów, Śródmieście, Krowodrza. Requires City to be filled in.

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

Buy or rent.

## `propertyType` (type: `string`):

Type of property. Leave as 'All types' to include flats, houses and plots.

## `marketType` (type: `string`):

Secondary market (resale) or primary market (brand-new, sold by developers). Leave as 'Both' to include everything. Ignored for plots.

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

Paste GetHome.pl listing, offer or development URLs to scrape them directly. Listing pages are paginated automatically; filters embedded in the URL are respected.

## `priceMin` (type: `integer`):

Minimum price in PLN (monthly rent when searching rentals).

## `priceMax` (type: `integer`):

Maximum price in PLN (monthly rent when searching rentals).

## `areaMin` (type: `integer`):

Minimum floor area in square metres.

## `areaMax` (type: `integer`):

Maximum floor area in square metres.

## `roomsMin` (type: `integer`):

Minimum number of rooms.

## `roomsMax` (type: `integer`):

Maximum number of rooms.

## `priceM2Min` (type: `integer`):

Minimum price per square metre in PLN.

## `priceM2Max` (type: `integer`):

Maximum price per square metre in PLN.

## `buildYearMin` (type: `integer`):

Only properties built in or after this year.

## `buildYearMax` (type: `integer`):

Only properties built in or before this year.

## `floorMin` (type: `integer`):

Lowest acceptable floor (0 = ground floor).

## `floorMax` (type: `integer`):

Highest acceptable floor.

## `sellerType` (type: `string`):

Restrict results to a kind of seller — private owners only (no agents), agencies, or developers.

## `includeKeywords` (type: `array`):

Keep only offers whose title, description, address or agency name contains at least one of these words. Works best together with 'Fetch full details' — without it only the title and the portal's short summary are searched.

## `excludeKeywords` (type: `array`):

Drop offers whose title, description, address or agency name contains any of these words. Works best together with 'Fetch full details' — without it only the title and the portal's short summary are searched.

## `sortBy` (type: `string`):

Result order. 'Newest first' is what monitoring runs want — it also makes early-stop pagination possible.

## `extractDetails` (type: `boolean`):

Fetch each offer's own page for the complete description, amenities, heating and legal status, the contact phone number and the full photo gallery. Slower and more expensive — the fast mode already returns price, area, rooms, floor, address, coordinates, photos and the agency.

## `expandInvestments` (type: `boolean`):

GetHome shows a brand-new development as ONE row. Turn this on to get every individual flat inside it (unit number, exact area, floor and price) instead. Greatly increases the number of results on the primary market.

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

Stop after this many results. Set 0 for unlimited (bounded by what the portal serves).

## `maxPages` (type: `integer`):

Cap the number of result pages per search. 0 = no cap. The portal itself serves at most 400 pages (10 000 results) per search.

## `maxConcurrency` (type: `integer`):

How many detail requests to run in parallel.

## `compact` (type: `boolean`):

Emit only the essential fields — handy for AI pipelines and spreadsheets.

## `excludeEmptyFields` (type: `boolean`):

Remove fields that are empty for a given offer instead of emitting nulls.

## `incrementalMode` (type: `boolean`):

Track state across runs and emit only NEW / UPDATED / REAPPEARED offers. The first run builds a baseline; later runs return just the difference — ideal for cheap daily monitoring of new listings and price drops.

## `stateKey` (type: `string`):

Name of the saved state for incremental runs. Leave empty to derive it from your search settings. Use an explicit key when several schedules should share one baseline.

## `earlyStopPages` (type: `integer`):

During incremental runs, stop paging once this many consecutive pages contain nothing new. Keeps daily monitoring runs to a couple of requests. 0 disables early stopping.

## `emitUnchanged` (type: `boolean`):

Include offers that have not changed since the previous run. Turns incremental mode into a full snapshot and disables early stopping.

## `emitExpired` (type: `boolean`):

Emit a record for offers that vanished since the previous run (sold, rented or withdrawn). Disables early stopping.

## `skipReposts` (type: `boolean`):

Drop offers that look like a re-listing of something that recently disappeared (same content, new id).

## `webhookUrl` (type: `string`):

POST the changed offers as JSON to this URL after each run.

## `telegramBotToken` (type: `string`):

Send a summary of new and changed offers to Telegram.

## `telegramChatId` (type: `string`):

Chat or channel that should receive the Telegram messages.

## `discordWebhookUrl` (type: `string`):

Post new and changed offers to a Discord channel.

## `slackWebhookUrl` (type: `string`):

Post new and changed offers to a Slack channel.

## `notifyOnlyChanges` (type: `boolean`):

Stay silent when a monitoring run finds nothing new.

## `notificationLimit` (type: `integer`):

How many offers to list in a notification message before summarising the rest.

## `includeRunSummary` (type: `boolean`):

Add the run's counters to the webhook payload.

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

GetHome.pl does not require a proxy — leave this off for the cheapest, fastest runs. Enable it only if you run at very high volume.

## Actor input object example

```json
{
  "city": "Warszawa",
  "district": "Mokotów",
  "searchType": "sprzedaz",
  "propertyType": "mieszkanie",
  "marketType": "",
  "startUrls": [],
  "sellerType": "",
  "includeKeywords": [],
  "excludeKeywords": [],
  "sortBy": "newest",
  "extractDetails": false,
  "expandInvestments": false,
  "maxItems": 50,
  "maxPages": 0,
  "maxConcurrency": 10,
  "compact": false,
  "excludeEmptyFields": false,
  "incrementalMode": false,
  "stateKey": "",
  "earlyStopPages": 2,
  "emitUnchanged": false,
  "emitExpired": false,
  "skipReposts": false,
  "webhookUrl": "",
  "telegramChatId": "",
  "notifyOnlyChanges": true,
  "notificationLimit": 10,
  "includeRunSummary": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "city": "Warszawa",
    "startUrls": [],
    "includeKeywords": [],
    "excludeKeywords": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("trev0n/gethome-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 = {
    "city": "Warszawa",
    "startUrls": [],
    "includeKeywords": [],
    "excludeKeywords": [],
}

# Run the Actor and wait for it to finish
run = client.actor("trev0n/gethome-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 '{
  "city": "Warszawa",
  "startUrls": [],
  "includeKeywords": [],
  "excludeKeywords": []
}' |
apify call trev0n/gethome-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,trev0n/gethome-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/sHfsMJTQuTj6RRYkg/builds/OQvqGDptKUoqq8ZtG/openapi.json
