# Montenegro Productdetails Spider (`getdataforme/montenegro-productdetails-spider`) Actor

Extract detailed real estate data from Montenegro Prospects listings, including prices, locations, descriptions, and contacts. Ideal for professionals, investors, and analysts conducting market research. Features accurate, scalable scraping with flexible URL inputs and clean JSON output.

- **URL**: https://apify.com/getdataforme/montenegro-productdetails-spider.md
- **Developed by:** [GetDataForMe](https://apify.com/getdataforme) (community)
- **Categories:** AI, E-commerce, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $9.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 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

### Description

Extract detailed real estate data from Montenegro Prospects listings, including prices, locations, descriptions, and contacts. Ideal for professionals, investors, and analysts conducting market research. Features accurate, scalable scraping with flexible URL inputs and clean JSON output.

---

## Montenegro Productdetails Spider

### Introduction

The Montenegro Productdetails Spider is a powerful Apify Actor designed to extract detailed property information from Montenegro Prospects listings. It efficiently scrapes key data such as property IDs, titles, prices, descriptions, and contact details from specified URLs, enabling users to gather comprehensive real estate insights quickly and accurately. This tool is ideal for real estate professionals, investors, and analysts seeking reliable data for market analysis and decision-making.

### Features

- **Comprehensive Data Extraction**: Scrapes essential property details including prices, locations, square footage, bedrooms, and full descriptions.
- **High Accuracy and Reliability**: Utilizes robust scraping techniques to ensure data integrity and minimize errors from dynamic web content.
- **Flexible URL Input**: Accepts multiple URLs for batch processing, allowing efficient handling of multiple property listings.
- **Structured JSON Output**: Delivers clean, machine-readable data in JSON format, perfect for integration with databases or analytics tools.
- **Fast and Scalable**: Optimized for performance, capable of processing listings quickly without overloading target servers.
- **Contact Information Capture**: Extracts phone, WhatsApp, and Viber links for direct property inquiries.
- **Error-Resistant Design**: Handles common web scraping challenges like rate limits and page variations gracefully.

### Input Parameters

| Parameter | Type   | Required | Description | Example |
|-----------|--------|----------|-------------|---------|
| Urls      | array  | Yes      | An array of URLs pointing to Montenegro Prospects property listings to scrape. Each URL must be a valid HTTP or HTTPS link. | ["https://www.montenegroprospects.com/property/modern-apartments-sea-view-prime-location-dobrota-kotor"] |

### Example Usage

To run the Actor, provide the input parameters in JSON format. Here's an example input:

```json
{
  "Urls": [
    "https://www.montenegroprospects.com/property/modern-apartments-sea-view-prime-location-dobrota-kotor"
  ]
}
````

The Actor will process the URLs and output structured data. An example output for the above input is:

```json
[
  {
    "property_id": "13814",
    "title": "Modern Apartments with Sea View in a Prime Location – Dobrota, Kotor",
    "price_raw": "263.000€",
    "price": 263000,
    "currency": "EUR",
    "buyer_commission": "0% Buyer's Commission",
    "city": "Kotor",
    "region": "Kotor Bay",
    "surface_m2": 72,
    "bedrooms": 2,
    "description": "A selection of quality-finished apartments is available in a newly built residential complex in Dobrota, one of the most desirable areas of Kotor. Positioned just 200 meters from the sea, these apartments offer stunning views and excellent sun exposure throughout the day. The building is divided into two blocks – A and B – with a total of 9 apartments available, featuring various layouts and sizes. Available Units: Block A: A2 – Two-bedroom apartment, elevated ground floor, 72 m² – €265,000 Block B: B5 – Two-bedroom duplex, second floor, 76 m² – €265,000 B6 – Two-bedroom duplex, second floor, 81 m² – €263,000 Key Features: Duplex units A5 and B6 include an additional rooftop terrace with open views of the hills. Duplexes A5, A6, B5, and B6 are equipped with two bathrooms – one on each level. All units offer sea views from the living room and are positioned on the sunlit side of the bay. Construction & Amenities: The building was fully completed in 2025. Apartments come finished to a high standard, with fully equipped bathrooms, underfloor heating, and installed air conditioning. An elevator connects the garage level to the elevated ground floor; upper floors are accessible via stairs. Garage spaces and parking spots are sold separately, priced between €25,000 and €30,000. Location: Situated in a peaceful residential area, just 200 meters from the sea and within close reach of schools, shops, and daily conveniences. The combination of quality construction, sea views, and an attractive location makes these apartments ideal for both living and rental investment. For enquiries call us: Mobile: +382 (0)67 393 792 WhatsApp: +382 (0)67 393 792 Viber: +382 (0)67 393 792 Kotor Office: +382 (0)32 322 489 Budva Office: +382 (0)33 453 990 Bar Office: +382 (0)69 348 793 Or send us an e-mail info@montenegroprospects.com © Copyright 2026 Montenegro Prospects. All rights reserved.",
    "contact_viber": "viber://chat?number=%2B38267393792",
    "contact_whatsapp": "https://wa.me/38267393792?text=Hi%2C%20I%20am%20interested%20in%20a%20property%20with%20ID%2013814",
    "contact_phone": "+38267393792",
    "listing_url": "https://www.montenegroprospects.com/property/modern-apartments-sea-view-prime-location-dobrota-kotor",
    "actor_id": "Ms0G1l7DbctOZuSCz",
    "run_id": "alDRDTfE4a18x9bkl"
  }
]
```

### Use Cases

- **Market Research and Analysis**: Gather data on property prices, locations, and features to analyze real estate trends in Montenegro.
- **Competitive Intelligence**: Monitor competitor listings to compare offerings and pricing strategies.
- **Price Monitoring**: Track price changes over time for specific properties to inform investment decisions.
- **Content Aggregation**: Collect detailed property descriptions for creating real estate databases or websites.
- **Academic Research**: Study housing markets, urban development, and economic factors in Montenegro.
- **Business Automation**: Automate data collection for real estate agencies to streamline lead generation and reporting.

### Installation and Usage

1. Search for "Montenegro Productdetails Spider" in the Apify Store
2. Click "Try for free" or "Run"
3. Configure input parameters
4. Click "Start" to begin extraction
5. Monitor progress in the log
6. Export results in your preferred format (JSON, CSV, Excel)

### Output Format

The Actor outputs data in JSON format as an array of objects, each representing a scraped property. Key fields include:

- `property_id`: Unique identifier for the property.
- `title`: The property's title.
- `price_raw`: Raw price string (e.g., "263.000€").
- `price`: Numeric price value.
- `currency`: Currency code (e.g., "EUR").
- `buyer_commission`: Commission details.
- `city` and `region`: Location information.
- `surface_m2`: Area in square meters.
- `bedrooms`: Number of bedrooms.
- `description`: Full property description.
- `contact_*`: Contact links (Viber, WhatsApp, phone).
- `listing_url`: Original URL.
- `actor_id` and `run_id`: Apify-specific identifiers for tracking.

This structured output ensures easy parsing and integration.

### Support

For custom/simplified outputs or bug reports, please contact:

- Email: support@getdataforme.com
- Subject line: "custom support"
- Contact form: https://getdataforme.com/contact/

We're here to help you get the most out of this Actor!

# Actor input Schema

## `Urls` (type: `array`):

The urls for the spider.

## Actor input object example

```json
{
  "Urls": [
    "https://www.montenegroprospects.com/property/modern-apartments-sea-view-prime-location-dobrota-kotor"
  ]
}
```

# Actor output Schema

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

Scraped data items from dataset

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("getdataforme/montenegro-productdetails-spider").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("getdataforme/montenegro-productdetails-spider").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 '{}' |
apify call getdataforme/montenegro-productdetails-spider --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=getdataforme/montenegro-productdetails-spider",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Montenegro Productdetails Spider",
        "description": "Extract detailed real estate data from Montenegro Prospects listings, including prices, locations, descriptions, and contacts. Ideal for professionals, investors, and analysts conducting market research. Features accurate, scalable scraping with flexible URL inputs and clean JSON output.",
        "version": "0.0",
        "x-build-id": "q3aEVPUbNZDHBOiUE"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getdataforme~montenegro-productdetails-spider/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getdataforme-montenegro-productdetails-spider",
                "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/getdataforme~montenegro-productdetails-spider/runs": {
            "post": {
                "operationId": "runs-sync-getdataforme-montenegro-productdetails-spider",
                "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/getdataforme~montenegro-productdetails-spider/run-sync": {
            "post": {
                "operationId": "run-sync-getdataforme-montenegro-productdetails-spider",
                "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": "Urls",
                        "minItems": 1,
                        "type": "array",
                        "description": "The urls for the spider.",
                        "default": [
                            "https://www.montenegroprospects.com/property/modern-apartments-sea-view-prime-location-dobrota-kotor"
                        ],
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
