# RE/MAX Scraper \[Only $2.5/1K💰] | Property Prices | MLS Data (`ahmed_jasarevic/remax-scraper`) Actor

Scrape RE/MAX real estate listings from remax.com: price, address, beds/baths/sqft, MLS#, photos, description and listing agent. For price monitoring, market research and real estate lead generation. $0.0025 per listing.

- **URL**: https://apify.com/ahmed\_jasarevic/remax-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.40 / 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 Scraper — Real Estate Listings Data, Property Prices & Rental Monitoring

Extract **RE/MAX real estate listings data** from remax.com — price, address, beds/baths/sqft, MLS#, photos, full description and the listing agent's name/phone/office — for **property price monitoring**, real estate market research, competitive analysis, and **real estate lead generation**. Works for both **for-sale** and **for-rent** searches, by city or ZIP code, and can optionally visit each listing's detail page for the complete dataset. **$0.0025 per listing result.**

### Main Use Cases

- **Property price monitoring** — track price changes and price drops on RE/MAX listings over time with scheduled runs.
- **Real estate market research** — analyze housing market trends, inventory and pricing by city, state or ZIP code.
- **Building a property database** — structured listing data (price, features, photos, agent, MLS#) for apps, portals or offline analysis.
- **Real estate lead generation** — listing agent name, direct phone and office contact for every property, ready for outreach.
- **Rental market analysis** — scrape for-rent searches to compare asking rents and monitor rental competition.

### How It Works

Give the actor a **RE/MAX search URL** (e.g. `https://www.remax.com/homes-for-sale/ca/los-angeles/city/0644000` or a for-rent search by ZIP) or a single **listing detail URL**. The actor is a **CheerioCrawler (plain HTTP, no browser)** that walks the search pages automatically and reads the structured JSON payload embedded in the page (Next.js RSC flight data) — fast, cheap, with **pagination built in** until your item limit is reached. Enable `includeDetails` to visit each listing's detail page for the full description, all 40+ photos, feature lists, tax info and compliance data.

### Build Business & Market Databases Without an Official API

remax.com has **no public API and no bulk export** for listing data — the site's IDX feeds are licensed to display MLS data under agreement. This actor reads the **public search and detail pages** and returns the same data as structured rows, so you can build your own property dataset without an API key or manual copying.

Input is flexible:

| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
| `startUrls` | array | **Yes** | `["https://www.remax.com/homes-for-sale/ca/los-angeles/city/0644000"]` | RE/MAX search or listing detail URLs to scrape |
| `maxItems` | integer | No | `100` | Max listings to save (1–10000) |
| `includeDetails` | boolean | No | `false` | Visit each listing's detail page for description, all photos, features, tax info. Requires proxy to pass AWS WAF — Apify RESIDENTIAL is enabled automatically if none is configured. |
| `proxy` | object | No | `{"useApifyProxy": false}` | Standard Apify proxy picker. Enable Residential for very large runs. |

#### Example input

```json
{
  "startUrls": [{ "url": "https://www.remax.com/homes-for-sale/ca/los-angeles/city/0644000" }],
  "maxItems": 50,
  "includeDetails": true,
  "proxy": { "useApifyProxy": false }
}
```

### Understand the Output: Listing Price, Address, Agent & Property Details

Each dataset item is one listing. In list mode (default) you get the search-result fields; in detail mode you get everything below:

```json
{
  "url": "https://www.remax.com/ca/los-angeles/home-details/13360-chalon-rd-los-angeles-ca-90049/14584300681925420917/M00000071/25602411",
  "listingId": "25602411",
  "address": "13360 CHALON RD, LOS ANGELES, CA 90049",
  "price": 6850000,
  "beds": 5,
  "baths": 5,
  "sqft": 4603,
  "propertyType": "Residential",
  "isRental": false,
  "agentName": "Susan Stark",
  "agentPhone": "310-345-7450",
  "officeName": "Compass",
  "officePhone": "310-820-0195",
  "description": "Stunning modern estate in the hills...",
  "images": ["https://d2qw0c8f14nt8a.cloudfront.net/044c17e56af98ec8452467c750a562dff0cc717b-1-medium.jpeg"],
  "location": {
    "lat": 34.085,
    "lon": -118.48,
    "city": "LOS ANGELES",
    "state": "CA",
    "postalCode": "90049"
  }
}
```

#### Data fields

| Field | Description |
|---|---|
| `url` | Canonical listing URL on remax.com |
| `listingId` | MLS listing number |
| `uPI` / `oUID` | RE/MAX internal listing / office identifiers |
| `address` | Full street address |
| `price` | Numeric price (USD) |
| `beds` / `baths` / `sqft` | Bedrooms, bathrooms, square footage |
| `propertyType` | e.g. Residential, Condo, Single Family |
| `isRental` | Whether the listing is a rental |
| `agentName` / `agentPhone` | Listing agent name and phone |
| `officeName` / `officePhone` / `officeEmail` | Listing office contact |
| `courtesyOfStatement` | Brokerage attribution text |
| `description` | Full public remarks (detail mode) |
| `images` | Array of photo URLs (detail mode: all photos) |
| `location` | lat/lon, city, state, postal code |
| `featuresMain` / `primaryFeatures` | Feature lists (detail mode) |
| `compliance` | MLS/IDX disclosure info (detail mode) |
| `taxAnnualAmount` | Annual tax amount (detail mode) |

Download the dataset as JSON, CSV, HTML, or Excel, or pull it via the Apify API.

### Integrations & Automation — Schedule Property Price Monitoring

Run on the Apify platform with **API access, scheduling, webhooks, Zapier/Make/n8n integrations**, and monitoring. For **price monitoring**, schedule a weekly run per market (e.g. every Monday 07:00 UTC) and compare `price` over time to catch price drops the moment they happen. For **lead generation**, hook the dataset to a webhook or CRM to route new listings to your outreach flow.

### Related Actors

- [RE/MAX Real Estate Listings Scraper (muhammadafzal)](https://apify.com/muhammadafzal/remax-real-estate-listings-scraper) — same target site, MCP-enabled, pricier per listing
- [RE/MAX Real Estate Scraper (parseforge)](https://apify.com/parseforge/remax-scraper) — RE/MAX search pages with price/bed/bath filters
- [RE/MAX Canada Scraper (vladignatyev)](https://apify.com/vladignatyev/remax-ca-scraper) — remax.ca (Canada) listings, complementary market
- [REMAX Real Estate Agents Scraper - Cheap (scrapestorm)](https://apify.com/scrapestorm/remax-real-estate-agents-scraper---cheap) — direct RE/MAX competitor on the Store
- [Zillow Scraper](https://apify.com/compass/zillow-scraper) — adjacent US real estate portal for cross-market comparison

### FAQ

#### Why use this actor instead of an official MLS / real estate API?

The official MLS data feeds (e.g. via Rentcast, RealEstateAPI) are **paid, licensed and require contracts**; remax.com itself exposes no public API. This actor reads the public RE/MAX pages at **$0.0025 per listing** (plus optional $0.001 per detail page) — pay only for what you collect, no subscription.

#### What are alternatives to this actor / RE/MAX data?

For US listings: Zillow/Redfin/Realtor.com scrapers on the Apify Store. For Canada: remax.ca scrapers. For commercial real estate: Crexi scrapers. For the full picture, combine RE/MAX listings with one of the portal scrapers above.

#### Is scraping remax.com legal?

Scraping publicly available real-estate listing data is generally permitted, but you are responsible for complying with remax.com's Terms of Service, the IDX/MLS data licensing on the site, and applicable laws. This actor never logs in and never bypasses access challenges — it reads the public pages.

#### How do I avoid blocks on large runs?

remax.com sits behind AWS WAF. For very large runs enable **Apify Proxy → Residential** in the input's proxy picker (the actor auto-enables it when `includeDetails` is on and no proxy is configured).

#### Can I scrape rentals with this actor?

Yes — use `https://www.remax.com/homes-for-rent/...` URLs; the actor detects the transaction type automatically (`isRental: true`).

#### Known limitations

- City searches require the RE/MAX place ID — the easiest way to get one is to run the search on remax.com and copy the URL.
- Some listings omit the agent's direct phone in the detail payload (`agentPhone` may be `null` in detail mode even when present in list mode).
- If RE/MAX changes their page structure, the parser may need an update.

### For AI Agents & LLM Apps

**Purpose:** Returns RE/MAX real estate listings as one JSON object per property (list mode: search-result fields; detail mode: full description, photos, features, tax info).

**Minimal working input:**

```json
{ "startUrls": [{ "url": "https://www.remax.com/homes-for-sale/ca/los-angeles/city/0644000" }], "maxItems": 10 }
```

**Variant inputs — rentals:**

```json
{ "startUrls": [{ "url": "https://www.remax.com/homes-for-rent/md/baltimore/zip/21202" }], "maxItems": 10 }
```

**Output fields (per listing):** `url`, `listingId`, `uPI`, `oUID`, `address`, `price`, `beds`, `baths`, `sqft`, `propertyType`, `isRental`, `agentName`, `agentPhone`, `officeName`, `officePhone`, `officeEmail`, `courtesyOfStatement`, `description`, `images`, `location` (lat/lon, city, state, postalCode), `featuresMain`, `primaryFeatures`, `compliance`, `taxAnnualAmount`.

**Behaviors an agent should know:**

- `startUrls` controls everything: search pages paginate automatically until `maxItems`; a single detail-page URL returns that one listing.
- `includeDetails: true` adds a second request per listing (billed at +$0.001 per detail page) and auto-enables Residential proxy if none is set.
- `agentPhone` can be `null` in detail mode for some listings.
- Billing: pay-per-result — **$0.0025 per listing** (+$0.001 per detail page), plus a tiny per-run actor start fee.

### Legal & Compliance Disclaimer

This actor is an independent tool and is **not affiliated with, endorsed by, or sponsored by RE/MAX, LLC**. It reads only publicly available remax.com pages — no login, no access-challenge bypass. Listing data on remax.com is subject to MLS/IDX licensing terms; users are responsible for complying with remax.com's Terms of Service and applicable law when using the data. Listing agent contact data should not be used for unsolicited commercial outreach in violation of applicable law.

### SEO Keywords

remax scraper, real estate listings data, remax.com data extraction, homes for sale data, rental listings scraper, MLS data listing number, property price monitoring, price drop tracking, real estate market research, housing market analysis, property database, real estate lead generation, listing agent contact data, real estate comps data, remax api alternative, property details photos, for rent listings, real estate investment analysis, zip code real estate data, json csv excel export

# Actor input Schema

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

RE/MAX search or listing URLs to scrape. Use any remax.com search page (e.g. https://www.remax.com/homes-for-sale/ca/los-angeles/city/0644000 or https://www.remax.com/homes-for-rent/md/baltimore/zip/21202) or a single listing detail page.

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

Maximum number of listings to save to the dataset.

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

Visit each listing's detail page to extract the full description, all photos, features and tax info. Requires a proxy to pass AWS WAF — Apify RESIDENTIAL is enabled automatically if none is configured.

## `proxy` (type: `object`):

Select proxies to be used by your crawler.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.remax.com/homes-for-sale/ca/los-angeles/city/0644000"
    }
  ],
  "maxItems": 100,
  "includeDetails": false,
  "proxy": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.remax.com/homes-for-sale/ca/los-angeles/city/0644000"
        }
    ],
    "proxy": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/remax-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": [{ "url": "https://www.remax.com/homes-for-sale/ca/los-angeles/city/0644000" }],
    "proxy": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/remax-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": [
    {
      "url": "https://www.remax.com/homes-for-sale/ca/los-angeles/city/0644000"
    }
  ],
  "proxy": {
    "useApifyProxy": false
  }
}' |
apify call ahmed_jasarevic/remax-scraper --silent --output-dataset

```

## MCP server setup

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