# Pazar3 Property Scraper (`sian.agency/pazar3-property-scraper`) Actor

Scrape Pazar3.mk property ads in North Macedonia: price, area, rooms, city, agency or private seller, photos. Flats, houses, land, sale and rent.

- **URL**: https://apify.com/sian.agency/pazar3-property-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.32 / 1,000 property searches

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Pazar3 Property Scraper: North Macedonia Real Estate Data 🚀

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Halo Oglasi Scraper](https://img.shields.io/badge/Store-Halo%20Oglasi%20Scraper-1AE392)](https://apify.com/sian.agency/halooglasi-property-scraper?fpr=sian) [![Imot.bg Scraper](https://img.shields.io/badge/Store-Imot.bg%20Scraper-1AE392)](https://apify.com/sian.agency/imot-property-scraper?fpr=sian) [![Njuskalo Scraper](https://img.shields.io/badge/Store-Njuskalo%20Scraper-1AE392)](https://apify.com/sian.agency/njuskalo-property-scraper?fpr=sian)

#### 🎉 About 209,000 live property adverts from North Macedonia's biggest classifieds site, as clean rows

##### For agencies, valuers and investors who need Skopje, Ohrid and Bitola prices without copying adverts by hand

### 🔎 What is the Pazar3 Property Scraper — and when should you use it?

The **Pazar3 Property Scraper** turns public Pazar3.mk property adverts from anywhere in North Macedonia into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.

**Use it when you need:** North Macedonian sale and rental adverts as rows: apartments, houses, land, holiday homes, rooms, garages and commercial premises in 30 towns. Every search row carries the price as a number with its currency, the headline, property type, sale or rent, town, municipality, whether a private person or an agency placed it, and the posting time. Open each advert in full and you also get floor area, rooms, street, condition, heating, amenities, view count and every photo.

**Use something else when:** you want property in a neighbouring country. Use [Halo Oglasi Scraper](https://apify.com/sian.agency/halooglasi-property-scraper?fpr=sian) for Serbian property adverts. Use [Imot.bg Scraper](https://apify.com/sian.agency/imot-property-scraper?fpr=sian) for Bulgarian property adverts. Use [Njuškalo Scraper](https://apify.com/sian.agency/njuskalo-property-scraper?fpr=sian) for Croatian property adverts. This actor reads Pazar3.mk only, for live adverts. Phone numbers, private sellers' names, map coordinates and sold prices are not returned.

### 🤖 Use with AI agents

Already connected to the [Apify MCP server](https://mcp.apify.com)? Just ask for this Actor by name: sian.agency/pazar3-property-scraper

**Your agent can pay for its own runs.** This Actor is eligible for [agentic payments](https://docs.apify.com/platform/actors/publishing/monetize), so an agent can discover it, run it and settle the bill over [x402](https://www.x402.org/) (USDC on Base) or [Skyfire](https://www.skyfire.xyz/) — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.

Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

```text
I want property adverts and asking prices from Pazar3.mk using the Apify Actor `sian.agency/pazar3-property-scraper`.

Use it when I need: North Macedonian sale and rental adverts as rows: apartments, houses, land, holiday homes, rooms, garages and commercial premises in 30 towns. Every search row carries the price as a number with its currency, the headline, property type, sale or rent, town, municipality, whether a private person or an agency placed it, and the posting time. Open each advert in full and you also get floor area, rooms, street, condition, heating, amenities, view count and every photo.

Don't use it when: you want property in a neighbouring country — use halooglasi-property-scraper or imot-property-scraper or njuskalo-property-scraper instead.

How to call it: set `propertyType` (`apartment`, `house`, `land`, `holiday-home`, `commercial`, `room`, `roommate`, `garage`, `abroad` or `all`), `dealType` (`sale`, `rent`, `wanted-to-buy`, `wanted-to-rent`, `exchange` or `all`) and `city` (`skopje`, `ohrid`, `bitola` and 27 more towns, or `all`). `advertiser` keeps `private` or `business` adverts only. `includeDetails` opens each advert for area, rooms, street, condition and every photo, for an extra charge per advert. For one Skopje municipality, pass its pazar3.mk results address in `searchUrls`. To expand adverts you already have, set `operation` to `detail` and pass `listingUrls`. The site asks for 20 seconds between pages, so about 50 properties arrive every 20 seconds.

Start with this input:
{
  "operation": "search",
  "propertyType": "apartment",
  "dealType": "rent",
  "city": "skopje",
  "advertiser": "private",
  "maxResults": 100
}

Ask me which town to cover, which property type, and whether it is for sale or to rent, then run the Actor and summarise the results as a table.
```

**Things you can ask your agent for:**

- *List apartments for rent in Skopje posted today by private owners, with price and municipality.*
- *Compare asking prices for houses for sale in Ohrid and Struga.*
- *Open 100 apartments for sale in Skopje in full, with floor area, so I can work out price per square metre by municipality.*

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at [apify.com/sian.agency/pazar3-property-scraper.md](https://apify.com/sian.agency/pazar3-property-scraper.md).

### 📋 Overview

**Pazar3 Property Scraper** turns Pazar3.mk property adverts into a spreadsheet-ready dataset: price, property type, sale or rent, town, municipality, who placed the advert and when. It is built for estate agencies, valuers, banks, investors and researchers who follow the North Macedonian housing market.

**What you get:**

- ✅ **The whole country**: 30 towns from Skopje, Bitola and Kumanovo to Ohrid, Struga and Valandovo, or all of North Macedonia at once
- 🏠 **Every property type**: apartments, houses and villas, land and farms, holiday homes, rooms, roommates, garages, commercial premises and property abroad
- 🙋 **Owner or agency, labelled by the site**: about 56% of sale adverts and half the rentals come from private owners, and you can keep only those
- 💰 **About a third of the price of the alternative**: $1.50 per 1,000 properties on the Bronze plan
- 📄 **Full adverts on request**: floor area, rooms, street, condition, heating, amenities, view count and every photo
- ✨ **NEW**: newest adverts first, with the posting time on every row, so a daily run shows exactly what came on the market

### ✨ Features

- 🔍 **Property search by form**: pick type, sale or rent, town and seller type. No URL hunting.
- 🔗 **Paste any Pazar3 results page**: one Skopje municipality such as Centar, Karpoš or Aerodrom works as it is.
- 📄 **Property Detail mode**: paste advert addresses you already have and get the full record for each.
- 🙋 **Private-owner filter**: keep only adverts placed by private persons, or only agencies and businesses.
- 🏢 **Agency name and Pazar3 page** on agency adverts, ready for partner lists.
- 🕒 **Posting time in Skopje time** on every row, plus publication time and view count on full adverts.
- 💱 **Price as a number with its currency**, euros or denars, exactly as the advertiser set it.
- 🖼️ **Main photo on each row that has one**, every photo on full adverts.
- 🔁 **No duplicates**: promoted adverts that repeat across pages are returned and charged once.
- 📊 **Run report** with your properties, links and a statement of what you were charged.

### 🎬 Quick Start

Choose what to collect, start the run, and download the rows as CSV, JSON or Excel. The defaults collect apartments for sale in Skopje. Pazar3 asks automated visitors to wait 20 seconds between pages, and this actor does, so 100 properties arrive in under a minute.

```bash
curl -X POST "https://api.apify.com/v2/acts/sian.agency~pazar3-property-scraper/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"operation": "search", "propertyType": "apartment", "dealType": "rent", "city": "skopje", "maxResults": 100}'
```

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Pick the market

Choose a property type, sale or rent, a town, and whether you want every advert or only private owners.

#### Step 2: Set how many

Enter how many properties you need, and tick "Open each advert in full" if you want floor area, rooms and every photo.

#### Step 3: Start and export

Press Start, then open the dataset and export it as CSV, JSON or Excel, or pull it over the API.

**That's it! In a few minutes, you'll have:**

- Every matching property with its price, town, municipality and seller type
- A direct link to each advert on Pazar3.mk
- A run report with links you can copy in one click

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `operation` | string | No | `search` (default) reads results pages; `detail` opens the advert addresses in `listingUrls` |
| `propertyType` | string | No | `apartment` (default), `house`, `land`, `holiday-home`, `commercial`, `room`, `roommate`, `garage`, `abroad` or `all` |
| `dealType` | string | No | `sale` (default), `rent`, `wanted-to-buy`, `wanted-to-rent`, `exchange` or `all` |
| `city` | string | No | `skopje` (default), one of 29 other towns such as `ohrid`, `bitola`, `tetovo`, or `all` |
| `advertiser` | string | No | `all` (default), `private` for owners only, `business` for agencies and businesses only |
| `maxResults` | integer | No | How many properties to return, 1 to 5,000 (default 100) |
| `includeDetails` | boolean | No | Open each advert in full: area, rooms, street, condition, photos. Up to 100 per run |
| `searchUrls` | array | No | Pazar3 results pages to read instead of the form, for example one municipality |
| `listingUrls` | array | No | Advert addresses for `detail` mode, up to 100 per run |

**Example: owner-listed apartments to rent in Skopje**

```json
{
  "operation": "search",
  "propertyType": "apartment",
  "dealType": "rent",
  "city": "skopje",
  "advertiser": "private",
  "maxResults": 200
}
```

**Example: one municipality, opened in full**

```json
{
  "operation": "search",
  "searchUrls": [{ "url": "https://www.pazar3.mk/oglasi/zivealista/stanovi/prodazba/skopje/centar" }],
  "maxResults": 50,
  "includeDetails": true
}
```

**Example: adverts you already have**

```json
{
  "operation": "detail",
  "listingUrls": [{ "url": "https://www.pazar3.mk/oglas/zivealista/stanovi/prodazba/skopje/centar/prostran-4-soben-stan-od-85-m-vo-czentar-kaj-zebra/9095366" }]
}
```

### 📤 Output

Results are saved to the Apify dataset with **40+ fields**. A search row carries the core fields; a full advert adds the rest.

| Field | Type | Description |
|-------|------|-------------|
| `listingId` | integer | Pazar3 advert number |
| `propertyTitle` | string | The advert headline |
| `price` / `currency` | integer / string | Asking price as a number, in `EUR` or `MKD` |
| `propertyType` / `dealType` | string | For example `apartment` and `rent` |
| `city` / `municipality` | string | Town and municipality as Pazar3 shows them |
| `advertiserType` | string | `private`, `agency` or `business` |
| `storeUrl` / `sellerName` | string | Agency or business page and name (never a private person's name) |
| `postedAt` | string | Posting time with the Skopje offset |
| `mainImageUrl` | string | Main photo |
| `areaSqm` / `rooms` | number / integer | Floor area and rooms (full advert) |
| `address` / `condition` / `heating` | string | Street, condition and heating (full advert) |
| `features` | array | Amenities such as balcony, lift, parking (full advert) |
| `photos` / `views` | array / integer | Every photo and the view count (full advert) |
| `descriptionText` | string | The advertiser's full text (full advert) |
| `listingUrl` | string | Link to the advert |

**Example (a real search row, 2026-10-05):**

```json
{
  "mainImageUrl": "https://media.pazar3.mk/Image/afd9f6c5-5d4c-4b5b-aaf9-048e6dbb66ab/20261005/665/500/moderno-ureden-stan-vo-dzevahir-sky-city.jpeg?AllowCropping=False",
  "listingId": 9163329,
  "propertyTitle": "Moderno Ureden Stan Vo Dzevahir Sky City",
  "price": 650,
  "currency": "EUR",
  "propertyType": "apartment",
  "dealType": "rent",
  "category": "Станови",
  "city": "Скопjе",
  "municipality": "Центар",
  "citySlug": "skopje",
  "advertiserType": "agency",
  "sellerLabel": "Агенција за недвижности",
  "storeUrl": "https://www.pazar3.mk/agencijadomart",
  "advertiserId": 993078,
  "isPromoted": false,
  "postedLabel": "Денес 16:21",
  "postedAt": "2026-10-05T16:21:00+02:00",
  "hasDetail": false,
  "listingUrl": "https://www.pazar3.mk/oglas/zivealista/stanovi/izdavanje/skopje/centar/moderno-ureden-stan-vo-dzevahir-sky-city/9163329"
}
```

A full advert adds, for example, `"areaSqm": 109`, `"rooms": 4`, `"condition": "Користено - Како Ново"`, `"features": ["Балкон / Тераса", "Лифт", "Паркинг простор / Гаража"]`, `"photoCount": 12` and `"views": 332` (advert 7835219).

Labels such as category, condition and amenities stay in Macedonian, exactly as the site prints them, so they match what your local team sees.

### 💼 Use Cases & Examples

#### 1. Rents across Skopje municipalities

**Letting agents and investors compare monthly rents in Centar, Karpoš, Aerodrom and Kisela Voda.**

**Input:** apartments, to rent, Skopje, 1,000 properties
**Output:** price, currency, municipality and posting time for each flat
**Use:** a rent map by municipality, refreshed weekly

#### 2. Owner leads for estate agencies

**Agencies find people selling or letting without an agent.**

**Input:** advertiser set to private persons only
**Output:** owner adverts with headline, price, town and a direct link
**Use:** a daily call list, newest adverts first

#### 3. Valuation comparables

**Valuers and bank analysts build a comparable set for one area.**

**Input:** one municipality's results page, opened in full
**Output:** floor area, rooms, condition, heating, street and asking price
**Use:** price per square metre for the desk valuation

#### 4. New supply tracking

**Developers and researchers watch what comes onto the market each day.**

**Input:** a scheduled daily run with a modest limit
**Output:** the adverts posted since the last run, with their posting time
**Use:** a supply index by town and property type

#### 5. Holiday homes by the lakes

**Diaspora buyers and holiday-rental operators follow Ohrid, Struga and Dojran.**

**Input:** holiday homes or houses, Ohrid or Struga
**Output:** prices and adverts, with photos
**Use:** a shortlist and a price history per town

#### 6. Commercial premises

**Retailers and office brokers scan shops, offices and warehouses for sale or rent.**

**Input:** commercial premises, any town
**Output:** headline, price, town and the agency behind each advert
**Use:** a site-selection longlist

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/pazar3-property-scraper').call({
  operation: 'search',
  propertyType: 'apartment',
  dealType: 'sale',
  city: 'skopje',
  maxResults: 200
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/pazar3-property-scraper').call(
    run_input={'operation': 'search', 'propertyType': 'house', 'dealType': 'sale', 'city': 'ohrid', 'maxResults': 100}
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item['propertyTitle'], item.get('price'), item.get('currency'))
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~pazar3-property-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation": "search", "propertyType": "apartment", "dealType": "rent", "city": "skopje", "advertiser": "private", "maxResults": 100}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: a daily schedule, for example 07:00 Skopje time
2. **HTTP Request**: start this actor with your search and wait for the dataset
3. **Process**: keep the rows posted since yesterday, or with a price under your limit
4. **Action**: add them to Google Sheets or your CRM, or send them to Slack or email

### 📊 Performance & Pricing

Pazar3 asks automated visitors to wait 20 seconds between pages, and this actor keeps to that. One results page holds about 50 properties:

| Properties | Time, search only |
|---|---|
| 100 | under a minute |
| 1,000 | about 7 minutes |
| 5,000 (the maximum per run) | about 34 minutes |

Opening adverts in full adds 20 seconds each, so a run opens at most 100 adverts in full (about 34 minutes). The rest of the run still returns search rows. For larger jobs, split them by town or property type and schedule them.

#### FREE Tier (Try It Now)

- **25 properties** per run, with every field and full adverts included
- No credit card required
- Enough to check the data on your own market

#### PAID Tier (Production Ready)

- **Up to 5,000 properties** per run, as many runs as you like
- Pay per property returned, never for errors or empty searches
- Full adverts billed only when one actually opened

| Event | Bronze plan | Free plan |
|---|---|---|
| Property returned | $0.0015 | $0.006 |
| Full advert opened | $0.004 | $0.016 |
| Run started | $0.005 | $0.02 |

💰 **1,000 properties cost $1.50 on the Bronze plan**, about a third of the price of the other Pazar3 option on the Store, and with property fields it does not have.

🔗 [View current pricing](https://apify.com/sian.agency/pazar3-property-scraper?fpr=sian)

### ❓ Frequently Asked Questions

**Q: Does it cover all of North Macedonia?**
A: Yes. Pick one of the 30 towns or the whole country. For one municipality of Skopje, open it on pazar3.mk and paste the results address into Search page URLs.

**Q: Why does a run take minutes rather than seconds?**
A: Pazar3 asks automated visitors to wait 20 seconds between pages, and this actor follows that. 1,000 properties take about 7 minutes. Schedule larger runs rather than waiting on them.

**Q: Can I get only owner adverts?**
A: Yes. Set "Placed by" to private persons only. Pazar3 labels every advert as private or business, and estate agencies carry their own badge.

**Q: Which currency are prices in?**
A: The one the advertiser chose, usually euros, sometimes denars. The currency is on every row. Prices are copied as written, and some advertisers enter a price per square metre in the price box.

**Q: Do I get phone numbers?**
A: No. The actor does not collect phone numbers or the names of private sellers. Agency and business adverts include the business name and its Pazar3 page.

**Q: How many full adverts can one run open?**
A: Up to 100, because each advert page also waits 20 seconds. Search rows beyond that still come back, without the extra detail and without the detail charge.

**Q: What output formats are available?**
A: JSON, CSV, Excel, XML and HTML, straight from the Apify dataset, or over the API.

### 🐛 Troubleshooting

**The run returned fewer properties than I asked for**

- The search may simply have fewer adverts. The run log prints how many result pages the search has.
- On the Free plan a run stops at 25 properties.

**A row says "This advert is no longer online on Pazar3"**

- The advertiser removed it. Run the search again to get the adverts that are live now. You were not charged for it.

**A row says "Pazar3 is temporarily unavailable"**

- The site did not serve that page just then. Run it again in a few minutes; nothing was charged.

**My pasted address was skipped**

- Use an address copied from pazar3.mk: results pages start with https://www.pazar3.mk/oglasi/zivealista, adverts with https://www.pazar3.mk/oglas/.

**The run stopped before my limit with a timeout note**

- Large runs with full adverts can reach the run timeout. Raise the timeout in the run options, or split the job.

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

Pazar3 is a trademark of Pazar3.com DOOEL. This actor is not affiliated with, endorsed by, or sponsored by Pazar3.

### 🤝 Support

**Join our active support community**

- For issues or questions, open an issue on the actor's [Issues tab](https://apify.com/sian.agency/pazar3-property-scraper/issues)
- Check [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Changelog

This Actor's version history is a separate document: https://apify.com/sian.agency/pazar3-property-scraper/changelog.md

# Actor input Schema

## `operation` (type: `string`):

🎯 **PICK A MODE:**

- **🔍 Property Search** reads Pazar3 results pages, about 50 adverts a page, using the filters below or the results pages you paste.
- **📄 Property Detail** opens the advert addresses you paste in Advert URLs and returns each one in full.

💡 **TIP:** to get full adverts from a search, stay in Property Search and tick Open each advert in full.

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

🏠 **PROPERTY TYPE:** which kind of property to search. Apartments are the largest section: about 56,000 flats were for sale in Skopje alone on 2026-10-05.

💡 **TIP:** pick All property types to cover every section at once.

## `dealType` (type: `string`):

🏷️ **SALE OR RENT:** which side of the market. For rentals the price is the monthly rent the advertiser asks.

⚠️ **NOTE:** commercial premises have no Exchange section on Pazar3, so that combination is refused before the run is charged for any property.

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

📍 **TOWN:** one of the 30 towns Pazar3 lists, or all of North Macedonia.

💡 **TIP:** for one municipality of Skopje, such as Centar, Karpoš or Aerodrom, open it on pazar3.mk and paste the results address into Search page URLs. Search rows also carry the municipality when the advert names one, so a Skopje-wide run can be split later.

## `advertiser` (type: `string`):

👤 **PLACED BY:** Pazar3 marks every advert as placed by a private person or by a business. About 56% of sale adverts come from private sellers; rentals split about half and half.

🔒 **PRIVACY:** no phone numbers and no private persons' names are collected. Agencies and businesses come with their name and Pazar3 page.

## `maxResults` (type: `integer`):

🔢 **HOW MANY PROPERTIES:** up to 5,000 per run. Pazar3's robots.txt asks for 20 seconds between requests and this actor keeps to it, so expect about 50 properties every 20 seconds: 100 take under a minute, 1,000 about 7 minutes, 5,000 about 34 minutes.

💎 **PAID plans:** the full 5,000 per run. FREE plan runs return up to 25 properties.

## `includeDetails` (type: `boolean`):

📄 **FULL ADVERTS:** also open each advert page for the full description, floor area, rooms, street, condition, heating, amenities, view count and every photo. Billed as one Property Detail on top of the search row.

⏱️ **LIMIT:** each advert page also waits 20 seconds, so up to 100 adverts are opened per run (about 34 minutes). Any beyond that come back as search rows.

## `searchUrls` (type: `array`):

🔗 **RESULTS PAGES:** paste Pazar3 property results pages to use instead of the filters above, for example https://www.pazar3.mk/oglasi/zivealista/stanovi/prodazba/skopje/centar

✅ The address is used as it is, filters included.
📋 Use Bulk edit to paste several, one per line.
⚠️ Ignored in Property Detail mode.

## `listingUrls` (type: `array`):

📄 **ADVERT ADDRESSES** for Property Detail, one per line, for example https://www.pazar3.mk/oglas/zivealista/stanovi/prodazba/skopje/centar/prostran-4-soben-stan-od-85-m-vo-czentar-kaj-zebra/9095366

⏱️ Up to 100 adverts per run, one every 20 seconds.
⚠️ Ignored in Property Search mode.

## Actor input object example

```json
{
  "operation": "search",
  "propertyType": "apartment",
  "dealType": "sale",
  "city": "skopje",
  "advertiser": "all",
  "maxResults": 50,
  "includeDetails": false
}
```

# Actor output Schema

## `pazar3MkProperties` (type: `string`):

Every property this run returned.

## `scrapingSummary` (type: `string`):

HTML summary showing successful and failed results with key metrics

# 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 = {
    "operation": "search",
    "propertyType": "apartment",
    "dealType": "sale",
    "city": "skopje",
    "advertiser": "all",
    "maxResults": 50,
    "includeDetails": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/pazar3-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 = {
    "operation": "search",
    "propertyType": "apartment",
    "dealType": "sale",
    "city": "skopje",
    "advertiser": "all",
    "maxResults": 50,
    "includeDetails": False,
}

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/pazar3-property-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 '{
  "operation": "search",
  "propertyType": "apartment",
  "dealType": "sale",
  "city": "skopje",
  "advertiser": "all",
  "maxResults": 50,
  "includeDetails": false
}' |
apify call sian.agency/pazar3-property-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,sian.agency/pazar3-property-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/lnRUphaQWczWdvTXS/builds/SdUxpxDyo7dZMC1v7/openapi.json
