# LandWatch Scraper: Land for Sale, Price per Acre, Brokers (`themineworks/landwatch-land-for-sale-scraper`) Actor

Scrape LandWatch land for sale by search link or US state: price, acres, price per acre, county, GPS, property types, house details, listing broker and photos. 25 listings a page, every LandWatch filter, new listing monitor. No login, no browser. Pay per listing.

- **URL**: https://apify.com/themineworks/landwatch-land-for-sale-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Real estate, Lead generation, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.79 / 1,000 land 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?

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

## LandWatch Scraper: Land for Sale, Price per Acre, Brokers

[![20 LandWatch land listings in 5 seconds](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/landwatch-land-for-sale-scraper-hero.png)](https://console.apify.com/actors/uEBysFWdVOhTv0MeS/input)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder), with nearly 139,000 runs across our actors.

### Why choose this actor?

- **Any LandWatch search, filters included.** Paste the link you see in your browser after picking a county, price band, acreage or property type, and the actor reads that exact search, 25 listings a page. Our proof run read a Harris County, Texas search (3,259 listings) and returned **20 listings in 5 seconds**. No LandWatch account, no cookies, no proxy to set up.
- **Price per acre, location and broker on every row.** Up to 47 fields per listing: price, acres, price per acre, county, ZIP, GPS, property types, house size, listing tier, brokerage company and photos. In the proof runs, all 40 of 40 rows carried acres, county, coordinates and the brokerage company.
- **Scheduled runs that bill only what changed.** Turn on `onlyNewListings` and each run returns only listings it has not delivered before for the same searches, plus listings whose price changed (marked `price_changed`). Listings you already have are skipped and never charged.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/uEBysFWdVOhTv0MeS/input)

**Part of The Mine Works Real estate family:** [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings), [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold), [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp), [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper), [MagicBricks Scraper](https://apify.com/themineworks/magicbricks-scraper), [Zillow Property Scraper](https://apify.com/themineworks/zillow-property-details).

### Try it in one minute

Paste this input and press Start. It returns about 10 listings from one county search:

```json
{
  "searchUrls": ["https://www.landwatch.com/texas-land-for-sale/harris-county"],
  "maxResultsPerSearch": 10
}
```

There are two ways to say what you want:

- **Search links** (`searchUrls`): any LandWatch search page, as copied from the address bar. For example `https://www.landwatch.com/texas-land-for-sale`, `https://www.landwatch.com/texas-land-for-sale/harris-county` or `https://www.landwatch.com/nebraska-land-for-sale/farms-ranches/price-250000-499999`. The scheme is optional (`landwatch.com/montana-land-for-sale` works).
- **States** (`states` plus an optional `propertyType`): pick whole US states from a list, for example Montana with Farms and ranches. Each state becomes the same search page LandWatch links to, such as `/montana-land-for-sale/farms-ranches`.

Single listing pages (`/pid/...`) and agent pages (`/find-agent/...`) are not searches; they are skipped with a note in the log.

Apify's free plan includes $5 of credit every month, which covers about 2,700 listings at this actor's Free plan price.

#### Copy to your AI assistant

```text
themineworks/landwatch-land-for-sale-scraper on Apify. Returns public LandWatch.com land for sale listings (price, acres, price per acre, county, GPS, property types, broker, photos) from LandWatch search links or US states. Call ApifyClient("TOKEN").actor("themineworks/landwatch-land-for-sale-scraper").call(run_input={"searchUrls": ["https://www.landwatch.com/texas-land-for-sale/harris-county"], "maxResultsPerSearch": 25}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: searchUrls (LandWatch search page links) or states (US state names). Optional: propertyType (all, undeveloped, homesites, homes, farms_ranches, recreational, waterfront, lakefront, commercial, hunting, horse, timberland, riverfront, oceanfront; default all; used with states only), maxResultsPerSearch (default 100, 0 = up to 2,500), onlyNewListings (default false). Full spec: GET https://api.apify.com/v2/acts/themineworks~landwatch-land-for-sale-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations
```

### Key features

- **47 fields per listing**, grouped as price (price, price per acre, last price change), land (acres, property types, lake), house (beds, baths, square feet), location (address, city, county, state, ZIP, latitude, longitude), broker (name, company, profile link, and the phone on top tier listings), photos and search context.
- **Every filter LandWatch puts in a link**: region, county, city, 13 property types, 13 activities, price bands, acreage bands, residence, square feet, bedrooms, sale type, land use, HOA, housing type, geography, owner financing and mineral rights. You set them on landwatch.com and paste the link.
- **51 states in one click** (the 50 states plus the District of Columbia), each with an optional property type.
- **Up to 100 searches per run and up to 2,500 listings per search** (100 pages of 25). A listing that two of your searches share is returned and charged once.
- **Monitor mode** (`onlyNewListings`): only new listings and price changes on each scheduled run, tagged `new` or `price_changed`.
- **Plain HTTP, no browser**, 256 MB of memory. A run summary (status per search, pages read, requests, robots.txt state) is saved as the `OUTPUT` record.

### How to use it

#### Basic: one search link

Open LandWatch, set the filters you want, copy the address bar and paste it:

```json
{
  "searchUrls": ["https://www.landwatch.com/montana-land-for-sale/acres-over-1000"],
  "maxResultsPerSearch": 100
}
```

#### Several searches at once

Mix links and states. Each search gets its own `maxResultsPerSearch` allowance, and a listing found by two searches is returned once:

```json
{
  "searchUrls": [
    "https://www.landwatch.com/texas-land-for-sale/harris-county",
    "https://www.landwatch.com/texas-land-for-sale/montgomery-county"
  ],
  "states": ["Wyoming", "Idaho"],
  "propertyType": "hunting",
  "maxResultsPerSearch": 200
}
```

The two links keep their own filters; `propertyType` applies to the states only, so this run also reads hunting land in Wyoming and in Idaho.

#### Daily new land listings in a county

Land investors and wholesalers watch a few counties for anything new. Turn on monitor mode and schedule the run daily (Apify Console, Schedules, Add schedule):

```json
{
  "searchUrls": ["https://www.landwatch.com/texas-land-for-sale/parker-county"],
  "maxResultsPerSearch": 0,
  "onlyNewListings": true
}
```

The first run returns the whole search and sets the starting point. Every later run returns only listings it has not delivered before, plus any listing whose asking price changed since, with `monitor_change` set to `new` or `price_changed`. Keep the same search list: the memory is kept per set of searches, so a different list starts fresh.

#### Price per acre comps for a farm or ranch

Appraisers and buyers compare asking prices per acre in one county and size band. Use LandWatch's own acreage and property type filters, then sort the dataset by `price_per_acre_usd`:

```json
{
  "searchUrls": ["https://www.landwatch.com/nebraska-land-for-sale/farms-ranches/price-250000-499999"],
  "maxResultsPerSearch": 500
}
```

Rows for auction listings have no `price_usd` (LandWatch shows "Auction" instead of a price), so they never skew the comps.

#### Land broker list for a state

Brokers and marketers build lists of active land brokerages. Every row names the brokerage and links its LandWatch profile; top tier listings also carry the brokerage phone LandWatch prints:

```json
{
  "states": ["Montana"],
  "propertyType": "farms_ranches",
  "maxResultsPerSearch": 0
}
```

Group the rows by `broker_company` to see who lists the most land and at what prices. Run it monthly to see who is new.

#### Auction watch

LandWatch has an auction filter in its Sale Type links. Paste the auction search for a state, and read `auction_start` and `auction_end` on each row:

```json
{
  "searchUrls": ["https://www.landwatch.com/texas-land-for-sale/auctions"],
  "onlyNewListings": true
}
```

Schedule it weekly to catch new auctions before their dates.

### Input parameters

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `searchUrls` | array of strings | none (prefilled with the Texas search) | LandWatch search page links, one per line. Every filter in the link is kept. Listing and agent pages are skipped with a note. Up to 100 searches per run, counting states. |
| `states` | array of strings | `[]` | US states to search whole, from a list of 51 (50 states plus the District of Columbia). Names or two letter codes both work through the API. |
| `propertyType` | string | `all` | Used with `states` only: `all`, `undeveloped`, `homesites`, `homes`, `farms_ranches`, `recreational`, `waterfront`, `lakefront`, `commercial`, `hunting`, `horse`, `timberland`, `riverfront`, `oceanfront`. |
| `maxResultsPerSearch` | integer | `100` | Most listings returned per search. `0` means every page, up to 100 pages (2,500 listings). You pay per listing returned. |
| `onlyNewListings` | boolean | `false` | Monitor mode: only listings not returned before for the same searches, plus price changes. Skipped listings are not charged. |

Give at least one search link or one state. A run with neither stops at once with a note and charges nothing for listings.

### What data do you get?

One row per listing. Fields with no value are left out of the row rather than sent as empty.

**The listing**

- `listing_id`, `site_listing_id` (the number after `/pid/` in the link), `title`, `url`, `market_status` (`available` or `under_contract`), `listing_tier` (`diamond`, `platinum`, `gold`, `showcase` or `standard`, LandWatch's ad level), `last_updated`

**Price**

- `price_usd`, `price_display` (as LandWatch prints it, for example `$7,750,000` or `Auction`), `price_per_acre_usd`, `price_change_usd` and `price_change_percent` (the last change, negative for a cut), `auction_start`, `auction_end`

**Land and house**

- `acres`, `property_types` (for example Farms and Ranches, Hunting Property, House), `lake`, `has_house`, `beds`, `baths`, `half_baths`, `home_sqft`

**Location**

- `address` (when the seller gives one), `city`, `county`, `state`, `state_code`, `zip`, `latitude`, `longitude`

**Broker**

- `broker_name`, `broker_company`, `broker_profile_url`, and `broker_phone`. LandWatch prints the phone on search pages for its top tier listings only, and this actor keeps it only when a brokerage company is named, so a private seller's number never reaches a row.

**Photos and media**

- `image_count`, `thumbnail_url`, `image_urls` (every photo for diamond, platinum and gold listings; the main photo for standard listings, because that is all LandWatch's search page carries for them), `has_video`, `has_virtual_tour`, `has_custom_map`

**Search context**

- `search_input`, `search_url`, `search_total_results` (how many listings LandWatch reported for the search), `page`, `position`, `scraped_at`, and `monitor_change` (`new` or `price_changed`, monitor mode only)

#### Stable fields for automations

These fields were present in every one of the 40 rows of our proof runs, and their names will not change:

| Field | What it holds |
|---|---|
| `listing_id` | LandWatch's listing number, the same in every run |
| `url` | Link to the listing on LandWatch |
| `price_display` | Price as LandWatch shows it (a dollar amount or a word such as Auction) |
| `acres` | Parcel size in acres |
| `property_types` | List of LandWatch property types |
| `has_house` | Whether a residence is included |
| `county` | County name, for example Harris County |
| `state_code` | Two letter state code |
| `zip` | ZIP code |
| `latitude` | Latitude of the listing pin |
| `longitude` | Longitude of the listing pin |
| `market_status` | `available` or `under_contract` |
| `broker_company` | Brokerage that lists the property |
| `image_count` | Number of photos on the listing |
| `scraped_at` | When the row was read (ISO 8601) |

`price_usd` and `price_per_acre_usd` were in 38 of the 40 rows: the two without them were auctions, which LandWatch lists without a price.

#### Output examples

Real rows from our proof runs on 1 Oct 2026, trimmed: `image_urls` is cut to two entries, and broker names, phones and profile links are shortened here.

A top tier ranch with a house and the broker phone (Montana farms and ranches search):

```json
{
  "listing_id": "25891980",
  "site_listing_id": "425296476",
  "title": "2,341 Ac Montana Creek Ranch",
  "url": "https://www.landwatch.com/sweet-grass-county-montana-farms-and-ranches-for-sale/pid/425296476",
  "price_usd": 7750000,
  "price_display": "$7,750,000",
  "price_per_acre_usd": 2323.14,
  "acres": 3336,
  "property_types": ["Farms and Ranches", "Recreational Property", "House"],
  "has_house": true,
  "beds": 5,
  "baths": 4,
  "home_sqft": 3300,
  "city": "Big Timber",
  "county": "Sweet Grass County",
  "state": "Montana",
  "state_code": "MT",
  "zip": "59011",
  "latitude": 45.8596,
  "longitude": -109.74425,
  "market_status": "available",
  "listing_tier": "diamond",
  "broker_name": "Caje G.",
  "broker_company": "Whitetail Properties Real Estate",
  "broker_phone": "(406) 239-XXXX",
  "image_count": 93,
  "image_urls": [
    "https://assets.landwatch.com/resizedimages/10000/0/h/80/w/1-5920356210",
    "https://assets.landwatch.com/resizedimages/10000/0/h/80/w/1-5920356212"
  ],
  "has_video": true,
  "has_custom_map": true,
  "last_updated": "2026-09-03T14:29:23.533",
  "search_input": "Montana (farms-ranches)",
  "search_total_results": 249,
  "page": 1,
  "position": 2
}
```

A standard listing with a house and a recent price cut (Harris County, Texas search):

```json
{
  "listing_id": "27595089",
  "title": "PT TR 1J (HOMESITE) ABST 1366 H&TCRR SEC 78 BLK 2",
  "url": "https://www.landwatch.com/harris-county-texas-farms-and-ranches-for-sale/pid/426999584",
  "price_usd": 2510100,
  "price_display": "$2,510,100",
  "price_per_acre_usd": 299892.47,
  "price_change_usd": -239900,
  "price_change_percent": -8.72,
  "acres": 8.37,
  "property_types": ["Farms and Ranches", "House"],
  "has_house": true,
  "beds": 6,
  "baths": 4,
  "home_sqft": 2260,
  "address": "5614 Pitts Road",
  "city": "Katy",
  "county": "Harris County",
  "state_code": "TX",
  "zip": "77493",
  "latitude": 29.853822,
  "longitude": -95.839198,
  "market_status": "available",
  "listing_tier": "standard",
  "broker_company": "Keller Williams Memorial",
  "image_count": 14,
  "image_urls": ["https://assets.landwatch.com/resizedimages/10000/0/h/80/w/1-6538074371"],
  "search_total_results": 3259,
  "position": 12
}
```

An auction, with dates and no price (Harris County, Texas search):

```json
{
  "listing_id": "28872835",
  "title": "Kroger-Anchored Retail Development Site",
  "url": "https://www.landwatch.com/harris-county-texas-commercial-property-for-sale/pid/428275350",
  "price_display": "Auction",
  "acres": 4.89,
  "property_types": ["Commercial Property", "Homesite"],
  "address": "6507 Spencer Highway",
  "city": "Pasadena",
  "county": "Harris County",
  "state_code": "TX",
  "zip": "77505",
  "market_status": "available",
  "auction_start": "2026-10-12T00:00:00",
  "auction_end": "2026-10-14T00:00:00",
  "listing_tier": "standard",
  "broker_company": "Streetwise Retail Advisors",
  "image_count": 7
}
```

A gold tier listing with a full photo set (Harris County, Texas search):

```json
{
  "listing_id": "28107353",
  "title": "8.5 Acres of Unrestricted Texas Living",
  "price_usd": 1650000,
  "price_per_acre_usd": 194117.66,
  "acres": 8.5,
  "property_types": ["Farms and Ranches"],
  "address": "26435 Clay Road",
  "city": "Katy",
  "county": "Harris County",
  "zip": "77493",
  "listing_tier": "gold",
  "broker_company": "Compass Ranch and Land",
  "image_count": 67,
  "has_video": true,
  "has_virtual_tour": true,
  "has_custom_map": true
}
```

### Pricing

You pay per listing delivered to your dataset, plus a flat $0.005 per run whatever memory you choose.

| Event | Free plan | Starter (Bronze) | Scale (Silver) | Business (Gold) and above |
|---|---|---|---|---|
| Listing delivered (`listing-scraped`), per 1,000 listings | $0.00179 | $0.00129 | $0.00099 | $0.00079 |
| Run start (`run-start`), once per run | $0.005 | $0.005 | $0.005 | $0.005 |

Never charged:

- listings skipped in monitor mode because an earlier run already delivered them at the same price;
- a listing that two of your searches share (it is returned and charged once);
- searches that LandWatch refuses, that have no listings, or that robots.txt disallows;
- the note row the actor writes when a run returns nothing, and the `OUTPUT` run summary.

To cap what a run can cost, set a maximum total charge in the run options. The actor stops before a listing the budget cannot pay for.

### FAQ

#### What is LandWatch?

LandWatch.com is one of the largest US marketplaces for land: farms and ranches, hunting land, timberland, recreational property, homesites and land with houses, listed mostly by land brokers. It is part of the Land.com network with Lands of America and Land And Farm.

#### How many listings can I get?

LandWatch shows 25 listings a page. This actor reads up to 100 pages (2,500 listings) per search and up to 100 searches per run. A state like Texas has far more than 2,500 listings (81,061 on 1 Oct 2026), so split a big area into counties, price bands or acreage bands, each its own search link.

#### How fresh is the data?

Every run reads LandWatch live. Nothing comes from a cache. Each row carries `last_updated`, the time LandWatch says the listing last changed, and `scraped_at`, the time the actor read it.

#### Do I need a LandWatch account, an API key or cookies?

No. The actor reads the same public search pages any visitor sees, without signing in.

#### Do I need to set up a proxy?

No. LandWatch refuses most automated requests from data center networks, so the actor tries Apify's standard proxy first and, when LandWatch refuses it, fetches the page through Apify's unblocking proxy. That is built in and included in the price; there is nothing to configure. A page usually takes 4 to 14 seconds.

#### Why does a row have no `price_usd`?

LandWatch lists auctions without an asking price; `price_display` then says `Auction` and the row carries `auction_start` and `auction_end`. A listing with a hidden price has no `price_usd` either. Empty values are left out of the row instead of being sent as zero.

#### Why do some rows have only one photo link, or no broker phone?

LandWatch's search pages carry every photo only for its paid tiers (diamond, platinum and gold); for standard listings they carry the main photo, so `image_urls` holds that one and `image_count` tells you how many the listing has. The broker phone is printed on search pages for top tier listings only. `broker_company` and `broker_profile_url` are on every row.

#### Do I get the full listing description?

Not in this version. The actor reads search pages, which hold the fields listed above but not the long description or the seller's full profile. Open `url` for those.

#### How does monitor mode work with schedules?

With `onlyNewListings` on, the actor remembers which listings, at which price, it delivered for your list of searches. Each later run returns only listings it has not delivered before, plus listings whose price changed, with `monitor_change` set to `new` or `price_changed`. The first run returns everything. Schedule it in Apify Console under Schedules. Changing the list of searches starts a new memory.

#### Does the actor follow robots.txt?

Yes. It reads LandWatch's robots.txt at the start of every run and checks every page and every redirect against it. On 1 Oct 2026 the file allows everything for general crawlers except `/api/`, which this actor never calls.

#### What happens when LandWatch refuses a page?

The actor retries it with a fresh connection (3 tries for a search's first page, 2 for later pages). If a search's first page is refused on every try, that search stops; a later page refused on every try is skipped, and after 3 refused pages in a row the search stops. Nothing is charged for listings that were not delivered. The `OUTPUT` record shows the status of each search and how many requests it took.

#### Which formats can I export?

JSON, CSV, Excel, XML, HTML table and RSS from the dataset page in Apify Console, or through the Apify API.

#### Can I use it from Claude, ChatGPT or another AI agent?

Yes. Add Apify's MCP server (`https://mcp.apify.com`) to your MCP client and the actor is available as a tool. The "Copy to your AI assistant" block above gives an agent everything it needs to call it directly.

#### Is it legal to scrape LandWatch?

The actor collects only publicly visible listing data, the way a visitor's browser shows it, and does not sign in or get past any login. Broker contact details are those LandWatch publishes for business enquiries, and a phone number is kept only when a brokerage company is named. You are responsible for how you use the data, including LandWatch's terms and data protection laws such as GDPR and CCPA.

### Integrations

- **Google Sheets**: send every run's dataset to a sheet with Apify's Google Sheets integration.
- **Make, Zapier and n8n**: start runs and receive results in your workflows.
- **Webhooks**: get a call when a run finishes, for example to post new listings to Slack.
- **API**: start runs and read datasets from any language with the Apify API or the Python and JavaScript clients.
- **MCP clients**: Claude, ChatGPT and other agents through Apify's MCP server.

### More from The Mine Works

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper)
- [MagicBricks Scraper](https://apify.com/themineworks/magicbricks-scraper)
- [Zillow Property Scraper](https://apify.com/themineworks/zillow-property-details)
- [99acres Scraper](https://apify.com/themineworks/99acres-scraper)
- [Zillow Photos Scraper](https://apify.com/themineworks/zillow-photos)
- [Real Estate MCP](https://apify.com/themineworks/real-estate-mcp)
- [Airbnb Scraper](https://apify.com/themineworks/airbnb-scraper)
- [Domain.com.au Property Scraper](https://apify.com/themineworks/domain-property-scraper)
- [realestate.com.au Scraper](https://apify.com/themineworks/realestate-com-au-scraper)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup)
- [JustDial Scraper](https://apify.com/themineworks/justdial-business)

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper)
- [Google News Scraper](https://apify.com/themineworks/google-news)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper)

**Science, health and government data**

- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records)
- [data.gov.in Scraper](https://apify.com/themineworks/india-data-gov-scraper)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data)
- [OpenAlex Scraper](https://apify.com/themineworks/openalex-scholarly-works)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp)
- [Shine.com Jobs Scraper](https://apify.com/themineworks/shine-jobs-scraper)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup)
- [World Bank Trade Scraper](https://apify.com/themineworks/global-trade-data)
- [Y Combinator Scraper](https://apify.com/themineworks/y-combinator-scraper)

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews)
- [Carsales.com.au Scraper](https://apify.com/themineworks/carsales-scraper)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper)

**More tools**

- [Tennis Match & Player Data Scraper](https://apify.com/themineworks/tennis-match-data)

### Support

Found a problem or need a field? Open an issue on the actor's Issues tab and we will answer there. For a new source or a custom build, email dmineworks@gmail.com.

*LandWatch Scraper turns any LandWatch search into rows of price, acres, price per acre, location, broker and photos, and can watch your searches for new listings and price cuts.*

# Actor input Schema

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

One LandWatch search page per line, copied from your browser after you set the filters you want, for example https://www.landwatch.com/texas-land-for-sale, https://www.landwatch.com/texas-land-for-sale/harris-county or https://www.landwatch.com/nebraska-land-for-sale/farms-ranches/price-250000-499999. Every filter LandWatch puts in the link (county, city, region, property type, price, acres, residence, owner financing and so on) is kept. Single listing pages (/pid/...) and agent pages are skipped. Up to 100 searches per run; the same search given twice is read once.

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

Optional. Pick whole states instead of pasting links; each state is one search of all its LandWatch listings (with the property type below if you pick one). For county, price or acreage filters, paste a search link above instead.

## `propertyType` (type: `string`):

Only used with the states above. Search links keep their own filters.

## `maxResultsPerSearch` (type: `integer`):

Most listings to return for each search. LandWatch prints 25 per page, so 100 is 4 pages. 0 means every page, up to 100 pages (2,500 listings) per search; split a bigger search by county or price. You pay per listing returned.

## `onlyNewListings` (type: `boolean`):

For scheduled runs. Returns only listings this actor has not returned before for the same set of searches, plus listings whose price changed since (marked price\_changed in monitor\_change). Listings already delivered are skipped and not charged. The first run returns everything and sets the starting point.

## Actor input object example

```json
{
  "searchUrls": [
    "https://www.landwatch.com/texas-land-for-sale"
  ],
  "states": [],
  "propertyType": "all",
  "maxResultsPerSearch": 25,
  "onlyNewListings": false
}
```

# Actor output Schema

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

No description

## `summary` (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 = {
    "searchUrls": [
        "https://www.landwatch.com/texas-land-for-sale"
    ],
    "maxResultsPerSearch": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/landwatch-land-for-sale-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 = {
    "searchUrls": ["https://www.landwatch.com/texas-land-for-sale"],
    "maxResultsPerSearch": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/landwatch-land-for-sale-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 '{
  "searchUrls": [
    "https://www.landwatch.com/texas-land-for-sale"
  ],
  "maxResultsPerSearch": 25
}' |
apify call themineworks/landwatch-land-for-sale-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/landwatch-land-for-sale-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/uEBysFWdVOhTv0MeS/builds/IM4vhehnDNI90MGWl/openapi.json
