# LandWatch.com Scraper (`parsebird/landwatch-scraper`) Actor

Scrape LandWatch.com land listings and Find an Agent results from any browse URL: price, acreage, property type, location, coordinates, broker, images. Auto-paginates. Export JSON, CSV, Excel.

- **URL**: https://apify.com/parsebird/landwatch-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

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

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.com Scraper

LandWatch.com Scraper extracts **structured land-for-sale and land-agent data from [LandWatch.com](https://www.landwatch.com)** — one of the largest rural property marketplaces in the United States. Paste a **land browse URL** (state, county, price, acreage, or property-type filtered) or a **Find an Agent URL**, and get clean listing or agent records ready for analysis, lead generation, or monitoring.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">
Turn any LandWatch search into an analysis-ready dataset — price, acreage, price per acre, property type, address, county, exact coordinates, all photos, listing broker with phone, and (optionally) full descriptions, price history, media, and complete broker/seller profiles.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Actor: parsebird/landwatch-scraper — scrapes LandWatch.com (US rural land marketplace). Two modes, auto-detected from the URL: LAND SEARCH (a browse URL like https://www.landwatch.com/texas-land-for-sale/price-under-6000) and FIND AN AGENT (https://www.landwatch.com/find-agent/austin-county-t/ or https://www.landwatch.com/find-agent/name/john/). Input: {"startUrl": "https://www.landwatch.com/texas-land-for-sale/price-under-6000", "maxItems": 500, "fetchSellerAgentDetails": false}. maxItems: up to 2500 for land search, up to 3000 for agents (broad land markets are capped by LandWatch at ~500 per URL — narrow by county/price/acreage/type or split URLs). fetchSellerAgentDetails=true adds an extra request per row for full property description, price history, full media, and the broker/seller profile (billed as a separate "enrichment" event). Run via ApifyClient("YOUR_TOKEN").actor("parsebird/landwatch-scraper").call(run_input=input). Land output per listing: id, siteListingId, title, description, price, priceDisplay, pricePerAcre, acres, acresDisplay, propertyTypesLabel, types, address, city, county, state, zip, latitude, longitude, beds, baths, homesqft, brokerName, brokerCompany, brokerPhone, brokerCanonicalUrl, listingLevelTitle, imageUrls, url, insertDate, lastUpdated, priceChangeDate, priceChangeAmount, encodedBoundaryPoints. Agent output per record: id, accountId, companyName, contactName, city, companyState, description, licenseNumber, phoneNumbers, email, url, logoUrl, portraitUrl, sellerListingStats, landStarWinCount. With enrichment, both add details_* fields. Get an API token at https://console.apify.com/account#/integrations. Full API spec: https://apify.com/parsebird/landwatch-scraper/api
```

### What does LandWatch.com Scraper do?

LandWatch.com Scraper is a **LandWatch scraper and rural land data extractor**. LandWatch lists farms, ranches, hunting land, timberland, recreational property, homesites, and commercial land across all 50 states, and this actor reads that public search data into a structured dataset — no LandWatch account or API key required.

🗺️ **Two modes, auto-detected** — give it a **land browse URL** (`/texas-land-for-sale/`, `/marion-county-illinois-land-for-sale/`, with filter segments like `/price-under-6000` or `/over-100-acres`) and it scrapes listings; give it a **Find an Agent URL** (`/find-agent/<location>/` or `/find-agent/name/<name>/`) and it scrapes land brokers and sellers.

📄 **Auto-pagination** — the scraper walks every result page for you. Do not add `/page-2` to the URL.

💰 **Full pricing data** — list price, formatted price, price per acre, short price, price-change amount, percentage, and change date.

📐 **Property detail** — acreage, property types, beds, baths, half baths, home square footage, house flag, video/virtual-tour/Matterport flags, county, region, and exact latitude/longitude.

🖼️ **All photos** — every listing image resolved to a full-resolution URL, plus image count and alt text.

👤 **Listing broker** — broker name, company, phone, and profile URL on every listing.

🔎 **Optional deep enrichment** — turn on **Fetch seller / agent details** to add the full multi-paragraph description, executive summary, property highlights, complete price/acreage history, full media (YouTube, Matterport, Vimeo, Kuula), amenities, MLS data, and the complete broker/seller profile with phone numbers, license, social media, listing stats, and recent/sold listings.

#### Why scrape LandWatch?

- Build a **rural land market dataset** — price per acre, acreage, and property type by state or county
- Track **new land listings** on a route or in a county and get notified when they appear
- Generate **land broker and seller leads** — every listing and every agent record carries contact details
- Feed a **land portal, CRM, or valuation model** with structured LandWatch listings
- Run **supply and price analysis** for farmland, ranchland, hunting, or recreational property across regions

### What data can you extract from LandWatch?

#### Land listings

| Field | Type | Description |
|-------|------|-------------|
| id / siteListingId | number | LandWatch internal id and public listing id (the `pid` in the URL) |
| title | string | Listing headline |
| description | string | Short listing summary (full text added with enrichment as `descriptionFull`) |
| price / priceDisplay / shortPrice | number / string | List price in USD and its formatted forms |
| pricePerAcre | number | Price divided by acreage |
| priceChangeAmount / priceChangePercentage / priceChangeDate | number / string | Most recent price change |
| acres / acresDisplay | number / string | Lot size |
| propertyTypes / propertyTypesLabel / types | number / string / string\[] | Property-type bitmask, readable label, and list |
| address / city / county / state / stateAbbreviation / zip | string | Location parts |
| latitude / longitude | number | Exact coordinates |
| encodedBoundaryPoints | string | Encoded polyline of the parcel boundary, when available |
| beds / baths / halfBaths / homesqft | number | Residence detail (0 for raw land) |
| hasHouse / hasVideo / hasVirtualTour / hasExteriorMatterport | boolean | Media and improvement flags |
| brokerName / brokerCompany / brokerPhone / brokerCanonicalUrl | string | Listing broker |
| listingLevel / listingLevelTitle | number / string | LandWatch listing tier (e.g. "Signature Partner", "Premium Partner") |
| isDiamond / isPlatinum / isGold / isShowcase / isALC | boolean | Listing badges |
| imageUrls | string\[] | Full-resolution photo URLs |
| imageCount / imageAltTextDisplay | number / string | Photo count and alt text |
| insertDate / lastUpdated / onMarketDate / salesDate | string | Listing lifecycle dates |
| url | string | Direct LandWatch listing URL |
| scrapedAt | string | ISO 8601 timestamp of the run |

#### Find an Agent records

| Field | Type | Description |
|-------|------|-------------|
| id / accountId | number | LandWatch account id |
| companyName / contactName | string | Brokerage and contact name |
| description | string\[] | Profile description paragraphs |
| address1 / city / companyState / zip | string | Office address |
| phoneNumbers | object | Office, cell, toll-free, fax, and preferred numbers |
| email / leadRoutingEmail | string | null | Contact email when published |
| licenseNumber | string | Real estate license number when published |
| landStarWinCount | number | LandWatch LandStar award wins |
| sellerListingStats | object | Active / all-time / 3-, 5-, 10-year price and acreage ranges and listing counts |
| logoUrl / portraitUrl | string | Company logo and agent portrait |
| url / canonicalUrl | string | Direct LandWatch profile URL |

#### Enrichment fields (when `fetchSellerAgentDetails` is on)

Land listings gain `descriptionFull`, `formattedDescription`, `executiveSummary`, `highlights`, `directions`, `priceHistory`, `amenities`, `media`, `mlsId`, `mlsName`, `parcelId`, `listingDate`, a full `imageUrls` set, and a flattened `details_*` broker profile. Agent records gain a flattened `details_*` profile including `details_sellerMedia_*` social links, `details_landStarAwards`, `details_otherListings`, `details_soldListings`, and `details_sellerCarouselListings`.

### How to scrape LandWatch.com

1. Open [LandWatch.com Scraper](https://apify.com/parsebird/landwatch-scraper) and click **Try for free**.
2. On [landwatch.com](https://www.landwatch.com), build the search you want — pick a state or county, add price, acreage, and property-type filters — then copy the URL from your browser. Or open **Find an Agent** and copy that URL.
3. Paste it into **Start URL**. Do not add `/page-2` — pagination is automatic.
4. Set **Max items** (start low to keep the first run cheap and fast).
5. Optionally turn on **Fetch seller / agent details** for full descriptions, price history, media, and complete broker/seller profiles.
6. Click **Start**, then export the dataset as **JSON, CSV, Excel, or HTML**, or pull it via the API.

#### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| startUrl | string | **Yes** | — | A LandWatch land browse URL or a Find an Agent URL (`/find-agent/<location>/` or `/find-agent/name/<name>/`) |
| maxItems | integer | No | 50 | Unique rows to collect. Up to 2,500 for land search, up to 3,000 for agents |
| fetchSellerAgentDetails | boolean | No | `false` | Add full property/broker/seller detail per row (billed as a separate enrichment event) |
| proxy | object | No | Apify Proxy | Proxy configuration. Apify Proxy (automatic) works in most regions; switch to Residential US if you see blocks |

### Output example

Land listing:

```json
{
  "id": 26379607,
  "siteListingId": 425784102,
  "title": "308-Acre Pope Co Trophy Farm",
  "description": "A rare blend of fertile farmland and elite recreational ground offering multiple access points, scenic build sites, and secluded privacy in a premier outdoor setting.",
  "price": 1346536,
  "priceDisplay": "$1,346,536",
  "shortPrice": "$1.3M",
  "pricePerAcre": 4378.98,
  "priceChangeAmount": 300125,
  "priceChangeDate": "2026-07-30T08:41:19.95",
  "acres": 307.5,
  "acresDisplay": "308 acres",
  "propertyTypes": 387,
  "propertyTypesLabel": "Farms and Ranches, Hunting Property, Horse Property",
  "types": ["Farms and Ranches", "Hunting Property", "Horse Property"],
  "address": "413 Rock Road",
  "city": "Eddyville",
  "county": "Pope County",
  "state": "Illinois",
  "stateAbbreviation": "IL",
  "zip": "62928",
  "latitude": 37.40913,
  "longitude": -88.602165,
  "encodedBoundaryPoints": "ymicFh}w{O??C???K?FdCDdB@n@?p@?mB?qC?W?u@",
  "beds": 0,
  "baths": 0,
  "homesqft": 0,
  "hasHouse": false,
  "hasVideo": true,
  "brokerName": "Jarod Jackson",
  "brokerCompany": "Hunt & Farm Realty, LLC",
  "brokerPhone": "(618) 653-2869",
  "brokerCanonicalUrl": "https://www.landwatch.com/profile/jarod-jackson/2922452",
  "listingLevel": 30,
  "listingLevelTitle": "Signature Partner",
  "isDiamond": true,
  "imageCount": 20,
  "imageUrls": [
    "https://assets.landwatch.com/resizedimages/0/1920/w/80/w/1-6008490210",
    "https://assets.landwatch.com/resizedimages/0/1920/w/80/w/1-6008398099"
  ],
  "insertDate": "2026-02-19T14:28:03.79",
  "lastUpdated": "2026-09-03T14:29:42.5",
  "url": "https://www.landwatch.com/pope-county-illinois-farms-and-ranches-for-sale/pid/425784102",
  "recordType": "land",
  "scrapedAt": "2026-09-10T10:29:14Z",
  "isEnriched": false
}
```

Find an Agent record:

```json
{
  "id": 174024,
  "accountId": 174024,
  "companyName": "HomeLand Properties",
  "contactName": "HomeLand Properties",
  "city": "Huntsville",
  "companyState": "TX",
  "companyZip": "77340",
  "description": ["For over 30 years, HomeLand Properties, Inc. has been a leading brokerage in East Texas Real Estate..."],
  "licenseNumber": "",
  "landStarWinCount": 5,
  "phoneNumbers": {
    "officePhone": "(936) 295-2500",
    "cellPhone": "(936) 295-2500",
    "preferredPhone": "(936) 209-7560"
  },
  "email": null,
  "sellerListingStats": {
    "activeListingCount": 109,
    "activePriceMin": 53625,
    "activePriceMax": 8995000,
    "activeAcreageMin": 0.62,
    "activeAcreageMax": 333
  },
  "logoUrl": "https://assets.landwatch.com/resizedimages/150/150/l/80/w/1-2703746095",
  "portraitUrl": "https://assets.landwatch.com/resizedimages/150/150/l/80/w/1-3773023884",
  "url": "https://www.landwatch.com/profile/homeland-properties/174024",
  "recordType": "agent",
  "scrapedAt": "2026-09-10T10:31:00Z",
  "isEnriched": false
}
```

Download results in **JSON, CSV, Excel, or HTML** from the Apify Console or via the API.

### Use cases

- 📊 **Land market research** — price-per-acre and supply datasets by state, county, or property type
- 🔔 **New-listing monitoring** — schedule the actor and alert on fresh land listings in a target county
- 🧲 **Broker and seller lead lists** — pull contact details from listings and from the Find an Agent directory
- 🏞️ **Land portals and valuation tools** — power a land-finder or comp model with structured LandWatch data
- 🤖 **Dashboards and bots** — feed a BI dashboard or chatbot with live rural property listings
- 💹 **Investment analysis** — compare asking prices, acreage, and price history for farmland and ranchland across regions

### How it works

1. **URL parse** — the Start URL is classified as a land search or a Find an Agent search, and any `/page-N` suffix is stripped.
2. **Paginate** — the scraper reads LandWatch's public search results page by page until it reaches your `maxItems`, the last page, or LandWatch's own page cap.
3. **Map** — each result is mapped to a clean record, with photo, logo, and portrait document ids resolved to full URLs and relative links made absolute.
4. **Enrich (optional)** — when **Fetch seller / agent details** is on, each land listing and each agent gets one extra request that adds the full description, price history, media, amenities, and the complete broker/seller profile.
5. **Output** — records are pushed to the dataset and can be exported or pulled via API.

The actor uses lightweight requests and stays under 512 MB — no browser required.

### How much does it cost to scrape LandWatch?

LandWatch.com Scraper uses [pay-per-event pricing](https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event). Platform compute is included.

| Event | What it is | Free | Bronze | Silver | Gold |
|-------|-----------|------|--------|--------|------|
| Listing | One land listing or agent record pushed to the dataset | **$0.99 / 1,000** | $0.89 / 1,000 | $0.79 / 1,000 | $0.69 / 1,000 |
| Enrichment | One row's full property/broker/seller detail fetch (only when `fetchSellerAgentDetails` is on) | **$0.49 / 1,000** | $0.44 / 1,000 | $0.39 / 1,000 | $0.34 / 1,000 |

**Example:** 500 land listings without enrichment costs about $0.50 on the Free plan. The same 500 listings with **Fetch seller / agent details** on costs about $0.50 + $0.25 = $0.75. Rows dropped by the result cap are never charged.

You can run LandWatch.com Scraper with the [free monthly usage credits](https://apify.com/pricing) on every Apify plan.

### Integrations and API access

LandWatch.com Scraper works with the full [Apify platform](https://docs.apify.com/platform):

- **API access** — run it and fetch results via the [REST API](https://docs.apify.com/api/v2) or the Python and JavaScript clients
- **Scheduling** — set up recurring runs with the [Apify Scheduler](https://docs.apify.com/platform/schedules) to track new listings
- **Webhooks** — trigger downstream work when a run finishes
- **Integrations** — push data to [Google Sheets](https://apify.com/apify/google-sheets), [Slack](https://docs.apify.com/platform/integrations/slack), [Zapier](https://docs.apify.com/platform/integrations/zapier), [Make](https://docs.apify.com/platform/integrations/make), Airtable, and more

#### Python example

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run_input = {
    "startUrl": "https://www.landwatch.com/texas-land-for-sale/price-under-6000",
    "maxItems": 500,
    "fetchSellerAgentDetails": False,
}

run = client.actor("parsebird/landwatch-scraper").call(run_input=run_input)

for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row["price"], row["acres"], row["county"], row["url"])
```

#### JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const input = {
    startUrl: 'https://www.landwatch.com/find-agent/austin-county-t/',
    maxItems: 300,
    fetchSellerAgentDetails: true,
};

const run = await client.actor('parsebird/landwatch-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((a) => console.log(`${a.companyName}\t${a.phoneNumbers?.preferredPhone}\t${a.url}`));
```

### Pricing

| Event | Price per event (Free) | Price per 1,000 |
|-------|------------------------|-----------------|
| listing | $0.00099 | **$0.99** |
| enrichment | $0.00049 | **$0.49** |

Bronze, Silver, and Gold plans pay less — see the cost section above.

### ⚠️ Limitations

- **Land search:** up to 2,500 unique listings per run. Broad markets are capped by LandWatch at roughly 500 results per URL — narrow big markets (county, price, acreage, type) or split across URLs / runs. For large-scale scraping, message us on the Issues tab.
- **Agents search:** up to 3,000 per run. Very large markets may not yield every profile you expect in one go — use narrower search filters or split across URLs / runs. For large-scale scraping, message us on the Issues tab.
- LandWatch may change their site; if something breaks, message us on the **Issues** tab.
- This tool only uses public data visible on the site.

### FAQ

**Where does the data come from?**
LandWatch's public land search, listing pages, and Find an Agent directory — the same data anyone browsing [landwatch.com](https://www.landwatch.com) sees. No login and no LandWatch account is required.

**How do I scrape a specific state, county, or price range?**
Build the search on landwatch.com with the filters you want, then copy the resulting URL (e.g. `https://www.landwatch.com/marion-county-illinois-land-for-sale/price-under-500000`) into **Start URL**. The scraper follows whatever the URL contains.

**Why did my land search return about 500 results when there are thousands of listings?**
LandWatch caps browse pagination at 20 pages (about 500 listings) per URL. Split the market by county, price band, acreage band, or property type and run each URL — the actor de-duplicates within a run.

**What is the difference between the Listing and Enrichment events?**
Listing is charged once per row saved. Enrichment is only charged when **Fetch seller / agent details** is on, once per row that gets the extra detail fetch (full description, price history, media, and the broker/seller profile).

**Can I get agent contact details?**
Yes. Every land listing includes the broker name, company, and phone. The Find an Agent mode returns the full brokerage directory with office address, phone numbers, license number, and listing stats; enrichment adds social links, email (when published), and recent and sold listings.

**Can I scrape both land listings and agents in one run?**
Each run takes one Start URL and one mode. Run the actor twice, or on a [schedule](https://docs.apify.com/platform/schedules) with different URLs.

**Can I schedule recurring runs?**
Yes — use [Apify scheduling](https://docs.apify.com/platform/schedules) and webhooks to keep a listings or agents feed fresh.

**Found a bug or need a field added?**
Open the **Issues** tab on the Actor page.

### Is it legal to scrape LandWatch?

LandWatch.com Scraper collects publicly available information: land listings and broker/agent contact details that LandWatch publishes for anyone to browse. It does not log in, submit inquiries, or access private data.

Scraping public data is generally legal, as reaffirmed by the [US Ninth Circuit in hiQ Labs v. LinkedIn](https://www.eff.org/deeplinks/2022/04/scraping-public-websites-still-isnt-crime-court-reaffirms). Make sure your use complies with applicable law and with LandWatch's Terms of Use. This actor is independent and not affiliated with or endorsed by LandWatch or the Land.com network. See Apify's guide to [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### Related actors

- [Trulia Property Scraper](https://apify.com/parsebird/trulia-property-scraper) — US homes for sale and rent with prices and details
- [Apartments.com Scraper & API](https://apify.com/parsebird/apartments-com-scraper) — US rental listings, prices, and property detail
- [Craigslist Real Estate Scraper](https://apify.com/parsebird/craigslist-real-estate-scraper) — for-sale and rental listings from Craigslist
- [RentCafe Scraper](https://apify.com/parsebird/rentcafe-scraper) — US apartment listings and floor plans
- [BiggerPockets Scraper](https://apify.com/parsebird/bigger-pockets-scraper) — real estate investing forum and market data

# Actor input Schema

## `startUrl` (type: `string`):

A LandWatch land browse URL (e.g. https://www.landwatch.com/illinois-land-for-sale/ or with filters like /price-under-6000, /over-100-acres) OR a Find an Agent URL (/find-agent/<location>/ or /find-agent/name/<name>/). Do not add /page-2 — pagination is automatic.

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

How many unique rows to collect per run. Up to 2,500 for land search and up to 3,000 for Find an Agent search. Broad land markets are capped by LandWatch at ~500 results per URL — narrow by county, price, acreage or type, or split across URLs.

## `fetchSellerAgentDetails` (type: `boolean`):

Off by default (fastest runs). When on, each land listing and each agent gets an extra request that fills in the full property description, price history, full media, and the broker / seller profile. Charged as a separate Enrichment event.

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

LandWatch is behind Akamai. Apify Proxy (automatic) works in most regions; switch to Residential US if you see blocks.

## Actor input object example

```json
{
  "startUrl": "https://www.landwatch.com/texas-land-for-sale/price-under-6000",
  "maxItems": 50,
  "fetchSellerAgentDetails": false,
  "proxy": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "startUrl": "https://www.landwatch.com/texas-land-for-sale/price-under-6000",
    "maxItems": 50,
    "fetchSellerAgentDetails": false,
    "proxy": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/landwatch-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 = {
    "startUrl": "https://www.landwatch.com/texas-land-for-sale/price-under-6000",
    "maxItems": 50,
    "fetchSellerAgentDetails": False,
    "proxy": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/landwatch-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 '{
  "startUrl": "https://www.landwatch.com/texas-land-for-sale/price-under-6000",
  "maxItems": 50,
  "fetchSellerAgentDetails": false,
  "proxy": {
    "useApifyProxy": true
  }
}' |
apify call parsebird/landwatch-scraper --silent --output-dataset

```

## MCP server setup

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