# RE/MAX Turkey Scraper - Listings, Agents, Offices (`recordsdata/remax-tr-scraper`) Actor

Scrape remax.com.tr: homes, commercial property and land for sale or rent in Turkey and Northern Cyprus with price, rooms, area, coordinates, photos, amenities, consultant and office. Agent and office profiles and inventory counts included. No login.

- **URL**: https://apify.com/recordsdata/remax-tr-scraper.md
- **Developed by:** [RecordsData](https://apify.com/recordsdata) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $18.00 / 1,000 listing (search card data)s

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

![RecordsData](https://api.apify.com/v2/key-value-stores/AAm3a1h3Z9nYfrvh9/records/banner?v=3)

## 🎈 RE/MAX Turkey Scraper - Property Listings, Consultants and Offices - RecordsData

> 🚀 **Export RE/MAX Turkey real estate listings in minutes.** Search homes, commercial property and land for sale or rent across Turkey and Northern Cyprus by place, type and price, read single listings by address or code, crawl the whole public catalog of about 37,000 listings, list RE/MAX consultants and offices, and count the inventory per search. Every listing returns price, address with coordinates, area, rooms, amenities, description, photos and the RE/MAX office that markets it. Export CSV, Excel, JSON or XML.

**Quick answer:** RE/MAX Turkey Scraper costs $18 per 1,000 listing cards or $30 per 1,000 listings with full page data (pay per event), needs no proxy and no login, and returns typed rows for about 37,000 public listings plus consultants, offices and inventory counts.

**RE/MAX Turkey Scraper is an Apify Actor that collects the public listings of remax.com.tr, the Turkish site of the RE/MAX franchise network: flats, villas, houses, shops, offices, hotels, factories and plots, for sale or rent, in all 81 provinces and the six districts of Northern Cyprus.** A detailed listing has about 75 fields, and a 3-listing cloud run takes about 3 seconds.

| 🎯 Target audience | 💡 Primary use cases |
|---|---|
| Real estate investors and analysts | Asking price per square meter by district, Istanbul versus Anatolia, Turkey versus Northern Cyprus |
| Brokers, agencies and proptech teams | Competitor inventory by RE/MAX office, new stock alerts, consultant and office lists |
| Relocation and foreign buyer advisers | Shortlists of villas, flats and plots in Istanbul, Antalya, Muğla, Bodrum and Girne |
| Developers and land investors | Plot and commercial property monitoring with area, zoning and floor area ratio |
| Data teams and researchers | Geocoded Turkish housing datasets, inventory counts by province and property type |

### 📋 RE/MAX Turkey Listing Scraping: what the Actor does

The Actor reads the same public pages and sitemaps that remax.com.tr serves to every visitor. No browser and no login are needed, so rows are exact and runs are quick. Six modes cover the site.

- **search**: listings by deal type (buy, rent or both), property group (housing, commercial, land or any), property types, province, district and neighborhood, with filters for price, bedrooms, area and keywords.
- **urls**: paste listing pages, search pages, consultant pages or office pages, or just listing codes such as `P26534842`. Several kinds can be mixed.
- **catalog**: walk the public listing sitemaps, newest first, optionally only listings changed since a date. The fastest way to see what is new across the whole site.
- **agents**: RE/MAX consultant profiles with office, licence, languages, service areas, specialties, ratings, sold and rented volumes.
- **offices**: RE/MAX office profiles with address, coordinates, roster by role, awards, ratings and live listing counts.
- **inventory**: how many listings the site shows for each search, split by property type, for Turkey as a whole or for each province.

### 📊 RE/MAX Turkey Data Output

Every row has a `recordType` (`listing`, `listing-detail`, `changed-listing`, `agent`, `office` or `inventory`). Fields without a value are left out, never filled with `null`. Column order is fixed: image first, identity and price next, then location, specs, text, media, consultant and office, and `scrapedAt` last. Prices are numbers in Turkish lira (`currency` is `TRY`, also for Northern Cyprus), with the monthly rent for rentals.

| Field | Type | Example |
|---|---|---|
| `listingId` | string | `P26534842` |
| `price`, `currency` | number, string | `4750000`, `TRY` |
| `pricePerM2` | number | `73076.92` |
| `city`, `region` | string | `Beylikdüzü`, `İstanbul Avrupa` |
| `latitude`, `longitude` | number | `40.993261`, `28.629885` |
| `bedrooms`, `areaBuilt` | number | `1`, `65` |
| `deedStatus`, `loanEligible` | string, boolean | `Flat Ownership Deed`, `true` |
| `amenities`, `images` | array | list of labels, photo URLs |
| `publishedAt` | date | `2026-10-10` |
| `agencyName`, `agencyLicenseNumber` | string | `RE/MAX Gelişim`, `3402372-061` |

Other fields include `status`, `areaNet`, `areaLand`, `heating`, `parcel`, `floorAreaRatio`, `previousPrice`, consultant, office and inventory fields.

Sample row from a real cloud run (long text and lists shortened):

```json
{
  "imageUrl": "https://i.remax.com.tr/photos/04/1494304/L/15b5ddf445fa48c1ab6db46ecf415094.webp",
  "recordType": "listing-detail",
  "title": "KOLEJLER BÖLGESİNDE HAVUZLU BUTİK SİTEDE ÇİFT CEPHELİ SATILIK 1+1 DAİRE",
  "listingId": "P26534842",
  "url": "https://remax.com.tr/en/property/P26534842",
  "sourceSite": "remax.com.tr",
  "country": "TR",
  "language": "en",
  "operation": "sale",
  "propertyGroup": "housing",
  "propertyType": "apartment",
  "propertyTypeName": "Flat",
  "status": "available",
  "price": 4750000,
  "currency": "TRY",
  "pricePerM2": 73076.92,
  "address": "Adnan Kahveci Mah., Beylikdüzü, İstanbul Avrupa",
  "city": "Beylikdüzü",
  "region": "İstanbul Avrupa",
  "latitude": 40.993261,
  "longitude": 28.629885,
  "bedrooms": 1,
  "rooms": 2,
  "roomLayout": "1+1",
  "bathrooms": 1,
  "areaBuilt": 65,
  "areaNet": 50,
  "floor": "2",
  "floors": 5,
  "elevator": true,
  "heating": "Natural Gas (Combi Boiler)",
  "loanEligible": true,
  "deedStatus": "Flat Ownership Deed",
  "amenities": ["ADSL", "Alarm(Break In)", "Alarm(Fire)"],
  "description": "BEYLİKDÜZÜ ADNAN KAHVECİ MAHALLESİ'NİN TERCİH EDİLEN LOKASYONLARINDAN KOLEJLER BÖLGESİNDE, 2 BLOKLU BUTİK AİLE SİTESİNDE YER ALAN 1+1 DAİREM...",
  "images": ["https://i.remax.com.tr/photos/04/1494304/L/15b5ddf445fa48c1ab6db46ecf415094.webp"],
  "imageCount": 19,
  "publishedAt": "2026-10-10",
  "agencyName": "RE/MAX Gelişim",
  "agencyUrl": "https://remax.com.tr/en/office/detail/gelisim",
  "agencyCity": "Beylikdüzü",
  "agencyRegion": "İstanbul Avrupa",
  "agencyLicenseNumber": "3402372-061",
  "scrapedAt": "2026-10-11T10:34:19.204Z"
}
```

Measured: a detailed listing has 54 to 84 fields (about 75 typical), a card-only listing about 65, a consultant 42 to 47 and an office about 35. Land and commercial rows carry their own fields.

### ✨ Why choose this RE/MAX Turkey Scraper

- **Complete page data:** price, address, coordinates, areas, rooms, heating, deed status, loan eligibility, amenities, photos, video, 360 tour, plus the consultant and the office with licence number.
- **All property groups:** housing, commercial and land, each with its own fields.
- **Northern Cyprus included:** the six districts are separate provinces; prices are in Turkish lira.
- **Monitor mode:** receive only new listings or price changes, with the previous price and percent change.
- **Honest search results:** a misspelled district makes the site show the whole province; the Actor detects this and stops with a clear message.
- **Privacy by design:** consultant phones, emails and photos are off unless you switch on **Include consultant and office contact data**.

### 📈 How it compares to alternatives

No Apify Actor is dedicated to remax.com.tr. Rival pages read on 2026-10-11:

| | This Actor | Multi-portal Turkish Actor | Hepsiemlak and Emlakjet Actors |
|---|---|---|---|
| Sites | remax.com.tr only | Six portals, RE/MAX among them | One other portal each |
| Price | $18 per 1,000 cards | From $0.50 per start | $0.88 to $1.50 per 1,000 |
| Record types | Listings, consultants, offices, inventory | Listings only | Listings only |
| Proof | Cloud runs 17 of 17 succeeded | Page shows 3 users, 0.0% success | 5 to 41 users, 93% to 100% success |

The multi-portal Actor is `olivine_lemur/turkish-real-estate-scraper`; its page says Remax may hit Cloudflare blocking. The other columns are `sian.agency`, `stealth_mode` (Hepsiemlak) and `vladignatyev` (Emlakjet). They cover other portals, so they are alternatives for Turkish data, not for RE/MAX inventory. Their per-1,000 prices are well below ours; we cost more. Pick this Actor if you need RE/MAX listings with coordinates, deed status, office licence, monitor mode or consultant and office data. Pick a Hepsiemlak or Emlakjet Actor if you need those portals. Manual export from remax.com.tr has no bulk download, and the site offers no public API.

### 💰 Pricing and cost examples

Pay per event, no subscription. Live prices on 2026-10-11:

| Event | Price | Per 1,000 |
|---|---|---|
| Listing (search card data) | $0.018 | $18.00 |
| Listing with full page data | $0.03 | $30.00 |
| Price change of a known listing | $0.03 | $30.00 |
| Consultant or office profile | $0.036 | $36.00 |
| Inventory count per search | $0.024 | $24.00 |

- 1,000 Istanbul flats as cards: 1,000 x $0.018 = **$18.00**.
- 500 villas with full page data: 500 x $0.03 = **$15.00**.
- All 88 province inventory counts: 88 x $0.024 = **$2.11**.
- The whole site as cards, about 37,000 listings: **about $666**.
- Records skipped by **Only new records** are not charged, and free plans return up to 10 items per run.

### 🚀 How to use the RE/MAX Turkey Scraper

1. Create a free account on [Apify Console](https://console.apify.com) (new accounts include free monthly credit).
2. Open **RE/MAX Turkey Scraper** and pick **What to collect**.
3. For a search choose the deal type, property group, property types and provinces. Add a district such as `kadikoy` or `Beşiktaş` if you want a smaller area. For other modes fill the addresses, listing codes, catalog date or name filter.
4. Set **Maximum items**. Free plans return up to 10 items per run.
5. Press **Start**, then download the dataset as CSV, Excel, JSON, XML or HTML, or read it through the API.

### ⚙️ Input parameters

| Input | Meaning |
|---|---|
| `mode` | search, urls, catalog, agents, offices or inventory |
| `operation`, `propertyGroup` | sale, rent or both; housing, commercial, land or any |
| `cities`, `town`, `neighborhood` | Place filters |
| `minPrice`, `minBedrooms`, `minArea`, `keywords` | Filters applied by the Actor |
| `includeDetails` | Read the full listing page (detail event) |
| `onlyNew`, `trackPriceChanges` | Monitor mode |
| `maxItems`, `maxPages` | Run limits |

Example: villas for sale in Muğla at 20 million lira or more:

```json
{
  "mode": "search",
  "operation": "sale",
  "propertyGroup": "housing",
  "propertyTypes": ["villa"],
  "cities": ["mugla"],
  "minPrice": 20000000,
  "maxItems": 100
}
```

### ⚖️ Limits and legal notes

The site's legal notice reserves its copyright, so use the data for analysis and your own products and do not republish photos or seller texts. Filters run inside the Actor because robots.txt disallows query strings. Personal data falls under KVKK and, for EU users, GDPR. This is not legal advice.

### 💼 Business use cases

- **Investors and analysts:** group flats by `pricePerM2`, `areaBuilt`, `yearBuilt` and `agencyName` to rank neighborhoods, or compare Istanbul with Antalya and Muğla. Inventory mode gives listing counts per province and type.
- **Brokers and proptech teams:** track competitor inventory by `agencyId`, spot new stock with monitor mode, and build office lists with address, roster size, awards and listing counts.
- **Relocation advisers:** shortlist homes by deed status, heating, loan flag or room layout such as `3+1`, with coordinates for a map.
- **Developers and land investors:** read plots and commercial buildings with parcel, block, land type, zoning and floor area ratio, then watch price changes.

### 🔌 Automating and integrating

Schedule runs in Apify Console and send results to Make, Zapier, n8n, Google Sheets, Airtable, Slack, Airbyte or your own webhook. Monitor mode can alert you to new listings or price drops. The Apify API and the JavaScript and Python clients start runs and read datasets in JSON, CSV, Excel, XML or HTML.

### 🤖 Use it from an AI assistant (MCP)

Connect Apify to your assistant through the [Apify MCP server](https://mcp.apify.com) and add this Actor as a tool. The assistant fills the input from your words and reads the dataset back.

**Example agent prompt:** "Use RE/MAX Turkey Scraper to get 50 flats for sale in Beşiktaş with at least 3 bedrooms, then sort them by `pricePerM2` and tell me the five cheapest."

**Tool description for agents:** "Collects public RE/MAX Turkey (remax.com.tr) listings for sale or rent by province, district, property type, price, bedrooms and area, plus consultant profiles, office profiles and inventory counts. Input: `mode`, `operation`, `propertyGroup`, `cities`, `town`, `maxItems`. Output: typed rows with price in TRY, address, coordinates, specs, photos and office."

Equivalent input for that prompt:

```json
{
  "mode": "search",
  "operation": "sale",
  "propertyGroup": "housing",
  "propertyTypes": ["daire"],
  "cities": ["istanbul-avrupa"],
  "town": "besiktas",
  "minBedrooms": 3,
  "includeDetails": false,
  "maxItems": 50
}
```

### Frequently Asked Questions

#### 🏠 What data can I scrape from RE/MAX Turkey?

Residential, commercial and land listings for sale and rent, RE/MAX consultant profiles, RE/MAX office profiles and listing counts per search. Each listing has price, address, coordinates, areas, rooms, amenities, description, photos and the office that markets it, where the site publishes them.

#### 🔎 How do I scrape RE/MAX Turkey listings for one city or district?

Choose a province in **Provinces** (Istanbul is split into `istanbul-avrupa` and `istanbul-anadolu`, as on the site), then type the district in **Town** and, if you like, the neighborhood. Write them the way the site does or as plain text: `kadikoy`, `Kadıköy` and `KADIKÖY` all give the same result.

#### 🔢 How many listings can one search return?

The site shows 36 listings per page and about 37,000 listings in total. A search can be read page after page up to the last page the site serves (page 1037 for the whole site), so there is no hidden cap per search. **Maximum items** and **Maximum pages per search** are your limits.

#### 🌐 Which language do the results come in?

Set **Language** to English or Turkish. Labels, property type names, heating and deed words and floor names follow it. Titles and descriptions are written by the sellers, mostly in Turkish, and `descriptionLanguage` tells you which language each text is in. Search pages are always read in Turkish, because the English search pages ignore the filters.

#### 💰 Which currency are prices in?

Turkish lira (`TRY`) for every listing, including Northern Cyprus. Rent listings carry the monthly rent. A listing with a hidden or zero price is marked `priceOnRequest: true` and has no `price`. A deposit given in months (as in Northern Cyprus) is kept in the `attributes` object and never mixed with `deposit` in lira.

#### 🔁 How do I get only new listings every day?

Turn on **Only new records**, keep the search the same and schedule the run. The Actor remembers what it delivered and skips it next time (skipped records are not charged). Place pages are not sorted by date, so for a daily feed of the whole site use catalog mode with **Updated since** and **Only new records**. Add **Also report price changes** to receive a `changed-listing` row with the previous price when a price moves.

#### 🧑 Does it return consultant phones or emails?

Not by default. Turn on **Include consultant and office contact data** only if you have a lawful reason to process personal data. Only business contacts of RE/MAX consultants and offices are read, and the Actor never collects data of private sellers.

#### ⚖️ Is it legal to scrape remax.com.tr?

The Actor reads only public pages, needs no login, stays on the paths that robots.txt allows and spaces its requests. The site's legal notice reserves its copyright, so use the data for analysis, research and your own products, and do not republish photos or seller texts as your own. Personal data is covered by the Turkish data protection law (KVKK) and by the GDPR if you serve EU users, so keep contact data to what you need. Ask your own legal adviser for your case.

#### 🧱 Land, commercial, consultants and offices?

Yes. Choose **Property group** `land` or `commercial` for plot rows (area, parcel, block, land type, zoning, floor area ratio) and commercial rows (facade length, ceiling height). Use the **agents** and **offices** modes for RE/MAX consultant and office profiles; **Consultant name contains** and **Office name contains** narrow them.

### 🔗 Recommended Actors

Looking for more real estate data? Browse the other RecordsData scrapers for property portals, agencies and markets in other countries.

> 💡 **Pro Tip:** browse the complete [RecordsData collection](https://apify.com/RecordsData).

**🆘 Need Help?** contact.punkrecordsdata@gmail.com

> **⚠️ Disclaimer:** independent tool, not affiliated with, endorsed by or sponsored by RE/MAX or remax.com.tr. RE/MAX and the balloon mark are trademarks of their owners and are shown only to identify the source of the data. It collects only publicly available data.

Last updated: 2026-10-11

# Actor input Schema

## `mode` (type: `string`):

search = listings for the chosen deal type, property group, types and places. urls = the RE/MAX Turkey addresses and listing codes you list below. catalog = walk the public listing sitemaps, newest first (everything, or only what changed since a date). agents = RE/MAX consultant profiles. offices = RE/MAX office profiles. inventory = how many listings the site shows for each search (counts by property type).

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

Language of the site pages that are read: labels, property type names, heating and deed words, floor names. Titles and descriptions are written by the sellers, mostly in Turkish; where a seller added an English text it is used for English.

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

Stops after this many rows (all record types together). Free plans are limited to 10 items per run.

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

Buy, rent or both. Also filters the catalog and the inventory counts.

## `propertyGroup` (type: `string`):

Housing (flats, villas, houses), commercial (shops, offices, hotels, factories) or land (plots and fields). Any reads the three groups one after the other.

## `propertyTypes` (type: `array`):

Only these types. Empty means every type of the chosen group. A type that exists in several groups (villa, farmhouse, timeshare, mine) is read in each chosen group that owns it.

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

Provinces to search, by the site path name. Istanbul is split in two (European and Anatolian side); the six Northern Cyprus districts are listed too. Empty means all of Turkey.

## `town` (type: `string`):

One district inside the single province you chose, for example beyoglu or Beşiktaş. The actor writes it the way the site does. Needs exactly one province.

## `neighborhood` (type: `string`):

One neighborhood inside the town, for example "Küçük Piyale Mah." or kucuk-piyale-mah. Needs a town.

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

Keep listings at or above this price, in the currency of the listing (almost always Turkish lira). Listings with a hidden price are left out when a price filter is set. Applied by the actor, not by the site.

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

Keep listings at or below this price (rent listings use the monthly rent).

## `minBedrooms` (type: `integer`):

Keep listings with at least this many bedrooms. The first number of the Turkish room layout counts: 3+1 means 3 bedrooms and 1 living room.

## `maxBedrooms` (type: `integer`):

Keep listings with at most this many bedrooms.

## `minArea` (type: `integer`):

Keep listings with at least this gross area in square metres (land plots use the plot size).

## `maxArea` (type: `integer`):

Keep listings with at most this area in square metres.

## `keywords` (type: `array`):

Keep listings whose title, description or neighborhood contains at least one of these words (accents and capitals are ignored), one per line. Turkish texts need Turkish words, for example deniz manzarali.

## `onlyAvailable` (type: `boolean`):

On: skip listings that the site marks as deposit taken, rented or sold. Off: they are delivered with status set to deposit-taken, rented or sold.

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

On: one extra request per listing for amenities, view, nearby places, the consultant and the office with licence data (listing-detail record). Off: only the search-card data (listing record), much faster, without amenities and office data.

## `includeContactDetails` (type: `boolean`):

Adds the phone numbers, email and photo of the listing consultant, and phone and email of agent and office records. Only business contacts of licensed RE/MAX offices are published on the site. Turn on only if you have a lawful reason to process personal data.

## `includeListings` (type: `boolean`):

In agents, offices and urls mode: after each agent or office record, also deliver that agent or office listings as listing records (same filters, same maximum). Off: only the agent or office record.

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

Used in urls mode. Listing pages (/tr/portfoy/P..., /en/property/P...), search pages (/tr/konut/satilik/istanbul-avrupa/...), consultant pages (/tr/danisman/...) and office pages (/tr/ofis/detay/...). Several kinds can be mixed.

## `propertyCodes` (type: `array`):

Used in urls mode. Listing codes such as P21816843, one per line.

## `updatedSince` (type: `string`):

Catalog mode: only listings whose sitemap date is on or after this day (YYYY-MM-DD). Empty means all, newest first.

## `agentQuery` (type: `string`):

Agents mode: keep only consultants whose page name contains this text (for example yasin or acikgoz). Empty means every consultant.

## `officeQuery` (type: `string`):

Offices mode: keep only offices whose page name contains this text (for example pro or city). Empty means every office.

## `inventoryByProvince` (type: `boolean`):

Inventory mode with no province chosen: one inventory record for each of the 88 provinces instead of one for all of Turkey.

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

Skips records delivered by an earlier run of the same search. Nothing skipped is charged. Search pages are not sorted by date: for monitoring use catalog mode with this switch.

## `trackPriceChanges` (type: `boolean`):

With Only new records on: a listing seen before comes back as a changed-listing record when its price differs from the last delivered price, with the previous price and the change in percent.

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

Optional label to keep several monitors with identical filters apart.

## `resetSeen` (type: `boolean`):

Clears the memory of this search before the run, so everything counts as new.

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

Cap on the number of result pages (36 listings each) read for one search combination, or for one agent or office. The whole site is about 1,040 pages.

## `maxRuntimeSeconds` (type: `integer`):

The run stops cleanly after this many seconds and keeps what it delivered.

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

How many page requests run at the same time.

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

Not needed: the site answers cloud servers without a proxy. If it ever blocks, the actor switches to the Apify datacenter proxy on its own. Choose a proxy here only to force one.

## Actor input object example

```json
{
  "mode": "search",
  "language": "en",
  "maxItems": 10,
  "operation": "sale",
  "propertyGroup": "housing",
  "propertyTypes": [],
  "cities": [
    "istanbul-avrupa"
  ],
  "town": "",
  "neighborhood": "",
  "keywords": [],
  "onlyAvailable": false,
  "includeDetails": true,
  "includeContactDetails": false,
  "includeListings": false,
  "startUrls": [],
  "propertyCodes": [],
  "updatedSince": "",
  "agentQuery": "",
  "officeQuery": "",
  "inventoryByProvince": false,
  "onlyNew": false,
  "trackPriceChanges": false,
  "stateKey": "",
  "resetSeen": false,
  "maxPages": 40,
  "maxRuntimeSeconds": 1500,
  "maxConcurrency": 4,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

Key fields per row

## `fullData` (type: `string`):

Complete dataset with all fields

# 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 = {
    "maxItems": 10,
    "propertyTypes": [],
    "cities": [
        "istanbul-avrupa"
    ],
    "keywords": [],
    "startUrls": [],
    "propertyCodes": [],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("recordsdata/remax-tr-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 = {
    "maxItems": 10,
    "propertyTypes": [],
    "cities": ["istanbul-avrupa"],
    "keywords": [],
    "startUrls": [],
    "propertyCodes": [],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("recordsdata/remax-tr-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 '{
  "maxItems": 10,
  "propertyTypes": [],
  "cities": [
    "istanbul-avrupa"
  ],
  "keywords": [],
  "startUrls": [],
  "propertyCodes": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call recordsdata/remax-tr-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,recordsdata/remax-tr-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/PHQu7cWt9kHP2GaVw/builds/hrpyLD7TTnVXxnMOx/openapi.json
