Land.com Rural Land & Farm Scraper (US) avatar

Land.com Rural Land & Farm Scraper (US)

Pricing

from $0.56 / 1,000 results

Go to Apify Store
Land.com Rural Land & Farm Scraper (US)

Land.com Rural Land & Farm Scraper (US)

Scrapes rural land, farms, ranches and acreage for sale from Land.com, the largest US rural-property marketplace. Search any state and property type; returns price, full address, description and seller contact, with an optional detail pass for acreage and lot specs.

Pricing

from $0.56 / 1,000 results

Rating

0.0

(0)

Developer

Ibnu Adzim

Ibnu Adzim

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Scrapes rural land, farms, ranches and acreage for sale from Land.com — the largest US rural-property marketplace. A data-type none of this portfolio's other 15 real-estate actors cover: they are all houses/apartments, this is raw land.

Public data only. No login, no cookies, no browser.

The one thing you need to know before using this

The search AND detail pages are behind Akamai Bot Manager, which serves a disguised HTTP 200 "behavioral content" challenge — it looks like a normal response by status code alone. Only 3 of 9 TLS profiles tried this session bypass it on both surfaces (chrome99_android, safari17_0, safari17_2_ios) — this actor's pool leads with that intersection.

More importantly: recon evidence points to the gate reacting to request velocity from one IP, not just TLS fingerprint — a clean profile ladder degraded to fully blocked after a burst of unpaced requests and did not recover on its own. This actor defaults to Apify Residential proxy (rotates exit IPs) plus a conservative pace (minRequestInterval=2s, maxConcurrency=3) for that reason — turning either down is likely to reproduce the block. See CRAWLING_METHOD.md §3 for the full ladder and the IP-reputation evidence.

What you get

Three record types share one dataset, told apart by recordType.

PROPERTY — one row per listing

Search rows (listing) already carry price, full street address, description and the listing agent's name/phone — no detail fetch is strictly required. Turn on Fetch listing detail pages to also attach propertyDetail, which adds fields genuinely absent from search: acreage, lot description, terrain, utilities and more, under propertyDetail.mainEntity.additionalProperty.

SEARCH_SUMMARY — one row per (state, property type) searched

Pages fetched, rows returned, a best-effort total (see notes below), and pathApplied — whether Land.com actually searched what was asked (see "Notes on reliability").

ERROR — one row per input that failed

So every entry in Searches maps to at least one output row, success or failure.

Input

FieldWhat it does
Searcheslist of {state, propertyType}state is a full US state name ("Texas", "Montana"); propertyType defaults to all-land
Fetch listing detail pagesadds acreage/lot-description/terrain fields not present in search (default on)
Max properties / max pages per searchpagination caps — Land.com itself hard-clamps at 20 pages / 500 rows per search regardless
Max concurrent requests / Min seconds between requestskept conservative by default — see the WAF note above

Example

{
"queries": [
{"state": "Texas", "propertyType": "ranches"},
{"state": "Montana"}
],
"includePropertyDetails": true,
"maxItems": 100
}

Valid propertyType values

all-land, cheap-land, undeveloped-land, farms, ranches, houses-with-land. See CRAWLING_METHOD.md §6 for how each was verified.

Notes on reliability

  • Active WAF (Akamai) — see above. Residential proxy is hardcoded as a fallback in main.py, not only the input schema default, so an API/CLI run that omits proxyConfiguration never silently goes direct. Cloud verification found success rate varies by propertyType: cheap-land and ranches cleared within a few retries every time tried, while all-land (the single broadest, highest-value search on the site) is consistently the hardest to get through and may need several actor runs. See CRAWLING_METHOD.md §3 for the evidence.
  • A 500-row-per-search ceiling is real and self-reported, not a bug: Land.com clamps every (state, propertyType) combination to 20 pages regardless of true inventory (Texas alone has tens of thousands of listings). Query more propertyType values for the same state to reach further into a large state's inventory.
  • A category that doesn't apply fails clean, not silently-wrong: an unrecognised propertyType widens to the state's full unfiltered baseline upstream (verified live) — this actor detects that via Land.com's own canonical-URL field and refuses to page further, reporting pathApplied: false with zero PROPERTY rows for that entry, rather than shipping mislabeled data.
  • Multi-word state slugs are unverified (only Texas was confirmed live this session) — a wrong guess answers a clean HTTP 400 (invalid_path), never silent-wrong data. See CRAWLING_METHOD.md §7.
  • estimatedTotalListings is best-effort, parsed from page copy, not a structured field — Land.com's JSON-LD never exposes a true total. Not used for any pagination logic.
  • A de-listed detail page answers a clean HTTP 404 — the search row is still emitted, with propertyDetail: null.

Output envelope

Every record carries _input, _source and _scrapedAt. Upstream field names pass through verbatim under listing (and propertyDetail when requested) — no renaming.

See CRAWLING_METHOD.md for the full reverse-engineering trail, including the complete TLS profile ladder, the IP-reputation evidence, and what was NOT verified this session.