# Bazaraki Scraper: Cyprus Classifieds Monitor (`getascraper/bazaraki-scraper`) Actor

Scrape Bazaraki.com classifieds for Cyprus real estate, cars, jobs, electronics, and marketplace data. Search by keyword, city, category, or price; export listings with sellers, images, locations, and price-change signals.

- **URL**: https://apify.com/getascraper/bazaraki-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Real estate, E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.95 / 1,000 listings

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

## 🏠 Bazaraki scraper: Cyprus classifieds monitor

<table width="100%" style="display:table;width:100%;border-collapse:collapse;table-layout:fixed">
<tbody style="display:table-row-group;width:100%">
<tr>
<td style="padding:24px 28px;background:#F0FDFA;border:1px solid #99F6E4;border-top:4px solid #0F766E;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#134E4A;line-height:1.3">Get Bazaraki listings, prices, seller details, and change signals ready for your spreadsheet.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Search Cyprus property, cars, jobs, electronics, and marketplace listings. Start with a focused sample, then return to the same market view whenever you need fresh results.</span>
</td>
</tr>
</tbody>
</table>

<table width="100%" style="display:table;width:100%;border-collapse:collapse;table-layout:fixed">
<tbody style="display:table-row-group;width:100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #99F6E4;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#115E59">🗺️ Search by market</span><br>
<span style="font-size:12px;color:#57534E">Choose keywords, categories, cities, prices, or listing URLs.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #99F6E4;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#115E59">🏠 Property signals</span><br>
<span style="font-size:12px;color:#57534E">Compare area, rooms, floor, location, and asking price when listed.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #99F6E4;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#115E59">🚗 Vehicle details</span><br>
<span style="font-size:12px;color:#57534E">Review year, mileage, fuel, gearbox, and seats when published.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #99F6E4;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#115E59">🔄 Change signals</span><br>
<span style="font-size:12px;color:#57534E">Find new, updated, unchanged, and price-changed listings.</span>
</td>
</tr>
</tbody>
</table>

### 🔍 What does this Actor do?

This Bazaraki scraper collects public listings from [Bazaraki.com](https://www.bazaraki.com/en/) across Cyprus property, cars, jobs, electronics, and other marketplace categories. It returns clean listing rows with prices, descriptions, images, locations, public seller details, and category-specific information when published.

Start from exact listing or search URLs, or build a search with keywords, category paths, cities, language, sort order, and price range. Exact URLs take priority over the guided filters. Detailed listing information is optional, so you can choose between a quick overview and a richer market dataset.

<table width="100%" style="display:table;width:100%;border-collapse:collapse;table-layout:fixed">
<tbody style="display:table-row-group;width:100%">
<tr>
<td style="padding:12px 18px;background:#F0FDFA;border-left:4px solid #0F766E;border-top:1px solid #CCFBF1;border-right:1px solid #CCFBF1;border-bottom:1px solid #CCFBF1">
<span style="font-size:15px;color:#134E4A">⚡ Start with a focused search, inspect the first dataset, then schedule the same market view when you need fresh changes.</span>
</td>
</tr>
</tbody>
</table>

### 🎯 Why use this Actor?

- **I am a Cyprus real estate investor** looking for new sale or rental opportunities in Limassol, Nicosia, Larnaca, Paphos, or other local markets.
- **I am a car importer or dealer** comparing used vehicle prices, mileage, year, and seller details before choosing inventory.
- **I am a recruiter** tracking new job listings and employer information across the categories that matter to my team.
- **I am a product reseller** watching electronics and marketplace supply for prices, locations, sellers, and new stock.
- **I am a market researcher** building a repeatable view of Cyprus classifieds without copying listings by hand.

### 🚀 How to use it

<table width="100%" style="display:table;width:100%;border-collapse:collapse;table-layout:fixed">
<tbody style="display:table-row-group;width:100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#F0FDFA;border:1px solid #99F6E4;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#0F766E;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#134E4A">Choose your market</span><br>
<span style="font-size:12px;color:#57534E">Enter listing URLs, keywords, category paths, cities, or price limits.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F0FDFA;border:1px solid #99F6E4;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#0F766E;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#134E4A">Choose the detail level</span><br>
<span style="font-size:12px;color:#57534E">Keep detail records on for descriptions, media, seller signals, and typed values.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F0FDFA;border:1px solid #99F6E4;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#0F766E;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#134E4A">Review or monitor</span><br>
<span style="font-size:12px;color:#57534E">Run the Actor, download the dataset, or repeat the same search for listing changes.</span>
</td>
</tr>
</tbody>
</table>

### 🧾 Input

All inputs are optional. The prefilled run uses a small apartment search so you can review the output before increasing the scope.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `startUrls` | array of URLs | No | Exact Bazaraki listing, search, or category URLs. When supplied, these take priority over guided search filters. |
| `searchQueries` | array of strings | No | Keywords such as `iphone 15`, `toyota`, or `apartment`. Each keyword creates a separate search slice. |
| `categoryPaths` | array of strings | No | Bazaraki category paths for property, cars, electronics, jobs, or other marketplace areas. |
| `cities` | array of strings | No | Cyprus city or district filters such as Nicosia, Limassol, Larnaca, Paphos, or Famagusta. |
| `language` | enum | No | Choose English, Greek, or Russian when the listing page offers a localized version. |
| `sortBy` | enum | No | Choose relevance, newest, oldest, cheapest, or most expensive. |
| `minPrice` | integer | No | Keep listings at or above this EUR amount. Use zero when no minimum is needed. |
| `maxPrice` | integer | No | Keep listings at or below this EUR amount. Use zero when no maximum is needed. |
| `condition` | enum | No | Choose any condition, new, or used when the selected category supports it. |
| `bedrooms` | enum | No | Choose studio, one to five bedrooms, or six or more bedrooms for supported property searches. |
| `maxPages` | integer | No | Set the maximum number of listing pages per search. Start small for a quick market check. |
| `proxyConfiguration` | object | No | Use Apify access settings when the source needs a more reliable connection. |
| `requestDelayMs` | integer | No | Set the pause between requests. A longer pause can help with larger scheduled searches. |
| `maxConcurrency` | integer | No | Set how many requests can run at once. A modest value is best for steady collection. |
| `includeDetails` | boolean | No | Add descriptions, images, locations, seller signals, and category-specific values when published. |
| `includeDescriptionHtml` | boolean | No | Keep the original formatting of a listing description as well as readable text. |
| `monitorKey` | string | No | Use the same label on recurring runs, such as `limassol-apartments`, to compare current and prior results. |
| `onlyNew` | boolean | No | Return only listings that were not found in the previous run for the same monitoring label. |
| `onlyPriceChanged` | boolean | No | Return only listings whose observed price differs from the previous run for the same monitoring label. |
| `maxItems` | integer | No | Limit the number of listing rows returned. Start with a small value while checking a new search. |
| `maxDetailRequests` | integer | No | Limit how many listings receive extra detail enrichment. This helps control the size of a run. |
| `debug` | boolean | No | Add extra run notes when diagnosing a category or missing field. Leave this off for normal runs. |

### 📦 Output

The dataset contains one row for each discovered listing. Rows normally include stable listing details, source context, seller information, category-specific values, and optional monitoring results. Missing source values remain empty instead of being guessed.

Download the dataset from Apify in common formats such as JSON, CSV, HTML, or Excel.

### 📊 Data table

| Field | Type | Description |
| --- | --- | --- |
| `listingId` | string | Stable Bazaraki listing identifier. |
| `canonicalUrl` | string | Link to the original listing. |
| `sourceUrl` | string | Search or listing source used for the record. |
| `sourcePage` | string | Page where the listing was found. |
| `sourcePosition` | number | Position on a search page when available. |
| `title` | string | Listing title. |
| `price` | number | Current asking price when published. |
| `previousPrice` | number | Previous or reference price when published. |
| `currency` | string | Currency shown by the source. |
| `description` | string | Public listing description. |
| `images` | array | Public image links from the listing. |
| `location` | string | Display location from the listing. |
| `city` | string | City or district when published. |
| `categoryPath` | string | Category path used by the source. |
| `features` | object | Normalized category details such as property or vehicle values. |
| `attributes` | object | Additional source attributes when clearly published. |
| `sellerName` | string | Public seller name. |
| `sellerProfileUrl` | string | Public seller profile link. |
| `sellerIsVerified` | boolean | Public seller verification status. |
| `sellerIsBusiness` | boolean | Whether the source identifies the seller as a business. |
| `sellerListingCount` | number | Public seller listing count when available. |
| `contactAvailability` | object | Public availability flags only, not private contact values or message content. |
| `propertyAreaSqm` | number | Property area in square meters when published. |
| `bedrooms` | number | Number of bedrooms when published. |
| `bathrooms` | number | Number of bathrooms when published. |
| `floor` | number | Property floor when published. |
| `vehicleYear` | number | Vehicle year when published clearly. |
| `mileageKm` | number | Vehicle mileage in kilometers when published. |
| `gearbox` | string | Gearbox label when published. |
| `fuelType` | string | Fuel type when published. |
| `seats` | number | Vehicle seats when published. |
| `detailFetched` | boolean | Whether the extra listing details were collected successfully. |
| `detailStatus` | string | Result of the optional detail collection. |
| `changeType` | string | `NEW`, `UPDATED`, or `UNCHANGED` when monitoring is enabled. |
| `priceChanged` | boolean | Whether the observed price changed from the prior run. |
| `previousObservedPrice` | number | Prior observed price when available. |
| `firstSeenAt` | date-time | First observation for the monitoring label. |
| `lastSeenAt` | date-time | Most recent observation for the monitoring label. |
| `parseWarnings` | array | Non-fatal notes about incomplete listing details. |
| `scrapedAt` | date-time | Time the listing was collected. |

### 🔄 Monitor new and changed listings

Use the same `monitorKey` on recurring runs. The Actor compares the current listing set with prior observations and labels each row as `NEW`, `UPDATED`, or `UNCHANGED`. It also marks observed price changes when both runs contain a price.

Use `onlyNew` to create a focused new-listing feed. Use `onlyPriceChanged` to create a price-change feed for alerts, reports, or marketplace analysis.

### 💰 Pricing

Pricing is pay per event. A listing-only run uses one Listing event for each saved row. When `includeDetails` is on and extra public details are successfully added, that row uses one additional Detail record event. Turn `includeDetails` off for lower-cost overview runs. Empty runs cost nothing, and there are no subscriptions or fixed monthly commitments.

### ⭐ Enjoying Bazaraki scraper: Cyprus classifieds monitor?

<table width="100%" style="display:table;width:100%;border-collapse:collapse;table-layout:fixed">
<tbody style="display:table-row-group;width:100%">
<tr>
<td style="padding:20px 24px 14px;background:#F0FDFA;border:1px solid #99F6E4;border-left:5px solid #0F766E;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px;color:#0F766E">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#134E4A">If this Actor helps you spot a listing or price change sooner, your rating helps other teams find it.</span><br>
<span style="font-size:14px;color:#57534E">Your feedback helps property teams, dealers, recruiters, and resellers choose the right Cyprus classifieds workflow.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#0F766E;border:1px solid #99F6E4;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/bazaraki-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</tbody>
</table>

### 🧭 Tips for reliable results

- Use exact listing or search URLs when you need a repeatable source.
- Remember that exact URLs take priority over keywords, category paths, and city filters.
- Keep detail collection on when you need descriptions, media, seller signals, or property and vehicle fields.
- Start with a small page and listing limit. Increase the scope after confirming the results match your market.
- Use a stable monitoring label for recurring searches. Keep the label tied to one market view, such as a city and category.
- Category-specific fields appear only when the listing publishes a clear value.

### ❓ FAQ

##### Does it collect private phone numbers or messages?

No. The Actor collects public listing information and public availability flags. It does not collect private phone numbers, private messages, or hidden contact content.

##### How current are the results?

Each run collects the public listing information available at that time. Schedule repeat runs when you need a current property, vehicle, job, or marketplace view.

##### Can I scrape Bazaraki property, cars, jobs, and electronics?

Yes. Use category paths or exact Bazaraki URLs for the areas you need. The prefilled search focuses on apartments, while the source may publish different fields for each category.

##### Can I track new listings and price changes?

Yes. Reuse a monitoring label on recurring runs. The Actor can return new listings and observed price changes without requiring you to compare every row by hand.

Use public listing data responsibly. Follow Bazaraki's terms and applicable law, and make sure your workflow respects the rights of sellers and other people represented in the data.

### 🛟 Support

If a run needs attention, use the Apify Issues tab and include the category or search type you used. Do not post credentials, private contact information, or other sensitive content in a support request.

### 🔗 Other actors

- [🔨 ShopGoodwill Scraper: Sold Comps & Auction Monitor](https://apify.com/getascraper/shopgoodwill-scraper) ↗ - Compare auction results and sold prices for resale research.
- [che168 Used Car Scraper: Autohome 二手车 Listings, Dealer Profiles & Phone Reveals](https://apify.com/getascraper/che168-car-scraper) ↗ - Research used-car listings, dealers, and vehicle market details.
- [Property24 scraper: real estate listings, prices, and broker leads](https://apify.com/getascraper/property24-scraper) ↗ - Collect property listings and asking-price signals.
- [💼 NoFluffJobs scraper: tech jobs & salaries](https://apify.com/getascraper/nofluffjobs-scraper) ↗ - Track job listings and salary information.
- [🇨🇦 Job Bank Canada Scraper & LMIA Job Monitor](https://apify.com/getascraper/jobbank-scraper) ↗ - Monitor job listings and recurring changes.

# Actor input Schema

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

Optional Bazaraki listing or search URLs. When supplied, these URLs are scraped directly and take precedence over guided filters.

## `searchQueries` (type: `array`):

Optional keywords such as iphone 15, toyota, or apartment. Each keyword creates a separate source slice.

## `categoryPaths` (type: `array`):

Bazaraki category paths, for example real-estate-for-sale/apartments-flats or car-motorbikes-boats/cars.

## `cities` (type: `array`):

Optional Cyprus city filters such as nicosia, limassol, larnaca, paphos, or famagusta.

## `language` (type: `string`):

Language path used when Bazaraki provides a localized page.

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

Requested source sort order when the selected page supports it.

## `minPrice` (type: `integer`):

Keep listings priced at or above this EUR amount. Use 0 for no minimum.

## `maxPrice` (type: `integer`):

Keep listings priced at or below this EUR amount. Use 0 for no maximum.

## `condition` (type: `string`):

Optional condition filter where the selected Bazaraki category supports it.

## `bedrooms` (type: `string`):

Optional real-estate bedroom filter. Studio, 1 to 5 bedrooms, or 6+ bedrooms.

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

Maximum listing pages per generated source. Use 0 only when you deliberately want to follow pagination until it ends.

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

Apify Proxy is recommended for reliable access to Bazaraki. Datacenter proxy is the default; residential can be selected in the Console when needed.

## `requestDelayMs` (type: `integer`):

Delay between source requests in milliseconds. Increase this when running larger scheduled slices.

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

Number of simultaneous HTTP requests. Keep this modest to reduce throttling and improve data quality.

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

Fetch each listing's full public detail record for descriptions, coordinates, gallery, seller signals, and typed characteristics.

## `includeDescriptionHtml` (type: `boolean`):

Keep the source-formatted description HTML in addition to cleaned description text.

## `monitorKey` (type: `string`):

Optional stable key for scheduled change detection, such as limassol-apartments. The same key reuses its prior snapshot.

## `onlyNew` (type: `boolean`):

When monitoringKey is set, emit only listings not seen in the previous snapshot.

## `onlyPriceChanged` (type: `boolean`):

When monitoringKey is set, emit only listings whose observed price changed from the previous snapshot.

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

Maximum final dataset rows. Use 0 only as an explicit unlimited opt-in. Detail requests remain bounded separately.

## `maxDetailRequests` (type: `integer`):

Maximum detail records collected in one run. Use this to control the size and cost of enriched searches.

## `debug` (type: `boolean`):

Write additional parser diagnostics to the run log. No raw credentials or private contact data are logged.

## Actor input object example

```json
{
  "startUrls": [],
  "searchQueries": [],
  "categoryPaths": [
    "real-estate-for-sale/apartments-flats"
  ],
  "cities": [],
  "language": "en",
  "sortBy": "newest",
  "minPrice": 0,
  "maxPrice": 0,
  "condition": "",
  "bedrooms": "",
  "maxPages": 3,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "requestDelayMs": 500,
  "maxConcurrency": 3,
  "includeDetails": true,
  "includeDescriptionHtml": false,
  "monitorKey": "",
  "onlyNew": false,
  "onlyPriceChanged": false,
  "maxItems": 10,
  "maxDetailRequests": 10,
  "debug": false
}
```

# Actor output Schema

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

Structured listing rows with detail enrichment, seller fields, provenance, and optional monitoring fields.

## `runSummary` (type: `string`):

Source, pagination, detail request, output, and monitoring counts for this run.

# 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 = {
    "startUrls": [],
    "searchQueries": [],
    "categoryPaths": [
        "real-estate-for-sale/apartments-flats"
    ],
    "cities": [],
    "language": "en",
    "sortBy": "newest",
    "minPrice": 0,
    "maxPrice": 0,
    "condition": "",
    "bedrooms": "",
    "maxPages": 3,
    "proxyConfiguration": {
        "useApifyProxy": true
    },
    "requestDelayMs": 500,
    "maxConcurrency": 3,
    "includeDetails": true,
    "includeDescriptionHtml": false,
    "monitorKey": "",
    "onlyNew": false,
    "onlyPriceChanged": false,
    "maxItems": 10,
    "maxDetailRequests": 10,
    "debug": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/bazaraki-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 = {
    "startUrls": [],
    "searchQueries": [],
    "categoryPaths": ["real-estate-for-sale/apartments-flats"],
    "cities": [],
    "language": "en",
    "sortBy": "newest",
    "minPrice": 0,
    "maxPrice": 0,
    "condition": "",
    "bedrooms": "",
    "maxPages": 3,
    "proxyConfiguration": { "useApifyProxy": True },
    "requestDelayMs": 500,
    "maxConcurrency": 3,
    "includeDetails": True,
    "includeDescriptionHtml": False,
    "monitorKey": "",
    "onlyNew": False,
    "onlyPriceChanged": False,
    "maxItems": 10,
    "maxDetailRequests": 10,
    "debug": False,
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/bazaraki-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 '{
  "startUrls": [],
  "searchQueries": [],
  "categoryPaths": [
    "real-estate-for-sale/apartments-flats"
  ],
  "cities": [],
  "language": "en",
  "sortBy": "newest",
  "minPrice": 0,
  "maxPrice": 0,
  "condition": "",
  "bedrooms": "",
  "maxPages": 3,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "requestDelayMs": 500,
  "maxConcurrency": 3,
  "includeDetails": true,
  "includeDescriptionHtml": false,
  "monitorKey": "",
  "onlyNew": false,
  "onlyPriceChanged": false,
  "maxItems": 10,
  "maxDetailRequests": 10,
  "debug": false
}' |
apify call getascraper/bazaraki-scraper --silent --output-dataset

```

## MCP server setup

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