# Kyero Property Scraper (`shahidirfan/kyero-property-scraper`) Actor

Automate Kyero.com property data extraction. Get real estate listings, prices, locations & contact info instantly. Used by agencies for lead generation, investors for market analysis & competitors for benchmarking. Scale your property intelligence workflows today.

- **URL**: https://apify.com/shahidirfan/kyero-property-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Stats:** 4 total users, 2 monthly users, 85.7% runs succeeded, 1 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 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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

## Kyero Property Scraper

Collect property listings from Kyero search pages at scale. Gather listing details such as price, bedrooms, bathrooms, images, agent info, and listing links in one structured dataset. Ideal for market analysis, lead generation, pricing research, and property monitoring workflows.

### Features

- **URL or keyword input** - Start from direct Kyero search URLs or location keywords
- **Pagination support** - Collect multiple pages per search automatically
- **Sale and rent modes** - Choose `for_sale` or `to_rent`
- **Rich listing data** - Extract key listing fields in a consistent structure
- **Clean dataset output** - Null and empty fields are removed before saving
- **Deduplication** - Prevent duplicate listings across pages and URLs

### Use Cases

#### Property Market Research
Track listing volume, price ranges, and listing types across countries, regions, or cities. Build reusable datasets for trend analysis and benchmarking.

#### Competitive Intelligence
Monitor what agencies publish, where inventory is concentrated, and how pricing differs by area. Use periodic runs to compare market movement over time.

#### Lead Discovery
Collect relevant listing and agency information for outbound workflows. Filter output by location, budget tiers, or property profile.

#### Investment Screening
Build shortlists for specific locations and price segments. Feed extracted data into your internal scoring or deal-evaluation pipeline.

---

### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `urls` | Array | No | `["https://www.kyero.com/en/italy-property-for-sale-0l55732"]` | One or more Kyero search result URLs |
| `keyword` | String | No | `"italy"` | Location keyword used when URLs are not provided |
| `location` | String | No | `""` | Extra location phrase combined with keyword |
| `listing_type` | String | No | `"for_sale"` | Listing mode: `for_sale` or `to_rent` |
| `locale` | String | No | `"en"` | Locale used in requests |
| `results_wanted` | Integer | No | `20` | Maximum number of records to save |
| `max_pages` | Integer | No | `3` | Maximum pages to fetch per search URL |
| `proxyConfiguration` | Object | No | Apify Proxy preset | Proxy settings for reliability |

---

### Output Data

Each dataset item can include:

| Field | Type | Description |
|-------|------|-------------|
| `id` | Integer | Listing ID |
| `name` | String | Listing title |
| `price` | Number | Numeric listing price |
| `price_formatted` | String | Formatted price text |
| `reference_no` | String | Listing reference |
| `payment_scheme` | String | Sale or rent indicator |
| `location_id` | Integer | Location identifier |
| `images` | Array | Listing image URLs |
| `images_count` | Integer | Number of listing images |
| `property_url` | String | Absolute property detail URL |
| `bedroom_count` | Integer | Bedroom count |
| `bathroom_count` | Integer | Bathroom count |
| `built_m2` | Number | Built area |
| `plot_m2` | Number | Plot area |
| `property_type` | Object | Property type metadata |
| `agent` | Object | Agency metadata |
| `feature_keys` | Array | Listing feature tags |
| `badges` | Array | Listing badges |
| `search_url` | String | Source search URL |
| `page` | Integer | Search results page number |
| `fetched_at` | String | ISO timestamp of extraction |

---

### Usage Examples

#### Basic URL Extraction

```json
{
  "urls": [
    "https://www.kyero.com/en/italy-property-for-sale-0l55732"
  ],
  "results_wanted": 20
}
````

#### Multiple URLs with Pagination

```json
{
  "urls": [
    "https://www.kyero.com/en/italy-property-for-sale-0l55732",
    "https://www.kyero.com/en/tuscany-property-for-sale-0l55733"
  ],
  "results_wanted": 80,
  "max_pages": 4
}
```

#### Keyword and Rent Listings

```json
{
  "keyword": "italy",
  "listing_type": "to_rent",
  "results_wanted": 30,
  "max_pages": 3
}
```

***

### Sample Output

```json
{
  "id": 19758817,
  "name": "Country house in Monopoli, Bari",
  "price": 390000,
  "price_formatted": "€ 390,000",
  "payment_scheme": "for_sale",
  "location_id": 60227,
  "images_count": 50,
  "bedroom_count": 2,
  "bathroom_count": 1,
  "built_m2": 105,
  "plot_m2": 1000,
  "property_url": "https://www.kyero.com/en/property/19758817-country-house-for-sale-monopoli?prime_boost_id=19758817",
  "search_url": "https://www.kyero.com/en/italy-property-for-sale-0l55732",
  "page": 1,
  "fetched_at": "2026-04-26T12:00:00.000Z"
}
```

***

### Tips for Best Results

#### Use Stable Search URLs

- Prefer official Kyero search result links
- Keep locale and listing type consistent within one run

#### Start Small, Then Scale

- Test with `results_wanted: 20` first
- Increase limits after confirming your filters

#### Control Runtime with `max_pages`

- Use low values for quick checks
- Raise gradually for broader collection

#### Use Proxy for Reliability

- Proxy helps keep runs stable for larger extractions
- Residential routing is recommended for sustained workloads

***

### Integrations

Connect your dataset with:

- **Google Sheets** - Quick tabular analysis
- **Airtable** - Searchable property databases
- **Make** - Automated enrichment workflows
- **Zapier** - Trigger notifications and downstream actions
- **Webhooks** - Push data to custom systems

#### Export Formats

- **JSON** - API and application usage
- **CSV** - Spreadsheet workflows
- **Excel** - Reporting and sharing
- **XML** - System integration needs

***

### Frequently Asked Questions

#### Can I run with only a keyword?

Yes. If `urls` is empty, keyword-based discovery is used.

#### Can I scrape both sale and rent in one run?

Use separate runs for `for_sale` and `to_rent` for clean segmentation.

#### Why are some optional fields missing?

Some listings do not expose every field. Empty values are removed from output.

#### Does it handle pagination automatically?

Yes. It moves through result pages up to your `max_pages` and `results_wanted`.

#### Can I provide multiple URLs?

Yes. Add multiple Kyero search URLs in the `urls` array.

***

### Support

For issues or feature requests, use the Apify actor support channel.

#### Resources

- [Apify Documentation](https://docs.apify.com/)
- [Apify API Reference](https://docs.apify.com/api/v2)
- [Scheduling Runs](https://docs.apify.com/platform/schedules)

***

### Legal Notice

This actor is intended for legitimate data collection use cases. You are responsible for complying with applicable laws, site terms, and data usage requirements.

# Actor input Schema

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

One or more Kyero search result URLs.

## `keyword` (type: `string`):

Location keyword when URLs are not provided.

## `location` (type: `string`):

Optional extra location phrase used together with keyword.

## `listing_type` (type: `string`):

Choose property sales or long-term rentals.

## `locale` (type: `string`):

Language locale used for Kyero requests.

## `results_wanted` (type: `integer`):

Maximum number of listings to store.

## `max_pages` (type: `integer`):

Maximum pages to fetch per search URL.

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

Recommended for reliable extraction.

## Actor input object example

```json
{
  "urls": [
    "https://www.kyero.com/en/italy-property-for-sale-0l55732"
  ],
  "keyword": "italy",
  "listing_type": "for_sale",
  "locale": "en",
  "results_wanted": 20,
  "max_pages": 3,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "urls": [
        "https://www.kyero.com/en/italy-property-for-sale-0l55732"
    ],
    "keyword": "italy",
    "location": "",
    "listing_type": "for_sale",
    "locale": "en",
    "results_wanted": 20,
    "max_pages": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahidirfan/kyero-property-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://www.kyero.com/en/italy-property-for-sale-0l55732"],
    "keyword": "italy",
    "location": "",
    "listing_type": "for_sale",
    "locale": "en",
    "results_wanted": 20,
    "max_pages": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("shahidirfan/kyero-property-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 '{
  "urls": [
    "https://www.kyero.com/en/italy-property-for-sale-0l55732"
  ],
  "keyword": "italy",
  "location": "",
  "listing_type": "for_sale",
  "locale": "en",
  "results_wanted": 20,
  "max_pages": 3
}' |
apify call shahidirfan/kyero-property-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Kyero Property Scraper",
        "description": "Automate Kyero.com property data extraction. Get real estate listings, prices, locations & contact info instantly. Used by agencies for lead generation, investors for market analysis & competitors for benchmarking. Scale your property intelligence workflows today.",
        "version": "0.0",
        "x-build-id": "croZvUBmqr5DPvct3"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/shahidirfan~kyero-property-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-shahidirfan-kyero-property-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/shahidirfan~kyero-property-scraper/runs": {
            "post": {
                "operationId": "runs-sync-shahidirfan-kyero-property-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/shahidirfan~kyero-property-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-shahidirfan-kyero-property-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": {
                    "urls": {
                        "title": "Search URLs",
                        "type": "array",
                        "description": "One or more Kyero search result URLs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "keyword": {
                        "title": "Keyword",
                        "type": "string",
                        "description": "Location keyword when URLs are not provided."
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Optional extra location phrase used together with keyword."
                    },
                    "listing_type": {
                        "title": "Listing type",
                        "enum": [
                            "for_sale",
                            "to_rent"
                        ],
                        "type": "string",
                        "description": "Choose property sales or long-term rentals.",
                        "default": "for_sale"
                    },
                    "locale": {
                        "title": "Locale",
                        "type": "string",
                        "description": "Language locale used for Kyero requests.",
                        "default": "en"
                    },
                    "results_wanted": {
                        "title": "Results wanted",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of listings to store.",
                        "default": 20
                    },
                    "max_pages": {
                        "title": "Max pages",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum pages to fetch per search URL.",
                        "default": 3
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Recommended for reliable extraction.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
