# LandFlip Land & Rural Property Scraper + Agent (`scrapersdelight/landflip-scraper`) Actor

Scrape LandFlip land, farm, ranch & lot listings WITH the listing agent/broker contact: agent name, brokerage, direct phone, plus acreage, price, $/acre, address, county, state and listing URL. By US state, search URL, or listing URLs. No login.

- **URL**: https://apify.com/scrapersdelight/landflip-scraper.md
- **Developed by:** [Scrapers Delight](https://apify.com/scrapersdelight) (community)
- **Categories:** Automation, Lead generation, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$4.00 / 1,000 per land listing returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## LandFlip Land & Rural Property Scraper + Agent Contact

Scrape **[LandFlip](https://www.landflip.com)** land, farm, ranch and lot listings **with the listing agent / broker contact** most land scrapers skip — agent name, brokerage, and **direct phone** — alongside the full property core (acreage, price, $/acre, address, county, state, ZIP, listing type, description, photo, tour video).

Built for **land investors, rural real-estate brokers, farm / timber / solar / hunting-land buyers, and land-CRM / GTM tools** who need a clean, structured feed of who to call about each parcel.

### What you get (one row per listing)

| Field | Example |
|---|---|
| `agentName` | Andrew Finger |
| `company` (brokerage) | Elegment Land |
| `phone` | 970-420-2440 |
| `sellerType` | Pro Land Seller |
| `sellerProfileUrl` | https://www.landflip.com/land-for-sale/21895-seller |
| `title` | 6.64Ac Unrestricted, RV/Mobile OK |
| `price` / `priceCurrency` | 141900 / USD |
| `acres` / `pricePerAcre` | 6.64 / 21370 |
| `street`, `city`, `county`, `state`, `zip` | Lot 6 16947 E Fm 942 · Livingston · Polk County · TX · 77351 |
| `listingCategory` / `listingStatus` | Land For Sale / for-sale |
| `description`, `image`, `videoUrl`, `url`, `id` | … |

### Input

- **states** — e.g. `["Texas", "Montana"]` (each becomes a LandFlip search).
- **listingType** — `for-sale` (default), `fsbo`, `auction`, `for-lease`.
- **keyword** — optional land-type filter: `hunting`, `farm`, `ranch`, `waterfront`, `timber`, …
- **searchUrls** — paste LandFlip search URLs (`/land-for-sale/{state}`) or listing URLs (`/land/{id}`) directly; auto-detected. Also accepts lotflip.com / farmflip.com listing URLs.
- **maxItems** — cap per run (default 100).

### Pricing

Pay-per-result: **$0.004 per listing** returned with its agent/broker record. Budget-aware — you are only charged for the rows that fit your run's cap.

### Notes

Public real-estate listing data. You are responsible for complying with LandFlip's Terms of Service and for compliant outreach (TCPA / Do-Not-Call) when using agent phone numbers.

# Actor input Schema

## `states` (type: `array`):

US states to scrape land listings for, e.g. \["Texas", "Montana"]. Each becomes a LandFlip search (landflip.com/land-for-sale/{state}) and every matching listing is scraped with its agent/broker contact. Leave blank if you use Search URLs or Listing URLs.

## `listingType` (type: `string`):

Which LandFlip section to pull for the States above.

## `keyword` (type: `string`):

Optional category filter applied to the States search, e.g. "hunting", "farm", "ranch", "waterfront", "timber". Maps to LandFlip's /{keyword}-keyword filter.

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

Optional. Paste LandFlip URLs directly — search/results pages (e.g. https://www.landflip.com/land-for-sale/texas) or individual listing pages (https://www.landflip.com/land/415560). Each type is auto-detected. Also works for lotflip.com and farmflip.com listing URLs.

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

Cap on the number of listings returned this run (cost/speed guard). Default 100; set 0 to pull the whole search scope (up to a safety cap).

## `requestConcurrency` (type: `integer`):

How many listing pages to fetch in parallel. Higher = faster; keep modest to stay polite.

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

Proxy settings. LandFlip serves clean pages to most IPs, so the default Apify Proxy (automatic) is recommended.

## Actor input object example

```json
{
  "states": [
    "Montana"
  ],
  "listingType": "for-sale",
  "maxItems": 5,
  "requestConcurrency": 6,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `records` (type: `string`):

The dataset of scraped LandFlip listings + agent/broker contact (one item per listing).

# 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 = {
    "states": [
        "Montana"
    ],
    "listingType": "for-sale",
    "maxItems": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapersdelight/landflip-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 = {
    "states": ["Montana"],
    "listingType": "for-sale",
    "maxItems": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapersdelight/landflip-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 '{
  "states": [
    "Montana"
  ],
  "listingType": "for-sale",
  "maxItems": 5
}' |
apify call scrapersdelight/landflip-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/U7COjG3Z1fDlK7ENl/builds/hWV9iUIgHcISHKdwY/openapi.json
