# Sotheby's Realty Scraper 💰 $0.95/1K | Luxury Homes & Agents (`ahmed_jasarevic/sothebysrealty-scraper`) Actor

Scrape luxury property listings from sothebysrealty.com: price, address, beds/baths, sqft, description, photos, listing agent, brokerage and MLS data. Ideal for luxury real estate research, HNWI lead generation and market analysis.

- **URL**: https://apify.com/ahmed_jasarevic/sothebysrealty-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 $0.90 / 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

## Sotheby's Realty Scraper — Luxury Property Listings Data

Scrape luxury property listings from [sothebysrealty.com](https://www.sothebysrealty.com) (Sotheby's International Realty) — search and detail pages — and extract price, address, beds/baths, square footage, description, photos, listing agent, brokerage and MLS ID.

### Main Use Cases

- **Luxury real estate market research** — build a global dataset of high-end listings with price, location and property attributes.
- **HNWI / luxury lead generation** — collect listing agent and brokerage contact details for outreach and partnerships.
- **Investment scouting** — track luxury inventory, days on market and price reductions across markets.
- **Competitive benchmarking** — compare listings, prices and agent activity across luxury brokerages.
- **Property database building** — assemble a structured luxury property database with photos, geo coordinates and status flags.

### How It Works

![Sotheby's Realty Scraper workflow: from luxury property search to structured listing, agent and brokerage records](https://api.apify.com/v2/key-value-stores/oeuA0kLOyhbRM4fzt/records/how-it-works-sothebys.webp)

Looking for a reliable **Sotheby's Realty scraper** or a practical **Sotheby's API alternative**? Paste a Sotheby's search URL and get structured luxury property records for **global market research, high-end comps and agent lead generation**. Each record includes price, beds, baths, square footage, address, neighborhood, country, property type, listing agent, brokerage, MLS ID, status flags and photos.

Use the dataset to benchmark luxury inventory, track price reductions and days on market, compare brokerages, or feed high-end property dashboards and outreach workflows. Export as JSON, CSV or Excel, or pull results through the Apify API. Start with a small run, then pay from $0.95 per 1,000 results.

### Scrape Luxury Listings By Price Location And Property Details

Feed it one or more search pages (including refinements and `/n-pg` pagination) and it walks every page, returning each listing's price, address, beds/baths, square footage, description, photos and status flags. Feed it a detail page to target a specific property directly.

### Extract Sotheby's Listings Without An Official API

Sotheby's International Realty has no public API for exporting listings. This actor reads the same publicly available listing feed the site's own front end uses and returns clean, structured JSON — so you can build a luxury property dataset, run market analysis or feed an investment pipeline without an API key.

### Input

| Field | Type | Required | Default | Notes |
| --- | --- | --- | --- | --- |
| `startUrls` | array | yes | `[{url: "https://www.sothebysrealty.com/eng/sales"}]` | Search pages (including refinements and `/n-pg` pages) and/or detail pages (`…/eng/{channel}/detail/…`). |
| `maxItems` | integer | no | `50` | Max listings saved. Free users capped at 10. |
| `maxRequestsPerCrawl` | integer | no | `200` | Safety cap on feed requests (search + detail pages). |
| `fetchDetails` | boolean | no | `true` | Fetch each listing's detail feed for long description, sqft, year built and full photo gallery. Turn off for a faster, cheaper run. |
| `requestDelaySecs` | integer | no | `1` | Politeness delay between requests. The feed's `robots.txt` declares `Crawl-delay: 5`; raise to 5 for strict compliance. |
| `proxy` | object | no | `{ "useApifyProxy": false }` | Optional. Enable only to spread load across IPs; not needed by default. |

### Output

One dataset item per listing. Dataset view: **overview** (title, price, address, beds, baths, sqft, agent, brokerage, URL).

| Field group | Fields | Notes |
| --- | --- | --- |
| Links | `url`, `propertyUrl` | Canonical listing URL |
| Identifiers | `listingId`, `idWeb`, `mlsId` | Internal, public and MLS ids |
| Title | `title` | Address-style title |
| Price | `price`, `priceValue`, `priceCurrency` | Displayed price plus numeric value for sorting |
| Address | `address`, `addressLine`, `city`, `state`, `stateAbbr`, `zip`, `county`, `country`, `neighborhood` | Address parts, deduplicated |
| Rooms | `beds`, `baths`, `bathsFull`, `bathsHalf`, `bathsPartial` | Half/partial baths exposed separately |
| Size | `sqft`, `lotSize`, `lotAcreage`, `yearBuilt` | `sqft`/`yearBuilt` from the detail feed |
| Classification | `propertyType`, `status`, `channel`, `dataSourceType`, `additionalListingType` | Type & status |
| Description | `description` | Long-form when enrichment is on |
| Photos | `photos` | Up to 30 URLs (search + detail union) |
| Agent | `listingAgentName`, `listingAgentPhone`, `listingAgentEmail`, `brokerage` | Agent and brokerage contact details |
| Geo | `latitude`, `longitude` | Property coordinates |
| Timing | `daysOnMarket`, `listedDate`, `updatedDate` | Market timing |
| Flags | `exclusive`, `openHouse`, `virtualOpenHouse`, `priceReduced`, `comingSoon`, `newListing`, `auction`, `underContract`, `soldOrRented` | Status flags |

### Example Input

```json
{
  "startUrls": [
    { "url": "https://www.sothebysrealty.com/eng/sales/int/all-open-house" },
    { "url": "https://www.sothebysrealty.com/eng/rentals/usa/new-york" }
  ],
  "maxItems": 500,
  "fetchDetails": true,
  "requestDelaySecs": 5
}
```

### Example Output

```json
{
  "url": "https://www.sothebysrealty.com/eng/sales/detail/180-l-1190-d9dwy3/176-palo-alto-avenue",
  "listingId": "180-l-1190-d9dwy3",
  "mlsId": "82013476",
  "title": "176 Palo Alto Avenue",
  "price": "$12,900,000",
  "priceValue": 12900000,
  "priceCurrency": "USD",
  "city": "Palo Alto",
  "state": "California",
  "zip": "94301",
  "country": "United States",
  "beds": 5,
  "baths": 4,
  "sqft": "4,850",
  "yearBuilt": "1938",
  "propertyType": "Single Family",
  "status": "active",
  "description": "Timeless elegance in the heart of Old Palo Alto...",
  "photos": ["https://photos.sothebysrealty.com/..."],
  "listingAgentName": "Jane Doe",
  "listingAgentPhone": "+1 (650) 555-0123",
  "listingAgentEmail": "jane.doe@example.com",
  "brokerage": "Sotheby's International Realty",
  "latitude": 37.4459,
  "longitude": -122.1607,
  "daysOnMarket": 14,
  "openHouse": true,
  "priceReduced": false,
  "scrapedAt": "2026-10-15T09:00:00.000Z"
}
```

### Integrations & Automation

- **Apify API** — trigger runs and read the dataset programmatically.
- **Webhooks** — act when a run finishes (e.g. push new luxury listings into a CRM).
- **Zapier / Make** — connect new listings to Google Sheets, Airtable or a real-estate CRM.

**Recommended schedule:** run **daily** for active-market monitoring and price-reduction alerting; **weekly** for broader luxury market and inventory reports.

### Related Actors

- [Zillow Scraper](https://apify.com/ahmed_jasarevic/zillow-scraper) — US listings, leads, rentals and sold data, the largest US real-estate source.
- [Rightmove Scraper](https://apify.com/ahmed_jasarevic/rightmove-scraper) — UK property and sold-price data for the same market-intelligence workflow.
- [Century 21 Scraper](https://apify.com/ahmed_jasarevic/century21-scraper) — listings, MLS and agent leads from another major brokerage.
- [Realtor.com Agent Scraper](https://apify.com/ahmed_jasarevic/realtor-agent-scraper) — agent leads, CRM and reviews.
- [Homes.com Scraper](https://apify.com/ahmed_jasarevic/homes-scraper) — agent leads and price monitoring.

### FAQ

#### Why use this actor instead of the official API?

Sotheby's International Realty has no public API for exporting listings. This Actor turns public search and listing pages into structured luxury property records, so you can build a global dataset without an API key.

#### What are alternatives to this actor or to luxury real-estate data?

Zillow (US) and Rightmove (UK) cover the wider property market, and this actor's own Zillow and Rightmove scrapers cover them. Within Sotheby's International Realty's own inventory, this actor is the search + detail scraper.

#### Do I need a proxy?

No. The Actor runs with the default configuration; proxy settings are optional.

#### How many listings are on sothebysrealty.com?

Verified live in Oct 2026, `/eng/sales` reported `pageTotal=75` and `listingTotal=1800` at 24 listings per page. Actual counts change over time.

#### Can I get listing agent and brokerage contact details?

Yes — `listingAgentName`, `listingAgentPhone`, `listingAgentEmail` and `brokerage` are captured. Use these responsibly and only where you have a lawful basis to do so.

#### What is the free-plan limit?

Free users are capped at **10 items** regardless of `maxItems`.

### For AI Agents & LLM Apps

Purpose: return luxury property listings from sothebysrealty.com with price, address, beds/baths, square footage, description, photos, listing agent and brokerage.

Minimal working input:

```json
{ "startUrls": [{ "url": "https://www.sothebysrealty.com/eng/sales" }] }
```

Variant inputs:

```json
{ "startUrls": [{ "url": "https://www.sothebysrealty.com/eng/rentals/usa/new-york" }], "maxItems": 500, "fetchDetails": true }
```

```json
{ "startUrls": [{ "url": "https://www.sothebysrealty.com/eng/sales/detail/180-l-1190-d9dwy3/176-palo-alto-avenue" }] }
```

Output fields (dataset): `url, propertyUrl, listingId, idWeb, mlsId, title, price, priceValue, priceCurrency, address, addressLine, city, state, stateAbbr, zip, county, country, neighborhood, beds, baths, bathsFull, bathsHalf, bathsPartial, sqft, lotSize, lotAcreage, yearBuilt, propertyType, status, channel, dataSourceType, additionalListingType, description, photos, listingAgentName, listingAgentPhone, listingAgentEmail, brokerage, latitude, longitude, daysOnMarket, listedDate, updatedDate, exclusive, openHouse, virtualOpenHouse, priceReduced, comingSoon, newListing, auction, underContract, soldOrRented, scrapedAt`.

Behaviors an agent should know:

- `startUrls` is the **only required** field; search pages are **paginated automatically** (24 listings per page) up to `maxItems`.
- `fetchDetails: true` (the default) adds the long description, `sqft`, `yearBuilt` and full photo gallery; a detail fetch that fails still keeps the search-only fields, so no listing is lost.
- `sqft` and `yearBuilt` are `null` when `fetchDetails` is `false`.
- Free-plan users are capped at **10 items** regardless of `maxItems`.
- Billing model: pay-per-event — one `apify-default-dataset-item` charge per listing (~$0.00095/result, i.e. ~$0.95 per 1,000) plus a `detail-enriched` event (~$0.001/result) for each listing enriched when `fetchDetails` is on, plus one `apify-actor-start` charge per run.

### Legal & Compliance Disclaimer

This actor is an independent tool and is **not affiliated with, endorsed by, or sponsored by Sotheby's** or Sotheby's International Realty. The Actor reads only publicly available listing data. It does not access private data, log in, or bypass site protections. The output can include **personal contact details** (listing agent name, phone and email); users are responsible for their own compliance with the target's Terms of Service and applicable data-protection law (including GDPR/CCPA where the data concerns EU or California individuals). Agent contact details should not be used for unsolicited commercial outreach in violation of applicable law. Respect the site's `robots.txt` and declared `Crawl-delay: 5` on large runs.

### SEO Keywords

sothebysrealty scraper, sotheby's realty scraper, sotheby's international realty data, luxury real estate data, luxury property data, luxury home listings, luxury property listings data, hnwi real estate, luxury market research, luxury property database, us luxury real estate, real estate investment data, mls data scraper, listing agent contact data, brokerage data, real estate agent leads, luxury rental data, property market intelligence, sothebys api, luxury property export csv, real estate market analysis data, high end property listings

# Actor input Schema

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

Search pages (e.g. https://www.sothebysrealty.com/eng/sales, optionally with a refinement or page such as /eng/sales/int/2-pg) and/or property detail pages (…/eng/sales/detail/…). Search pages are paginated automatically and every listing is enriched from its detail endpoint.

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

Maximum number of property listings to save. Free users are capped at 10 items regardless of this setting.

## `maxRequestsPerCrawl` (type: `integer`):

Maximum number of feed requests (search pages + detail pages) the crawler may perform. Acts as a safety cap on run size.

## `fetchDetails` (type: `boolean`):

Fetch each listing's detail feed to add the long description, square footage, year built and the full photo gallery. Turn off for a faster, cheaper run that returns only the fields the search feed already carries. When the Actor uses pay-per-event pricing, each enriched listing is billed as one detail-enriched event.

## `requestDelaySecs` (type: `integer`):

Politeness delay between requests. The feed's robots.txt declares Crawl-delay: 5, so raise this to 5 for strict compliance; lower it for faster runs.

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

Optional. The internal listing API accepts direct datacenter egress when the bypass headers are sent, so no proxy is needed by default. Enable Apify Proxy only if you want to spread the load across several IPs.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.sothebysrealty.com/eng/sales"
    }
  ],
  "maxItems": 50,
  "maxRequestsPerCrawl": 200,
  "fetchDetails": true,
  "requestDelaySecs": 1,
  "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.sothebysrealty.com/eng/sales"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/sothebysrealty-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.sothebysrealty.com/eng/sales" }] }

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/sothebysrealty-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.sothebysrealty.com/eng/sales"
    }
  ]
}' |
apify call ahmed_jasarevic/sothebysrealty-scraper --silent --output-dataset

```

## MCP server setup

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