# Realtor.com Scraper - Properties, Prices & Agent Leads (`scrapesage/realtor-com-scraper`) Actor

Scrape Realtor.com for-sale, for-rent & sold listings — prices, beds/baths, sqft, photos, MLS, geo, schools, price & tax history — plus deduped real-estate agent & office leads with email, phone & website. Keyless, no browser. Filter by location, price & type; monitor new listings & price drops.

- **URL**: https://apify.com/scrapesage/realtor-com-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** Real estate, Lead generation, Agents
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.10 / 1,000 property 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/actors/running/actors-in-store.md#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

## Realtor.com Scraper — Properties, Prices & Agent Leads

> **Disclaimer:** This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Move, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "Realtor.com" is referenced only to describe the publicly available website this Actor collects data from.

Extract **complete Realtor.com property data** — for-sale, for-rent and recently-sold listings with **real prices, beds/baths, square footage, lot size, MLS number, full address with geo, photos, schools, and complete price & tax history**. Then turn every listing agent and office into a **ready-to-contact B2B lead** with **direct email, phone, personal website and brokerage** — deduped and lead-scored.

No login, no cookies, no browser — fast JSON extraction straight from Realtor.com's own property API, with 98%+ reliability.

### Why this Realtor.com scraper?

Most Realtor.com scrapers either return thin card data or charge a per-run start fee. This actor pulls from Realtor.com's internal GraphQL API and ships the **richest dataset in the category — with no start fee**:

| Data | Typical scrapers | This actor |
|---|---|---|
| List price, beds, baths, sqft, lot size | ✅ | ✅ |
| For-sale **and** for-rent **and** sold (comps) | partial | ✅ all three |
| MLS number, listing ID, source | ❌ | ✅ |
| Full address + lat/long + county + neighborhood | partial | ✅ |
| Listing **agent email + phone + website** | ❌ | ✅ |
| Deduped **agent / office leads** with lead score | ❌ | ✅ |
| Assigned **schools with ratings** | ❌ | ✅ opt-in |
| Full **listing & price history** | ❌ | ✅ opt-in |
| Multi-year **tax & assessment history** | ❌ | ✅ opt-in |
| Complete feature list (interior/exterior/utilities) | ❌ | ✅ opt-in |
| Only-new / price-drop **monitor mode** | ❌ | ✅ |
| Per-run start fee | 💸 often | ✅ none |

### Use cases

- **Real-estate agent lead generation** — every active listing carries its listing agent's **name, email, phone, website and brokerage**. Deduped and scored, that's a fresh, targeted agent database for CRMs, recruiting brokerages, title/escrow, mortgage, transaction-coordination, photography, staging and proptech vendors.
- **Investor deal-flow & comps** — pull for-sale inventory and recently-sold comparables (with sold dates and full price history) for any city, ZIP or state; filter by price, beds, type and size.
- **Market & pricing intelligence** — track list prices, price reductions, days-on-market signals (`isNewListing`, `isPriceReduced`, `isPending`) and inventory by area.
- **Rental market research** — search for-rent inventory with monthly rents, beds/baths and amenities by neighborhood.
- **Price-drop & new-listing alerts** — schedule the actor with **monitor mode** to emit only new listings, price drops/rises and status changes.

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) — the free plan is enough to try this actor.
2. Open the **Realtor.com Scraper**, choose a **listing type** (for sale / for rent / sold), enter one or more **locations** (or paste Realtor.com search URLs), and click **Start**.
3. Watch results stream into the dataset table.
4. **Export** as JSON, CSV, Excel, XML or RSS — or pull results programmatically via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "outputType": "search",
    "searchType": "for_sale",
    "location": ["Austin, TX", "78704"],
    "propertyTypes": ["house", "condo"],
    "priceMin": 300000,
    "priceMax": 900000,
    "bedsMin": 3,
    "sortBy": "newest",
    "includeAgentLeads": true,
    "maxResults": 200
}
```

- **outputType** — `search` (property listings), `agentLeads` (deduped agent/office contacts), or `propertyDetail` (full records by `property_id`).
- **searchType** — `for_sale`, `for_rent`, or `sold` (recently sold comps).
- **location** — one or more of `City, ST` (`Austin, TX`), a 5-digit ZIP (`78704`), a county, or a full state name (`Vermont`). Each is searched independently.
- **searchUrls** — paste Realtor.com search pages directly: `realestateandhomes-search/...` (for sale), `apartments/...` (rent), `soldhomeprices/...` (sold). The listing type is taken from the URL.
- **propertyTypes** — `house` / `single_family`, `condo`, `townhome`, `multi_family`, `duplex`, `mobile`, `land`, `farm`, `coop`.
- **priceMin / priceMax / bedsMin / bedsMax / bathsMin / sqftMin / sqftMax** — filters (price is monthly rent for rentals).
- **sortBy** — `relevant`, `newest`, `price_low`, `price_high`, `sqft`, `lot_size`, `sold_date`.
- **includePropertyDetails** *(default false)* — also fetch each property's full record: complete feature list, assigned schools with ratings, full listing & price history, multi-year tax history and the photo gallery (billed as a property detail).
- **includeAgentLeads** *(default false)* — also emit one deduped agent/office lead per listing agent.
- **propertyIds** — numeric `property_id` values for `propertyDetail` mode.
- **monitorMode / monitorKey** — only-new / changed output (see below).

### Output

One record per property (`type: "property"`), plus optional `propertyDetail` and `agentLead` records:

```json
{
    "type": "property",
    "propertyId": "7291872309",
    "listingId": "2997460536",
    "status": "for_sale",
    "listingType": "for_sale",
    "url": "https://www.realtor.com/realestateandhomes-detail/11910-Sunhillow-Bnd_Austin_TX_78758_M72918-72309",
    "price": 599900,
    "priceText": "$599,900",
    "beds": 6,
    "baths": 4,
    "sqft": 1936,
    "lotSqft": 7187,
    "propertyType": "multi_family",
    "yearBuilt": 1983,
    "line": "11910 Sunhillow Bnd",
    "city": "Austin",
    "state": "TX",
    "postalCode": "78758",
    "county": "Travis",
    "latitude": 30.398839,
    "longitude": -97.711,
    "listDate": "2026-06-12T03:35:54.000Z",
    "isNewListing": true,
    "mlsName": "AUTX",
    "mlsNumber": "4342289",
    "agentName": "Deep Parikh",
    "agentPhone": "(512) 659-4726",
    "officeName": "RealTech Realty, LLC",
    "photos": ["https://ap.rdcpix.com/...jpg"],
    "scrapedAt": "2026-06-23T17:12:35.503Z"
}
```

Agent lead record (`type: "agentLead"`):

```json
{
    "type": "agentLead",
    "agentId": "3147563",
    "name": "Deep Parikh",
    "email": "deep@real-tech.com",
    "phone": "(512) 659-4726",
    "website": "https://real-tech.com/",
    "officeName": "RealTech Realty, LLC",
    "brokerName": "Real Broker, LLC",
    "sourceCity": "Austin",
    "sourceState": "TX",
    "listingsInRun": 3,
    "sampleListingUrl": "https://www.realtor.com/realestateandhomes-detail/...",
    "sampleListingPrice": 599900,
    "leadScore": 78,
    "scrapedAt": "2026-06-23T17:12:35.503Z"
}
```

`propertyDetail` records add `features` (complete interior/exterior/utility list), `schools` (name, rating, distance), `priceHistory` (listed/sold/price-change events) and `taxHistory` (per-year tax + assessed value).

### Monitor mode — only new & changed

Turn on **monitorMode** and the actor remembers what it emitted in previous runs (in a named key-value store) and outputs **only**:

- **new** listings (or new agent leads),
- **price\_drop** / **price\_rise**,
- **status\_change** (e.g. for-sale → pending).

Each record carries a `monitorReason`. This is built into the actor and works **independently of [Apify Schedules](https://docs.apify.com/platform/schedules)** — schedule the run as often as you like and only get the deltas. Use a distinct `monitorKey` per saved search so separate watch lists don't share state.

### How much does it cost to scrape Realtor.com?

This Actor uses Apify's **pay-per-event** pricing: you are charged only for the results it delivers, with no monthly rental and no start fee. The events it can charge are:

- **Property listing** - One listing (sale/rent/sold): price, beds/baths, sqft, type, full address+geo, MLS#, status, photos, listing agent/office contact, URL.
- **Property detail** - Full record: feature list, schools w/ ratings, full listing & price history, multi-year tax history, photo gallery.
- **Agent / office lead** - Deduped agent/office lead: name, email, phone, website, brokerage, listings count, sample listing, lead score.

The current price of each event is shown on the **Pricing** tab of this page. Set a maximum total charge on the run if you want a hard cap on spend, and use the input limits to control how much the Actor fetches.

### Automate & schedule

Run this actor on autopilot and pull results into your own stack:

- **[Apify API](https://docs.apify.com/api/v2)** — start runs, fetch datasets, and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** — official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** — run it hourly/daily to monitor new listings and price drops in a city, ZIP or for a saved search.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.

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

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/realtor-com-scraper').call({
    outputType: 'search',
    searchType: 'for_sale',
    location: ['Austin, TX'],
    sortBy: 'newest',
    includeAgentLeads: true,
    maxResults: 200,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} properties & agent leads`);
```

### Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** — multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — push new agent leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a monitored search finds new listings or price drops.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** — auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** — pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** — trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. You can call this actor from Claude, ChatGPT, or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** — ask your assistant to "find new 3-bed homes under $700k in Austin and list the agents" and let it run this scraper for you.

### Agent-ready: autonomous payments (x402 & Skyfire)

This actor is **agent-ready** — AI agents can discover it, run it, and **pay for it autonomously**, with no Apify account and no human in the loop. It uses [pay-per-event](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)** — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) — no account, no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/skyfire)** — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

### More scrapers from scrapesage

Build a complete **real-estate + agent lead-gen stack**:

- **[Redfin Scraper](https://apify.com/scrapesage/redfin-scraper)** — US for-sale & sold listings with prices and agent data.
- **[Realtor.ca Scraper](https://apify.com/scrapesage/realtor-ca-scraper)** — Canadian listings and agent/brokerage leads.
- **[Rent.com Scraper](https://apify.com/scrapesage/rent-com-scraper)** — US rental listings and property-management contacts.
- **[Rightmove Scraper](https://apify.com/scrapesage/rightmove-scraper)** — UK property listings and agents.
- **[Crexi Scraper](https://apify.com/scrapesage/crexi-scraper)** — US commercial real estate and broker leads.
- **[FastExpert Scraper](https://apify.com/scrapesage/fastexpert-scraper)** — top real-estate agent profiles, reviews and leads.
- **[Property Finder Scraper](https://apify.com/scrapesage/property-finder-scraper)** — UAE/GCC property listings and agent leads.
- **[US Property Records Scraper](https://apify.com/scrapesage/us-property-records-scraper)** — public ownership & assessor records.
- **[Website Contact Scraper](https://apify.com/scrapesage/website-contact-scraper)** — enrich any agent's website with emails, phones and socials.

### Tips

- **Big states / cities**: Realtor.com paginates up to ~9,800 results per search. To exhaust a large area, split runs by ZIP, price band or property type.
- **Cheapest rich run**: leave `includePropertyDetails` off — the listing record already carries price, beds/baths, sqft, geo, MLS, photos and the listing agent. Turn details on only when you need schools, full feature lists or price/tax history.
- **Agent leads**: use the dedicated `agentLeads` mode to get one deduped, lead-scored record per agent across all matching listings (most-active agents first).
- **Recurring monitoring**: combine [Schedules](https://docs.apify.com/platform/schedules) with `monitorMode` and `sortBy: "newest"` to capture only fresh inventory and price changes.

### FAQ

**How do I scrape Realtor.com for a specific city?** Put the city in `location` as `City, ST` (e.g. `Austin, TX`), a ZIP, or a full state name. Combine with `searchType`, `propertyTypes` and the price/beds filters to narrow results.

**Does it work without the Realtor.com API key?** Yes — there is no public Realtor.com API. This actor reads the same data Realtor.com's own website uses, no key or login needed.

**Can I get sold-home comps?** Yes — set `searchType: "sold"` and `sortBy: "sold_date"`. Turn on `includePropertyDetails` for the full price history of each comp.

**Where do the agent emails come from?** From the listing's own publicly displayed agent/office contact card on Realtor.com — the same details a visitor sees. Some agents publish only a phone or office email; fields are `null` only when the data doesn't exist.

**Can I export to Google Sheets, CSV or Excel?** Yes — one click in the dataset view, or automatically on every run via the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**How do I monitor new listings or price drops automatically?** Turn on `monitorMode`, then create a [Schedule](https://docs.apify.com/platform/schedules). Each run emits only new/changed records, with a `monitorReason`. Add a [webhook](https://docs.apify.com/platform/integrations/webhooks) or [Zapier zap](https://docs.apify.com/platform/integrations/zapier) to push them into your CRM.

**Is scraping Realtor.com legal?** This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws (e.g. GDPR/CCPA for personal data) and Realtor.com's terms.

### Data & lawful use

This Actor reads business and professional listings that the professionals themselves published to be found: names, roles, firms, ratings and the contact details shown on the public listing. Because those details belong to identifiable people, treat the output as personal data. If you are in the EU or UK you are the data controller for what you do with it: have a lawful basis (usually legitimate interest for B2B prospecting or market research), keep any outreach relevant to the professional's line of work, honour opt-outs and deletion requests, and do not use the output for spam.

Under [Apify's Standard Actor Contract](https://docs.apify.com/legal/standard-actor-contract), which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.

### Disclaimer

**This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Move, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.**

"Realtor.com" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official Realtor.com product, is not authorised or certified by Move, Inc., and does not distribute Realtor.com software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.

### Need help?

Open an issue on the actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests are welcome — this actor is actively maintained.

# Actor input Schema

## `outputType` (type: `string`):

search = property listings (the headline mode). agentLeads = deduped real-estate agent & office contact leads sourced from the matching listings. propertyDetail = full property records by numeric property\_id.

## `searchType` (type: `string`):

Which market to search: homes for sale, rentals, or recently sold homes (great for comps & sold-price history).

## `location` (type: `array`):

Where to search — one or more of: "City, ST" (e.g. "Austin, TX"), a 5-digit ZIP ("78704"), a county or a full state name ("Vermont"). Each location is searched independently. Leave empty if you use Search URLs.

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

Paste Realtor.com search pages to scrape directly — for-sale (realestateandhomes-search/...), rentals (apartments/...) or sold (soldhomeprices/...). The listing type is taken from the URL. Works alongside the filters below.

## `propertyIds` (type: `array`):

For outputType = propertyDetail: numeric Realtor.com property\_id values (the number you get back in the dataset, e.g. 8231543993).

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

Filter by property type. Accepts friendly names: house / single\_family, condo, townhome, multi\_family, duplex, mobile, land, farm, coop. Leave empty for all types.

## `priceMin` (type: `integer`):

Only listings priced at or above this value. For rentals this is monthly rent.

## `priceMax` (type: `integer`):

Only listings priced at or below this value. For rentals this is monthly rent.

## `bedsMin` (type: `integer`):

Minimum number of bedrooms.

## `bedsMax` (type: `integer`):

Maximum number of bedrooms.

## `bathsMin` (type: `integer`):

Minimum number of bathrooms.

## `sqftMin` (type: `integer`):

Minimum interior square footage.

## `sqftMax` (type: `integer`):

Maximum interior square footage.

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

Result order. "newest" is ideal for monitoring fresh inventory; "sold\_date" for recent comps.

## `includePropertyDetails` (type: `boolean`):

In search mode, fetch each property's full record (complete feature list, assigned schools with ratings, full listing & price history, multi-year tax history, photo gallery). Off = faster & cheaper (the listing record is already rich). When on, each record is billed as a property detail.

## `includeAgentLeads` (type: `boolean`):

In search / propertyDetail mode, also emit one deduped agent/office lead per listing agent (name, email, phone, website, brokerage, lead score). The dedicated "Agent leads" mode outputs only leads.

## `maxPhotos` (type: `integer`):

Cap on photo URLs collected per property in detail records.

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

Overall cap on records (listings or leads) collected for this run.

## `monitorMode` (type: `boolean`):

Remember what was emitted in previous runs (in a named key-value store) and output only NEW or CHANGED records — new listings, price drops/rises, status changes (and only-new agent leads). Each record carries a monitorReason. Perfect for scheduled deal-flow & price-watch alerts. Works independently of Apify Schedules.

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

Namespace for monitor memory. Use a distinct key per saved search so separate watch lists don't share state.

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

Parallel requests. The actor rotates a fresh proxy IP per request; lower this if you hit throttling.

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

Proxy settings. Apify Proxy (datacenter) is recommended and enabled by default — Realtor.com's data API is clean from datacenter IPs with fresh-session rotation.

## `urlsFromFile` (type: `string`):

Paste a list of URLs (one per line), OR one link to a .txt/.csv file, Google Sheet or Google Drive file containing them. Lets you import many Start URLs at once instead of typing each. Google Sheet/Drive share links are handled automatically.

## Actor input object example

```json
{
  "outputType": "search",
  "searchType": "for_sale",
  "location": [
    "Austin, TX"
  ],
  "sortBy": "relevant",
  "includePropertyDetails": false,
  "includeAgentLeads": false,
  "maxPhotos": 25,
  "maxResults": 100,
  "monitorMode": false,
  "monitorKey": "default",
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

All scraped property, property-detail and agent-lead records as JSON items in the default dataset.

# 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 = {
    "location": [
        "Austin, TX"
    ],
    "urlsFromFile": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/realtor-com-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 = {
    "location": ["Austin, TX"],
    "urlsFromFile": "",
}

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/realtor-com-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 '{
  "location": [
    "Austin, TX"
  ],
  "urlsFromFile": ""
}' |
apify call scrapesage/realtor-com-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapesage/realtor-com-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/8bayuoNwgnkZV30WW/builds/kI71Z7xtDQ0E99JMj/openapi.json
