# Landandfarm Property Search Scraper (`alexist/landandfarm-property-search-scraper`) Actor

Harvest detailed property data from Land and Farm with one click. This scraper extracts prices, acreage, location details, broker info, and 80+ property fields — perfect for real estate investors, market researchers, and property data aggregators.

- **URL**: https://apify.com/alexist/landandfarm-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

## Land and Farm Property Scraper: Extract Real Estate Listings Fast

***

### What Is Land and Farm?

Land and Farm (landandfarm.com) is a specialized marketplace for agricultural and rural properties across the United States. It hosts tens of thousands of listings ranging from small residential lots to large farm acreages, serving buyers, sellers, and brokers nationwide. Manually extracting property data from search results is tedious and error-prone — the **Land and Farm Property Scraper** automates this entirely, turning property listings into clean, structured datasets ready for analysis or integration.

***

### Overview

The **Land and Farm Property Scraper** crawls search result pages and extracts comprehensive property details from landandfarm.com listings. It is ideal for:

- **Real estate investors** tracking market trends and identifying opportunities by region
- **Property data aggregators** building multi-source listing databases
- **Market researchers** analyzing land pricing, acreage distribution, and regional patterns
- **Real estate professionals** monitoring competitor activity and market saturation
- **API developers** who need structured property data for downstream applications

Key advantages include support for large-scale scraping (up to 200 items per URL), flexible URL management, and graceful error handling via `ignore_url_failures`.

***

### Input Format

The scraper accepts a JSON configuration object with three core parameters:

```json
{
  "urls": [
    "https://www.landandfarm.com/search/lots-in-south-carolina-for-sale/"
  ],
  "max_items_per_url": 200,
  "ignore_url_failures": true
}
```

| Field | Type | Description | Example |
|---|---|---|---|
| `urls` | Array | Search result page URLs to scrape | `["https://www.landandfarm.com/search/lots-in-south-carolina-for-sale/"]` |
| `max_items_per_url` | Integer | Maximum properties to extract per URL (1–200) | `200` |
| `ignore_url_failures` | Boolean | If `true`, continues scraping if a URL fails; if `false`, halts on error | `true` |

**Tips for best results:**

- Copy full search URLs directly from your browser's address bar
- Use filters (state, price range, acreage) to narrow searches before scraping
- Set `max_items_per_url` based on expected results per page (default: 100)
- Enable `ignore_url_failures: true` for large batch runs to prevent interruptions

***

### 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": "/broker/tyler-whims-3855874/",
  "broker_company": "Reedy Property Group",
  "broker_name": "Tyler Whims",
  "broker_phone": null,
  "canonical_url": "/property/friendship-church-farms-42096266/",
  "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": "Residential Property 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": [
    "Residential Land"
  ],
  "upgrade_level_id": null,
  "zip": "29645",
  "is_search_result": true,
  "from_url": "https://www.landandfarm.com/search/south-carolina/gray-court/residential-land-for-sale/"
}
```

Each property scraped returns a comprehensive record with 80+ fields covering identification, pricing, location, property features, broker details, and listing status.

#### Core Property Identification

| Field | Meaning | Example |
|---|---|---|
| `id` | Unique Land and Farm property identifier | `12345678` |
| `laf_property_id` | Internal LAF system ID | `LAF-98765` |
| `lw_property_id` | Legacy property ID for historical tracking | `LW-55432` |
| `site_listing_id` | Site-specific listing identifier | `SLI-112233` |
| `canonical_url` | Direct link to the property listing | `https://www.landandfarm.com/property/...` |
| `title` | Property headline or listing title | `Beautiful 50-Acre Farm in Rural South Carolina` |
| `status` | Current listing status | `active`, `sold`, `expired` |

#### Location & Geography

| Field | Meaning | Example |
|---|---|---|
| `address` | Full street address | `123 Farm Road, Aiken, SC 29801` |
| `city` | Municipality | `Aiken` |
| `city_id` | City identifier code | `2891` |
| `county` | County name | `Aiken County` |
| `county_id` | County identifier | `45003` |
| `county_label` | Full county descriptor | `Aiken County, South Carolina` |
| `state` | State name | `South Carolina` |
| `state_abbreviation` | Two-letter state code | `SC` |
| `state_id` | State identifier | `45` |
| `zip` | Postal code | `29801` |
| `latitude` | Decimal latitude for mapping | `33.5621` |
| `longitude` | Decimal longitude for mapping | `-81.7296` |
| `encoded_boundary_points` | Geofenced property boundary (encoded) | GeoJSON-like format |
| `region_id` | Regional classification ID | Used for market segmentation |

#### Property Features & Size

| Field | Meaning | Example |
|---|---|---|
| `acres` | Total acreage (numeric) | `50.5` |
| `acres_display` | Formatted acreage for display | `50.5 acres` |
| `homesqft` | Home/building square footage | `3200` |
| `homesqft_display` | Formatted sqft for display | `3,200 sq ft` |
| `beds` | Number of bedrooms | `4` |
| `beds_display` | Formatted beds for display | `4 Beds` |
| `baths` | Number of bathrooms | `2` |
| `baths_display` | Formatted baths for display | `2 Baths` |
| `half_baths` | Number of half-bathrooms | `1` |
| `half_baths_display` | Formatted half baths for display | `1 Half Bath` |
| `property_types` | Property category codes | `["lot", "farm"]` |
| `property_types_label` | Human-readable property types | `Lot, Farm Land` |
| `has_house` | Boolean: does property include a structure? | `true` / `false` |
| `lake` | Water feature presence or name | `Private Lake` |

#### Pricing & Financial Data

| Field | Meaning | Example |
|---|---|---|
| `price` | Current asking price (numeric) | `250000` |
| `price_display` | Formatted price for display | `$250,000` |
| `short_price` | Abbreviated price display | `$250K` |
| `price_per_acre` | Price divided by acreage | `4950` |
| `sales_price` | Historical sale price if sold | `240000` |
| `sales_date` | Date of last sale | `2023-06-15` |
| `price_change_amount` | Dollar amount of price change | `10000` |
| `price_change_percentage` | Percentage price change | `4.17` |
| `price_change_date` | When price was last adjusted | `2024-01-10` |

#### Broker & Contact Information

| Field | Meaning | Example |
|---|---|---|
| `broker_name` | Agent or broker name | `John Smith` |
| `broker_company` | Brokerage firm name | `Countryside Realty` |
| `broker_phone` | Contact phone number | `(803) 555-0123` |
| `broker_canonical_url` | Link to broker's profile | `https://www.landandfarm.com/broker/...` |
| `account_id` | Broker account ID | `ACC-78901` |
| `parent_account_id` | Parent company account ID | `PACC-99876` |

#### Listing Status & Promotion

| Field | Meaning | Example |
|---|---|---|
| `on_market_date` | When listing became active | `2023-11-20` |
| `insert_date` | When first added to system | `2023-11-15` |
| `last_updated` | Latest data refresh timestamp | `2024-01-18T14:30:00Z` |
| `listing_level` | Paid promotion tier | `2` |
| `listing_level_title` | Tier name | `Gold Listing` |
| `is_free` | Free listing flag | `false` |
| `is_gold` | Gold tier flag | `true` |
| `is_platinum` | Platinum tier flag | `false` |
| `is_diamond` | Diamond tier flag | `false` |
| `is_showcase` | Showcase feature flag | `true` |
| `is_alc` | Agent Land Center flag | `false` |
| `upgrade_level_id` | Paid upgrade ID | `UP-123` |

#### Media & Virtual Tours

| Field | Meaning | Example |
|---|---|---|
| `image_count` | Total number of photos | `24` |
| `image_ids` | Array of photo identifiers | `["IMG-001", "IMG-002"]` |
| `image_alt_text_display` | Alt text for accessibility | `Front view of property` |
| `has_video` | Video present flag | `true` |
| `has_virtual_tour` | Virtual tour flag | `true` |
| `has_exterior_matterport` | 3D Matterport tour flag | `true` |
| `has_custom_map` | Custom map overlay flag | `false` |
| `portrait_document_id` | Primary photo ID | `DOC-55443` |
| `thumbnail_document_id` | Thumbnail image ID | `THM-55443` |
| `company_logo_document_id` | Broker logo image ID | `LOGO-78901` |

#### Auction & Special Listings

| Field | Meaning | Example |
|---|---|---|
| `auction_date` | Auction event date | `2024-02-15` |
| `auction_start_date` | Auction bidding start | `2024-02-10` |
| `auction_end_date` | Auction bidding end | `2024-02-15` |
| `auction_timezone` | Timezone for auction times | `EST` |
| `is_courtesy` | Courtesy listing flag | `false` |

#### Additional Metadata

| Field | Meaning | Example |
|---|---|---|
| `executive_summary` | Brief property description | `Well-maintained 50-acre farm with modern barn...` |
| `external_source_id` | Source system reference | `EXT-2024-001` |
| `ad_targeting_county_id` | Ad targeting classification | `45003` |
| `is_liked` | Favorited by users flag | `true` |
| `is_first_free_listing` | First free listing indicator | `false` |
| `is_search_result` | Search result flag | `true` |
| `list_hub_listing_key` | ListHub integration key | `LH-98765432` |
| `partner_id` | Partner integration ID | `PRT-555` |

***

### How to Use

1. **Find search URLs** — Go to landandfarm.com and apply filters (state, price, acreage). Copy the resulting search page URL.
2. **Paste URLs** — Add the URL(s) to the `urls` array in the input JSON.
3. **Set item limit** — Adjust `max_items_per_url` (typically 100–200 for comprehensive scraping).
4. **Enable error handling** — Set `ignore_url_failures: true` if scraping multiple URLs.
5. **Run the scraper** — Start the actor and monitor progress in real-time.
6. **Export data** — Download results as JSON, CSV, or Excel for analysis, database import, or further processing.

**Best practices:**

- Scrape during off-peak hours to reduce server load
- For large datasets, split searches by state or price range
- Use the `latitude` and `longitude` fields to create maps or geo-fenced analyses
- Monitor `last_updated` to track data freshness

***

### Use Cases & Business Value

- **Investment analysis:** Compare price-per-acre across regions to identify undervalued properties
- **Market intelligence:** Track supply trends, average prices, and listing velocity by county
- **Competitive monitoring:** Monitor competitor land purchases and sales patterns
- **Lead generation:** Build property databases for targeted marketing campaigns
- **Data aggregation:** Feed Land and Farm listings into multi-source property search platforms
- **Academic research:** Analyze agricultural land markets, demographics, and pricing dynamics

The Land and Farm Property Scraper eliminates manual data collection, delivering hundreds of properties per run with all essential information pre-structured and ready for analytics, database storage, or business intelligence tools.

***

### Conclusion

The **Land and Farm Property Scraper** is an essential tool for anyone working with rural and agricultural real estate data at scale. Whether you're an investor scouting opportunities, a researcher studying land markets, or a developer building property aggregators, this scraper transforms browsing into data. Start scraping today and unlock insights hidden in thousands of listings.

# 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.landandfarm.com/search/lots-in-south-carolina-for-sale/"
  ],
  "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.landandfarm.com/search/lots-in-south-carolina-for-sale/"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 100
};

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

# Run the Actor and wait for it to finish
run = client.actor("alexist/landandfarm-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.landandfarm.com/search/lots-in-south-carolina-for-sale/"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 100
}' |
apify call alexist/landandfarm-property-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ndS98kc383QlUzJb8/builds/5BuYxlLN6eXoesfB6/openapi.json
