# Remax Property Search Scraper (`stealth_mode/remax-property-search-scraper`) Actor

Scrape property listings from RE/MAX search results with comprehensive data. Collect 31+ fields including price, location, agent details, property specs, and images — perfect for real estate analysis, market research, and property aggregators.

- **URL**: https://apify.com/stealth_mode/remax-property-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, Real estate
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

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

## RE/MAX Property Search Scraper: Extract Real Estate Listings at Scale

***

### What Is RE/MAX?

RE/MAX is a global real estate network operating in over 110 countries, hosting millions of property listings for sale and rent. Their platform aggregates properties from local agents and offices, making it a valuable source for market analysis, competitive intelligence, and property data. Manually extracting listing data from RE/MAX search results is labor-intensive; the **RE/MAX Property Search Scraper** automates this workflow, delivering structured property records in seconds.

***

### Overview

The **RE/MAX Property Search Scraper** extracts property listings from RE/MAX search result pages, converting unstructured property cards into clean, structured data. It is ideal for:

- **Real estate analysts** tracking property trends and market conditions
- **Property aggregator platforms** building comprehensive listing databases
- **Investment researchers** analyzing market data across regions
- **Real estate professionals** monitoring competitor listings and pricing
- **Data scientists** building models for property valuation or market forecasting

The scraper handles pagination automatically, collects up to 200+ items per URL, and supports bulk runs across multiple geographic markets via configurable search parameters.

***

### Input Format

The scraper accepts a JSON configuration for search queries and collection limits:

```json
{
  "ignore_url_failures": true,
  "max_items_per_url": 200,
  "urls": [
    "https://www.remax.com/gbr/en/real-estate/124299?searchQuery={...}"
  ]
}
```

#### Input Parameters Explained

| Parameter | Description | Example |
|---|---|---|
| `urls` | RE/MAX search result page URLs with embedded filters and location parameters | Search URLs for properties in specific cities or regions |
| `max_items_per_url` | Maximum number of property listings to extract per URL (1–200+) | `200` |
| `ignore_url_failures` | If `true`, continues scraping if a URL fails; if `false`, stops the entire run | `true` |

#### URL Structure

RE/MAX search URLs include a `searchQuery` parameter containing:

- **place:** Geographic target (city, placeId, placeType, state/province)
- **filters:** Transaction type (Sale, Rent), price ranges, property types
- **sortKey & sortDirection:** Result ordering
- **mapState:** Map display preference
- **lat, lng, zoom:** Map coordinates
- **pageNumber:** Results page to scrape

> **Tip:** Build URLs using RE/MAX's search interface, then paste into the scraper. The embedded query automatically handles pagination.

***

### Output Format

**Sample output**

```json
{
  "banners": [],
  "baths": "1",
  "beds": "2",
  "courtesy_of_statement": "",
  "list_agent_full_name": "",
  "list_agent_preferred_phone": null,
  "list_office_email": null,
  "list_office_name": "$undefined",
  "list_office_phone": null,
  "listing_images": [
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/ac8095f7b9d8ae1744b59dd0afd4207786cdc975-1-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image ac8095f7b9d8ae1744b59dd0afd4207786cdc975"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/2d86f83fe7baf92b36b5f965c7ca2c08e9ba738b-2-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image 2d86f83fe7baf92b36b5f965c7ca2c08e9ba738b"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/c9432212bf68ccc21fdf95b1d835d4b11ab501d1-3-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image c9432212bf68ccc21fdf95b1d835d4b11ab501d1"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/d377ab0244946889bd0e91b058d0089799b9c3f5-4-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image d377ab0244946889bd0e91b058d0089799b9c3f5"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/6d2f6635b751a87fbdbdc9b75cf5490c99aae58a-5-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image 6d2f6635b751a87fbdbdc9b75cf5490c99aae58a"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/de065803d1129bfb9094d33bda3dda8d318cc6a8-6-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image de065803d1129bfb9094d33bda3dda8d318cc6a8"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/df51ac381ef32a04d86c284ba17181efe04076ec-7-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image df51ac381ef32a04d86c284ba17181efe04076ec"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/45ff95f72f51fb487e644085f3212be792bfde6f-8-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image 45ff95f72f51fb487e644085f3212be792bfde6f"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/49755096fb4f3545a2841a4e15739b6c1aa3240f-9-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image 49755096fb4f3545a2841a4e15739b6c1aa3240f"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/37895ee1d3d1ccf402edf3c1f80cb9a4434726a7-10-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image 37895ee1d3d1ccf402edf3c1f80cb9a4434726a7"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/1a6770dc6b655cdb532bdadc18eb8d81d8e41be5-11-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image 1a6770dc6b655cdb532bdadc18eb8d81d8e41be5"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/34b641a7935edb84f737b1ee9f1b814a04467541-12-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image 34b641a7935edb84f737b1ee9f1b814a04467541"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/fe6e142d68e77d465cb3e1b361b65ad9ef2ea024-13-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image fe6e142d68e77d465cb3e1b361b65ad9ef2ea024"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/11967a71d04fa637542258c9af70369801190501-14-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image 11967a71d04fa637542258c9af70369801190501"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/422adccd6b09f8830711e293a5c25b153c9466df-15-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image 422adccd6b09f8830711e293a5c25b153c9466df"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/b18b92664d8dee430bc2e668f5d22dca0d2f8dda-16-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image b18b92664d8dee430bc2e668f5d22dca0d2f8dda"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/9d343bd261aa8c22e06c8970bf64292af5ec8da9-17-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image 9d343bd261aa8c22e06c8970bf64292af5ec8da9"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/fb73e5f6a4d4afb70ede08caf242731fd9bc5854-18-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image fb73e5f6a4d4afb70ede08caf242731fd9bc5854"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/ce8ccec7e0c22b5f4dbc44779480af1e00b087d4-19-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image ce8ccec7e0c22b5f4dbc44779480af1e00b087d4"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/5a032262b5415b8721da1254f3d6c3f36cbe159e-20-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image 5a032262b5415b8721da1254f3d6c3f36cbe159e"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/252b95971cbfc0b3a897c2e2a240d4facc3441ea-21-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image 252b95971cbfc0b3a897c2e2a240d4facc3441ea"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/29e515a223a60be2692df99ad69ee789e6ac1344-22-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image 29e515a223a60be2692df99ad69ee789e6ac1344"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/7d31dffd2f97b4283c442d04cd5a64a2d2bbc660-23-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image 7d31dffd2f97b4283c442d04cd5a64a2d2bbc660"
    },
    {
      "src": "https://images.remax.com/webapi-properties-gryphtech-global/344793f855c117358d6de526044ba9e563cb4085-24-large.jpeg",
      "alt": "10B RUE DES ARMOISIÈRES, METZ, GRAND EST 57000 - Image 344793f855c117358d6de526044ba9e563cb4085"
    }
  ],
  "listing_address_full": "ADDRESS PRIVATE",
  "listing_address1": "10B RUE DES ARMOISIÈRES",
  "listing_address2": "METZ, GRAND EST 57000",
  "unique_listing_id": "M73000104-74-750441003-70",
  "listing_url": "/fra/en/residential/property/metz/address-private/14766563827808779264?RID=m73000104-74-750441003-70",
  "open_houses": "$undefined",
  "price_type": "",
  "property_type": "Condo/Townhome",
  "ui_transaction_type": "Sale",
  "display_logo_detail": false,
  "display_logo_alt": "IDX Logo",
  "is_rental": false,
  "list_price": "€195,000",
  "list_price_raw": 195000,
  "listing_size": {
    "value": "N/A",
    "text": "Sq Ft"
  },
  "location": {
    "city": "METZ",
    "country": "FRA",
    "listing_address_full": "ADDRESS PRIVATE",
    "listing_address1": "10B RUE DES ARMOISIÈRES",
    "listing_address2": "METZ, GRAND EST 57000",
    "postal_code": "57000",
    "state": "GRAND EST",
    "timezone": ""
  },
  "o_uid": null,
  "listing_id": "74-750441003-70",
  "u_pi": null,
  "geo": [
    {
      "raw_components": {
        "state_or_province": "MOSELLE",
        "formatted_street": "10B RUE DES ARMOISIERES",
        "country": "FRA",
        "postal_code": "57000",
        "city": "METZ",
        "u_p_i": "14766563827808779264"
      },
      "mls_display_name": "10B RUE DES ARMOISIERES, METZ, MOSELLE 57000",
      "provider": "aWS",
      "parent_u_p_i_seed": "aQAAAGEAsfBlVlie30tiujUJH3qYHgHldUiRde8jqC4q2_dA08L4vVvdXLQ4ZW_bapnAYgz3lwNMsk0Cthmno7zSMFqqjYsCf9qWP3bKltQYMutrFsaOPEagAHFjlJPDrs23GQ3SrraeyPRmq7wLukR1f2bOoSdIt1UWRjqv752K6TVPhE6o",
      "location_shape": {
        "coordinates": [
          6.18637,
          49.07796
        ],
        "type": "point"
      },
      "address_components": {
        "last_line": "Metz, Grand Est 57000",
        "number": "10B",
        "state_or_province": "Grand Est",
        "formatted_street": "10B Rue des Armoisières",
        "country": "FRA",
        "postal_code": "57000",
        "street": "Rue des Armoisières",
        "city": "Metz",
        "state": null
      },
      "u_p_i_seed": "aQAAAGEAsfBlVlie30tiujUJH3qYHgHldUiRde8jqC4q2_dA08L4vVvdXLQ4ZW_bapnAYgz3lwNMsk0Cthmno7zSMFqqjYsCf9qWP3bKltQYMutrFsaOPEagAHFjlJPDrs23GQ3SrraeyPRmq7wLukR1f2bOoSdIt1UWRjqv752K6TVPhE6o",
      "location": {
        "lon": 6.18637,
        "lat": 49.07796
      }
    }
  ],
  "autocomplete": {
    "country": {
      "admin_level": 2,
      "display_name": "France",
      "display_name_english": "France",
      "id": "4404325"
    },
    "global_places": {
      "admin_level": 3,
      "display_name": "France métropolitaine, France",
      "display_name_english": "Metropolitan France, France",
      "id": "2807833"
    },
    "zipcode": null,
    "places": null,
    "neighborhoods": null,
    "schools": null,
    "county": null,
    "school_districts": null,
    "state": null
  },
  "global_listing_url": "/fra/en/residential/property/metz/address-private/14766563827808779264?RID=M73000104-74-750441003-70",
  "from_url": "https://www.remax.com/fra/en/real-estate/4404325?searchQuery={%22place%22:{%22city%22:%22_%22,%22placeId%22:%224404325%22,%22placeType%22:%22places%22,%22stateOrProvince%22:%22_%22},%22filters%22:{%22city%22:%22_%22,%22stateOrProvince%22:%22_%22,%22uiTransactionType%22:%22Sale%22},%22sortKey%22:%221%22,%22sortDirection%22:%221%22,%22hasPolygon%22:false,%22mapState%22:%22hidden-all%22,%22lat%22:46.227638,%22lng%22:2.213749,%22zoom%22:6,%22pageNumber%22:325}"
}
```

Each property listing returns a rich record with 31 fields covering pricing, location, property details, and agent information:

#### Property Identification

| Field | Description |
|---|---|
| `Unique Listing ID` | RE/MAX's unique identifier for the property |
| `Listing ID` | Alternative internal ID reference |
| `Listing URL` | Direct link to the property detail page |
| `Global Listing URL` | International URL version of the property |
| `U PI` | Universal Property Identifier (if available) |
| `O UID` | Office/Office User ID |

#### Property Address & Location

| Field | Description |
|---|---|
| `Listing Address Full` | Complete street address with city, state, ZIP |
| `Listing Address 1` | Primary address line |
| `Listing Address 2` | Secondary address line (unit, suite, etc.) |
| `Location` | Geocoded location data (latitude, longitude) |
| `Geo` | Geographic metadata and boundaries |
| `Autocomplete` | Search autocomplete formatting |

#### Physical Specifications

| Field | Description |
|---|---|
| `Beds` | Number of bedrooms |
| `Baths` | Number of bathrooms |
| `Listing Size` | Property size in square feet or meters |
| `Property Type` | Category (e.g., house, condo, townhouse, land) |
| `UI Transaction Type` | Transaction type (Sale, Rent, Lease) |
| `Is Rental` | Boolean flag indicating if property is for rent |

#### Pricing & Financial

| Field | Description |
|---|---|
| `List Price` | Asking price formatted for display |
| `List Price Raw` | Numeric price value for sorting/filtering |
| `Price Type` | Price format (e.g., per month for rentals) |

#### Listing Details & Features

| Field | Description |
|---|---|
| `Listing Images` | Array of property photos and URLs |
| `Banners` | Promotional banners or special labels (e.g., "New Listing", "Reduced Price") |
| `Open Houses` | Scheduled open house dates and times |
| `Courtesy Of Statement` | Legal courtesy/attribution statement |

#### Agent & Office Information

| Field | Description |
|---|---|
| `List Agent Full Name` | Full name of the listing agent |
| `List Agent Preferred Phone` | Agent's primary contact phone number |
| `List Office Name` | Name of the office managing the listing |
| `List Office Email` | Office email address |
| `List Office Phone` | Office main phone number |
| `Display Logo Detail` | Office logo URL for detail views |
| `Display Logo Alt` | Alternate logo or text label |

***

### How to Use

1. **Build a search URL** — Visit RE/MAX, filter by location, transaction type, and property criteria. Copy the full search results URL.
2. **Configure the JSON** — Paste the URL into the `urls` array. Set `max_items_per_url` (recommended: 100–200).
3. **Enable error handling** — Set `ignore_url_failures: true` for bulk runs across multiple regions.
4. **Run the scraper** — Start the actor and monitor progress in real-time.
5. **Export data** — Download as JSON, CSV, or Excel for analysis, imports, or integration.

**Best practices:**

- Test with a single URL first to validate the search query.
- Use specific location filters to avoid overly broad results.
- Run high-volume scrapes during off-peak hours to minimize server load.
- Update URLs periodically as market listings change.

**Handling common issues:**

- If no results appear, verify the URL is a search results page (not a detail page).
- Ensure the `searchQuery` parameter is URL-encoded correctly.
- Use `ignore_url_failures: true` to skip URLs that return errors.

***

### Benefits & Real-World Applications

**Time savings:** Collect hundreds of properties in minutes instead of hours of manual browsing.

**Market intelligence:** Track pricing trends, inventory levels, and agent performance across regions and property types.

**Property aggregation:** Feed scraped data into custom platforms, MLS systems, or real estate portals without manual data entry.

**Investment analysis:** Build datasets for comparative market analysis (CMA), investment property screening, and valuation modeling.

**Competitive monitoring:** Monitor competitor listings, pricing strategies, and market share in your target regions.

The output integrates seamlessly into spreadsheets, databases, and analytics tools, enabling data-driven decision-making for brokers, investors, and researchers.

***

### Conclusion

The **RE/MAX Property Search Scraper** transforms RE/MAX search results into actionable real estate data. With 31 fields covering pricing, location, property specs, and agent details, it is a powerful tool for market research, property aggregation, and investment analysis. Start scraping today and unlock insights from one of the world's largest real estate networks.

# Actor input Schema

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

Add the URLs of the property list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.remax.com/gbr/en/real-estate/124299?searchQuery={%22place%22:{%22city%22:%22_%22,%22placeId%22:%22124299%22,%22placeType%22:%22places%22,%22stateOrProvince%22:%22_%22},%22filters%22:{%22city%22:%22_%22,%22stateOrProvince%22:%22_%22,%22uiTransactionType%22:%22Sale%22},%22sortKey%22:%221%22,%22sortDirection%22:%221%22,%22hasPolygon%22:false,%22mapState%22:%22hidden-all%22,%22lat%22:55.378051,%22lng%22:-3.435973,%22zoom%22:6,%22pageNumber%22:2}"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# Actor output Schema

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

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.remax.com/gbr/en/real-estate/124299?searchQuery={%22place%22:{%22city%22:%22_%22,%22placeId%22:%22124299%22,%22placeType%22:%22places%22,%22stateOrProvince%22:%22_%22},%22filters%22:{%22city%22:%22_%22,%22stateOrProvince%22:%22_%22,%22uiTransactionType%22:%22Sale%22},%22sortKey%22:%221%22,%22sortDirection%22:%221%22,%22hasPolygon%22:false,%22mapState%22:%22hidden-all%22,%22lat%22:55.378051,%22lng%22:-3.435973,%22zoom%22:6,%22pageNumber%22:2}"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/remax-property-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://www.remax.com/gbr/en/real-estate/124299?searchQuery={%22place%22:{%22city%22:%22_%22,%22placeId%22:%22124299%22,%22placeType%22:%22places%22,%22stateOrProvince%22:%22_%22},%22filters%22:{%22city%22:%22_%22,%22stateOrProvince%22:%22_%22,%22uiTransactionType%22:%22Sale%22},%22sortKey%22:%221%22,%22sortDirection%22:%221%22,%22hasPolygon%22:false,%22mapState%22:%22hidden-all%22,%22lat%22:55.378051,%22lng%22:-3.435973,%22zoom%22:6,%22pageNumber%22:2}"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/remax-property-search-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 '{
  "urls": [
    "https://www.remax.com/gbr/en/real-estate/124299?searchQuery={%22place%22:{%22city%22:%22_%22,%22placeId%22:%22124299%22,%22placeType%22:%22places%22,%22stateOrProvince%22:%22_%22},%22filters%22:{%22city%22:%22_%22,%22stateOrProvince%22:%22_%22,%22uiTransactionType%22:%22Sale%22},%22sortKey%22:%221%22,%22sortDirection%22:%221%22,%22hasPolygon%22:false,%22mapState%22:%22hidden-all%22,%22lat%22:55.378051,%22lng%22:-3.435973,%22zoom%22:6,%22pageNumber%22:2}"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/remax-property-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,stealth_mode/remax-property-search-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/iQ4i7ZNRxurfihaSY/builds/0rshiWpeZS5Fb1vq4/openapi.json
