# Landwatch Property Search Scraper (`alexist/landwatch-property-search-scraper`) Actor

Scrape comprehensive property listings from LandWatch.com with 89+ data fields per record. Extract prices, acreage, location details, auction info, broker data, and more — perfect for real estate investors, market analysts, and property aggregators.

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

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

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

## LandWatch Property Scraper: Automate Land & Property Data Collection

***

### What Is LandWatch.com?

LandWatch.com is the largest online marketplace for rural land, farms, and properties in North America. The platform hosts hundreds of thousands of listings across multiple states and property types — from vacant land to ranch properties and recreational acreage. Manually searching and collecting this data across geographies is impractical; the **LandWatch Property Scraper** automates bulk data extraction, delivering clean, structured records for analysis and integration.

***

### Overview

The **LandWatch Property Scraper** extracts detailed property listing data from LandWatch search results, capturing 89+ fields per property. It is designed for:

- **Real estate investors** identifying deals and market trends across regions
- **Market researchers** analyzing land prices, availability, and property characteristics
- **Property aggregators** building comprehensive databases of rural listings
- **Brokers and agencies** conducting competitive analysis and market intelligence

Key features include configurable item limits, robust URL handling, and resilience against scraping failures via `ignore_url_failures`.

***

### Input Format

The scraper accepts a configuration object with the following structure:

```json
{
  "urls": [
    "https://www.landwatch.com/land"
  ],
  "max_items_per_url": 200,
  "ignore_url_failures": true
}
```

| Parameter | Type | Description |
|---|---|---|
| `urls` | Array | LandWatch search result URLs (e.g., state/county filters, price ranges) |
| `max_items_per_url` | Integer | Maximum listings extracted per URL (default: 100, max: 200) |
| `ignore_url_failures` | Boolean | If `true`, continues scraping if a URL fails; if `false`, halts the run |

**Example URLs:**

- `https://www.landwatch.com/land` — All U.S. land listings
- `https://www.landwatch.com/land/texas` — Texas land only
- `https://www.landwatch.com/land/wyoming/sublette-county` — Specific county

***

### Output Format

**Sample output**

```json
{
  "account_id": 3855874,
  "acres": 5.08,
  "acres_display": "5.08 acres",
  "ad_targeting_county_id": 5592,
  "address": "00 Cheek Road",
  "auction_date": "0001-01-01T00:00:00",
  "auction_start_date": "0001-01-01T00:00:00",
  "auction_end_date": "0001-01-01T00:00:00",
  "auction_timezone": null,
  "baths": 0,
  "baths_display": "",
  "beds_display": "",
  "beds": 0,
  "broker_canonical_url": "/profile/tyler-whims/3855874",
  "broker_company": "Reedy Property Group",
  "broker_name": "Tyler Whims",
  "broker_phone": null,
  "canonical_url": "/laurens-county-south-carolina-land-for-sale/pid/427466385",
  "city": "Gray Court",
  "city_id": null,
  "company_logo_document_id": 0,
  "county": "Laurens County",
  "county_id": 5592,
  "county_label": "County",
  "encoded_boundary_points": "g}lrE~gbtNEEIGMIYSYQYS[Q[O?A[QA???YS]Q??[S[O]O[M_@K]I]Ga@C_@Aa@?c@?c@?????c@@??e@Ac@@??g@?e@?????e@???e@???i@???e@A??e@Ae@Ae@???c@?c@?c@Bc@Fc@F??e@Fa@HA???a@B??a@Ba@Ba@Da@D_@Ha@Ha@Ha@Jc@Lc@L??c@L??e@L??e@J??e@La@Jc@N??gDhA??A???ODA???QBA?????a@BKv@?@Ih@?@??ENCPADPd@@@tAv@Pf@?@Gd@Yd@AB@LFjBLjDBAXQ\\Al@?b@Vj@Tr@YX@`@Hh@@BBFNpAtC?@jDkALENPAb@?VVV?THPJFBPTVCN??A@GBHH@?D?BAN?TT??FFJj@@@JLBSLAR@?FIDF`@DD@@JJ`@ELAb@ETB@?JMCQAIJKLBn@DZB??F@FHFJ??LRRB\\BNBb@NRX\\LFd@LF?@@?ZMl@J?@??L?J@DFFLJ@FHJ@HCJHNHVCAAAI??DK@WPANa@L?ZFJGXAHGHDH@DLB???D@DO?EAG@GVo@?IPi@^Eb@D@???XG^@??RB\\PANTCLINCLAFPVDTRTTf@p@@i@n@wc@",
  "executive_summary": null,
  "external_source_id": null,
  "half_baths": 0,
  "half_baths_display": null,
  "has_custom_map": false,
  "has_exterior_matterport": false,
  "has_house": false,
  "has_video": true,
  "has_virtual_tour": false,
  "homesqft": 0,
  "homesqft_display": "",
  "image_alt_text_display": "Land for sale in Laurens County, South Carolina",
  "image_count": 22,
  "image_ids": null,
  "insert_date": "2026-07-14T13:26:55.017",
  "id": 28063870,
  "is_alc": null,
  "is_courtesy": false,
  "is_diamond": false,
  "is_first_free_listing": false,
  "is_free": false,
  "is_gold": false,
  "is_liked": false,
  "is_platinum": false,
  "is_showcase": false,
  "laf_property_id": 42096266,
  "lake": null,
  "last_updated": "2026-07-16T12:04:18.027",
  "latitude": 34.647884368896484,
  "list_hub_listing_key": null,
  "listing_level": 30,
  "listing_level_title": "Signature Partner",
  "longitude": -82.09940338134766,
  "lw_property_id": 427466385,
  "on_market_date": "0001-01-01T00:00:00",
  "parent_account_id": 1545156,
  "partner_id": 0,
  "portrait_document_id": 6099387751,
  "price": 184999,
  "price_change_amount": null,
  "price_change_date": null,
  "price_change_percentage": null,
  "price_display": "$184,999",
  "price_per_acre": 36417.13,
  "property_types": null,
  "property_types_label": null,
  "region_id": null,
  "sales_date": null,
  "sales_price": null,
  "short_price": null,
  "short_price_change_amount": null,
  "site_listing_id": null,
  "state": null,
  "state_abbreviation": null,
  "state_code": null,
  "state_id": null,
  "status": null,
  "thumbnail_document_id": null,
  "title": "Friendship Church Farms ",
  "types": [],
  "upgrade_level_id": null,
  "zip": "29645",
  "is_search_result": true,
  "from_url": "https://www.landwatch.com/south-carolina-land-for-sale/gray-court"
}
```

Each property record includes 89+ fields across multiple categories:

#### Core Property Information

| Field | Description | Example |
|---|---|---|
| `ID` | Unique LandWatch property identifier | `12345789` |
| `Title` | Listing title | `Prime 50-Acre Ranch in Montana` |
| `Address` | Street address | `County Road 123` |
| `City` | City name | `Billings` |
| `County` | County name | `Yellowstone` |
| `State` | Full state name | `Montana` |
| `State Abbreviation` | State abbreviation | `MT` |
| `ZIP` | Postal code | `59101` |
| `LW Property ID` | LandWatch internal ID | `lw-5678` |
| `LAF Property ID` | Linked affiliate property ID | `laf-9012` |

#### Property Characteristics

| Field | Description |
|---|---|
| `Acres` | Total acreage (numeric value) |
| `Acres Display` | Formatted acreage for display (e.g., "50.5 acres") |
| `Home Sqft` | Building square footage |
| `Home Sqft Display` | Formatted building size |
| `Beds` | Number of bedrooms |
| `Beds Display` | Formatted bedroom count |
| `Baths` | Number of bathrooms |
| `Baths Display` | Formatted bathroom count |
| `Half Baths` | Number of half-baths |
| `Half Baths Display` | Formatted half-bath count |
| `Property Types` | Categories (e.g., "Land", "Farm", "Ranch") |
| `Property Types Label` | Human-readable property type |
| `Has House` | Boolean flag: property includes a dwelling |
| `Has Video` | Boolean flag: listing includes video content |
| `Has Virtual Tour` | Boolean flag: Matterport or 3D tour available |
| `Has Exterior Matterport` | Boolean flag: exterior virtual tour present |
| `Has Custom Map` | Boolean flag: custom property boundary map |

#### Pricing & Financial Data

| Field | Description |
|---|---|
| `Price` | Current listing price (numeric) |
| `Price Display` | Formatted price (e.g., "$250,000") |
| `Short Price` | Abbreviated price (e.g., "$250K") |
| `Short Price Change Amount` | Recent price adjustment amount |
| `Price Change Amount` | Full price change amount |
| `Price Change Percentage` | Percentage price change |
| `Price Change Date` | Date of last price change |
| `Price Per Acre` | Calculated price per acre |
| `Sales Price` | Final sold price (if applicable) |
| `Sales Date` | Date property sold |

#### Listing Status & Timing

| Field | Description |
|---|---|
| `Status` | Current listing status (active, pending, sold, expired) |
| `On Market Date` | When listing became active |
| `Insert Date` | When added to LandWatch database |
| `Last Updated` | Most recent update timestamp |
| `Auction Date` | Scheduled auction date (if applicable) |
| `Auction Start Date` | Auction opening date/time |
| `Auction End Date` | Auction closing date/time |
| `Auction Timezone` | Timezone for auction times |

#### Broker & Agency Information

| Field | Description |
|---|---|
| `Broker Name` | Primary listing agent name |
| `Broker Company` | Brokerage firm name |
| `Broker Phone` | Contact phone number |
| `Broker Canonical URL` | Link to broker profile |
| `Account ID` | Broker account identifier |
| `Parent Account ID` | Parent brokerage account |
| `Partner ID` | Partner affiliate identifier |

#### Location & Geographic Data

| Field | Description |
|---|---|
| `Latitude` | GPS latitude coordinate |
| `Longitude` | GPS longitude coordinate |
| `Encoded Boundary Points` | Encoded polygon boundary of property |
| `Lake` | Nearby lake or water feature name |
| `City ID` | LandWatch city identifier |
| `County ID` | LandWatch county identifier |
| `County Label` | Formatted county name |
| `State ID` | LandWatch state identifier |
| `State Code` | Numeric state code |
| `Region ID` | Regional grouping identifier |
| `Ad Targeting County ID` | County ID for ad targeting |

#### Media & Documentation

| Field | Description |
|---|---|
| `Image Count` | Total number of listing photos |
| `Image IDs` | Array of photo document IDs |
| `Image Alt Text Display` | Accessibility text for images |
| `Thumbnail Document ID` | ID of listing thumbnail image |
| `Portrait Document ID` | ID of portrait-format property image |
| `Company Logo Document ID` | Broker/company logo image ID |

#### Listing Tier & Visibility

| Field | Description |
|---|---|
| `Is Free` | Boolean: free tier listing |
| `Is First Free Listing` | Boolean: first free listing from account |
| `Is Gold` | Boolean: Gold membership tier |
| `Is Platinum` | Boolean: Platinum tier (premium) |
| `Is Diamond` | Boolean: Diamond tier (highest) |
| `Is Showcase` | Boolean: featured showcase listing |
| `Is ALC` | Boolean: Agricultural Land Clearinghouse |
| `Is Courtesy` | Boolean: courtesy listing |
| `Upgrade Level ID` | Numeric tier level identifier |
| `Listing Level` | Tier name (Free, Gold, Platinum, Diamond) |
| `Listing Level Title` | Display title for tier |

#### Additional Data

| Field | Description |
|---|---|
| `Executive Summary` | Broker-written property description |
| `Canonical URL` | Official listing URL on LandWatch |
| `Broker Canonical URL` | Broker's property listing URL |
| `List Hub Listing Key` | MLS cross-reference key |
| `External Source ID` | Third-party listing ID |
| `Site Listing ID` | Site-specific listing identifier |
| `Is Liked` | Boolean: marked as favorite by users |
| `Is Search Result` | Boolean: appears in search results |

***

### How to Use

1. **Identify search URLs** — Visit LandWatch.com and build filtered searches (by state, county, price, acreage, property type). Copy the result page URL.
2. **Configure input** — Paste URLs into the `urls` array. Set `max_items_per_url` to control volume (200 = all results, lower = sample).
3. **Enable resilience** — Set `ignore_url_failures: true` for large batch runs to skip broken links.
4. **Execute scraper** — Launch the actor and monitor progress in the run log.
5. **Export data** — Download results as JSON, CSV, or Excel for analysis, database import, or BI tools.

**Best practices:**

- Start with state-level URLs (`/land/texas`) to ensure broad coverage.
- Use `max_items_per_url: 50-100` for initial testing; increase after validation.
- If targeting multiple states, consider separate runs per state to manage data volume.

***

### Benefits & Real-World Applications

- **Investment analysis** — Identify market trends, price per acre, and inventory levels by region
- **Competitive intelligence** — Track competitor listings, pricing strategies, and broker activity
- **Market research** — Analyze property characteristics (acreage, amenities) against demand
- **Lead generation** — Build custom prospect lists filtered by location and property type
- **Data enrichment** — Combine LandWatch data with other sources for comprehensive market databases

The scraper eliminates weeks of manual browsing, delivering clean, analytical-ready data that directly feeds spreadsheets, CRMs, databases, and analytics platforms.

***

### Conclusion

The **LandWatch Property Scraper** streamlines access to rural property market data across North America. With 89+ fields per listing and flexible filtering, it enables investors, researchers, and brokers to make data-driven decisions faster. Start scraping today and unlock actionable insights from LandWatch's comprehensive property catalog.

# 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.landwatch.com/land"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 100
}
```

# 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.landwatch.com/land"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("alexist/landwatch-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.landwatch.com/land"],
    "ignore_url_failures": True,
    "max_items_per_url": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("alexist/landwatch-property-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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.landwatch.com/land"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 100
}' |
apify call alexist/landwatch-property-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=alexist/landwatch-property-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/Tqd28WMaxzj1LTgej/builds/7HRlmD1sbZ8ORlpob/openapi.json
