Land.com Scraper | $0.8 / 1k | All-In-One avatar

Land.com Scraper | $0.8 / 1k | All-In-One

Pricing

from $0.80 / 1,000 results

Go to Apify Store
Land.com Scraper | $0.8 / 1k | All-In-One

Land.com Scraper | $0.8 / 1k | All-In-One

Extract structured Land.com property listings and agent profiles with contacts, pricing, acreage, locations, media, and broker data. Built for enterprise-grade land intelligence, lead enrichment, market analysis, and automated real estate data pipelines.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

Fatih Tahta

Fatih Tahta

Maintained by Community

Actor stats

2

Bookmarked

9

Total users

3

Monthly active users

11 days ago

Last modified

Share

Land.com Scraper

Slug: fatihtahta/land-com-scraper

Overview

Land.com Scraper collects structured public data from land and rural property listings on Land.com, including listing identifiers, titles, descriptions, pricing, acreage, location details, broker information, media, and other property attributes. It can also be used for directory-style agent searches when you want seller, broker, or agent discovery instead of listing inventory. Land.com is a widely used marketplace for land, ranch, farm, recreational, and rural property listings, which makes it a valuable source for market visibility and property discovery. The actor turns that public information into consistent JSON records you can reuse across analysis, reporting, enrichment, and monitoring workflows. This helps teams automate repetitive collection work, reduce manual copy-paste, and keep datasets fresh with less effort.

Why Use This Actor

  • Market research and analytics: Track listing volume, pricing, acreage, status changes, and regional inventory patterns for specific markets or property categories.
  • Product and content teams: Identify listing themes, featured property types, and content trends to inform landing pages, editorial calendars, and marketplace strategy.
  • Developers and data engineers: Feed structured listing data into ETL jobs, dashboards, internal catalogs, and downstream APIs without building a custom ingestion flow.
  • Lead generation and enrichment: Find relevant listings, brokers, and market activity to support prospecting, qualification, and CRM enrichment workflows.
  • Monitoring and competitive tracking: Watch targeted geographies, fresh listings, price reductions, and brokerage presence over time to spot changes quickly.

Input Parameters

Provide any combination of queries and filters. Leave optional fields empty for broader coverage.

ParameterTypeDescriptionDefault
locationstringStarting search area for listings. Enter a city, county, state, ZIP code, or similar place name.
property_typestring[]Property categories to include. Allowed values: ranch, homesite, farm, recreational, timberland, horse, waterfront, beachfront, lakefront, riverfront, commercial, hunting, undeveloped.[]
sale_typestring[]Listing sale formats to include. Allowed values: sale, auction.["sale", "auction"]
listing_statusstring[]Listing stages to include. Allowed values: available, pending, sold, off_market.["available", "pending"]
publication_datestringLimit results to recently published listings. Allowed values: past_24_hours, past_7_days, past_30_days, past_60_days.
keywordstringKeyword or phrase to match, such as cabin, hunting land, or owner financing.
owner_financingbooleanWhen true, keeps only listings that mention owner financing.false
nineral_rightsbooleanWhen true, keeps only listings that mention mineral rights.false
price_reduction_daysstringLimit results to listings with recent price reductions. Allowed values: past_3_days, past_7_days, past_30_days, past_60_days, past_90_days.
have_mediastring[]Require specific media types on the listing. Allowed values: virtual_tour, video, custom_map.[]
activitesstringFocus on a specific activity-oriented use case. Allowed values: aquatic_sporting, aviation, beach, boating, camping, canoeing_kayaking, conservation, fishing, golfing, horseback_riding, hunting, off_roading, rving, skiing.
hoastringHOA preference for the property. Allowed values: no, yes_mandatory, yes_voluntary.
housing_typestringHousing type to target on the property. Allowed values: barndominium, cabin, cottage, guest_house, lake_house, mobile_home, tiny_home.
geographystringGeographic setting to target. Allowed values: beachfront, desert, island, lakefront, mountain, off_grid, resort, riverfront, rural.
land_usagestringIntended land-use category. Allowed values: homestead, hobby_farm, orchard, pasture, poultry_farm, vineyard.
sort_bystringSort order for results. Allowed values: default, acres_small_to_large, acres_large_to_small, newest, price_low_to_high, price_high_to_low, price_per_acre_low_to_high, price_per_acre_high_to_low, recently_updated.default
residencestringWhether to include listings with a residence, without one, or either. Allowed values: either, yes, no.either
min_bedroomstringMinimum bedroom count. Allowed values: 1_plus, 2_plus, 3_plus, 4_plus, 5_plus.
min_bathroomstringMinimum bathroom count. Allowed values: 1_plus, 2_plus, 3_plus, 4_plus, 5_plus.
min_priceintegerMinimum listing price to include.
max_priceintegerMaximum listing price to include.
min_acreintegerMinimum parcel size in acres.
max_acreintegerMaximum parcel size in acres.
min_areaintegerMinimum building area in square feet.
max_areaintegerMaximum building area in square feet.
agents_searchbooleanSwitches the run to agent and brokerage directory results instead of property listings.false
agents_locationstringCity, county, or state to use for agent directory searches. Required when agents_search is true.
agents_typestringAgent or seller profile type to include. Allowed values: all, real_estate_broker, real_estate_agent, land_auctioneer, property_owner, land_retailer.all
maximize_coveragebooleanExpands collection to capture more matching listings from a given search.true
limitintegerMaximum number of records to save per search input. Useful for testing, sampling, or controlling dataset size.

Input selection tips

  • Use a broad location by itself when you want a wide market view, early-stage discovery, or a larger inventory sample for analysis.
  • Add narrower filters such as property_type, listing_status, publication_date, keyword, or price and acreage ranges when you already know the segment you want to track.
  • Leave maximize_coverage enabled when your goal is broader collection across a market. Turn it off only when you want a tighter, more direct result set for review or sampling.
  • Start with a smaller limit for testing, QA, or schema validation. Increase the limit once your search settings are returning the right type of records.
  • Use agents_search only when you want broker, agent, auctioneer, owner, or retailer directory results rather than property listings.

When to use agent scraping

Use agent scraping when your goal is to understand who is active in a market, not just which properties are listed there. It is useful for brokerage research, lead enrichment, territory mapping, partner discovery, and tracking which firms or agents have an active presence in a specific state, county, or city.

To run an agent-focused search, enable agents_search, set agents_location, and optionally narrow the results with agents_type. This mode is a good fit when you want contact and company details, market presence signals, or broker-level inventory context instead of individual listing records.

Example Inputs

Scenario: Broad location-based inventory search

{
"location": "Montana",
"property_type": ["ranch", "recreational"],
"sale_type": ["sale"],
"listing_status": ["available"],
"sort_by": "newest",
"limit": 250
}

Scenario: Fresh owner-financed listings with media

{
"location": "Arizona",
"keyword": "off grid",
"owner_financing": true,
"publication_date": "past_7_days",
"have_media": ["video", "custom_map"],
"geography": "desert",
"limit": 150
}

Scenario: Agent directory search

{
"agents_search": true,
"agents_location": "Texas",
"agents_type": "real_estate_broker",
"maximize_coverage": true,
"limit": 100
}

Common Workflows

  • Monitor new ranch listings in Montana: Set location to Montana, choose property_type as ranch, use listing_status such as available, and sort by newest.
  • Track recent price reductions in a target state: Use a state-level location with price_reduction_days and optional price or acreage filters to monitor listings with fresh pricing changes.
  • Find owner-financed rural land: Combine location, owner_financing, and optional filters like geography, land_usage, or keyword to focus on alternative purchase opportunities.
  • Search brokers in Texas: Enable agents_search, set agents_location to Texas, and optionally narrow with agents_type for broker or agent-specific discovery.
  • Compare recreational versus hunting inventory: Run separate searches for the same location using property_type values such as recreational and hunting to compare supply and pricing patterns.
  • Validate a search before scaling up: Start with your target filters and a smaller limit to confirm the dataset shape, then raise the limit for broader collection.

Output

6.1 Output destination

The actor writes normalized real estate records to the default Apify dataset. Property searches produce property_listing rows. Agent-directory searches produce agent rows.

6.2 Record envelope (all items)

Every record includes a stable record envelope:

  • record_type (string, required): Record category. Current values: property_listing, agent.
  • record_id (string, required): Stable Land.com identifier preserved as a string.
  • source_context (object, required): Source, URL, page, and seed context for audit and attribution.
  • entity (object, required): Human-readable title, description, and canonical URL.

Recommended idempotency key: record_type + ":" + record_id

Use this key for deduplication and upserts when the same record appears in multiple runs, search inputs, or refresh cycles.

6.3 Examples

Example: property listing (record_type = "property_listing")

{
"record_type": "property_listing",
"record_id": "24122645",
"source_context": {
"source_name": "Land.com",
"source_domain": "land.com",
"source_url": "https://www.land.com/Texas/all-land",
"listing_url": "https://www.land.com/property/example-listing/24122645",
"seed": {
"id": "3149885e16f6",
"type": "query",
"value": "example-state | min_price=1000000 | max_price=1250000"
},
"page_index": 0
},
"entity": {
"title": "Example Ranch Listing",
"description": "This example property description shows the typical shape of listing text returned by the actor.",
"url": "https://www.land.com/property/example-listing/24122645"
},
"listing": {
"listing_id": "24122645",
"canonical_url": "https://www.land.com/property/example-listing/24122645"
},
"pricing": {
"amount": 1037000,
"display_price": "$1,037,000",
"currency": "USD",
"price_change": {
"amount": 0,
"ratio": 0
},
"price_per_acre": 18205.76
},
"location": {
"street_address": "123 Example Ranch Road",
"city": "Example City",
"county": "Example County",
"state": "Example State",
"postal_code": "12345",
"latitude": 38.221,
"longitude": -120.553
},
"property": {
"acres": 56.96,
"home_sqft": 1800,
"bedrooms": 3,
"bathrooms": 2,
"half_bathrooms": 0
},
"media": {
"primary_image_url": "https://assets.land.com/resizedimages/500/600/l/80/w/1-5610824400",
"thumbnail_url": "https://assets.land.com/resizedimages/500/600/l/80/w/1-5610824400",
"image_urls": [
"https://assets.land.com/resizedimages/500/600/l/80/w/1-5610824400"
],
"image_count": 55,
"has_video": false,
"has_virtual_tour": false,
"has_custom_map": false,
"has_exterior_matterport": false
},
"contact_details": {
"name": "Example Land Brokerage",
"contact_url": "https://www.land.com/member/example-land-brokerage/8876"
},
"relationships": {
"agent": {
"name": "Example Land Brokerage",
"company": "Example Land Brokerage",
"company_logo_url": "https://assets.land.com/resizedimages/70/0/h/80/w/1-3759924082",
"profile_url": "https://www.land.com/member/example-land-brokerage/8876"
}
},
"attributes": {
"property_types": [
"Ranches",
"Recreational Property",
"Horse Property"
],
"property_type_code": 262,
"listing_level": 30,
"listing_level_label": "Signature Partner",
"status_code": 2,
"has_house": true
}
}

Example: agent (record_type = "agent")

{
"record_type": "agent",
"record_id": "174024",
"source_context": {
"source_name": "Land.com",
"source_domain": "land.com",
"source_url": "https://www.land.com/api/seller/search/0/example-state/page-0/sort-order-0/sub-type-0/",
"profile_url": "https://www.land.com/member/example-land-group/174024",
"seed": {
"id": "102980d317d6",
"type": "agents",
"value": "example-state"
},
"page_index": 0
},
"entity": {
"title": "Example Land Group",
"description": "This example profile description shows the typical shape of public agent or brokerage profile text.",
"url": "https://www.land.com/member/example-land-group/174024",
"external_ids": {
"agent_id": "174024"
}
},
"agent": {
"id": "174024",
"contact_name": "Example Land Group",
"company": "Example Land Group",
"website": "https://www.examplelandgroup.com/",
"profile_url": "https://www.land.com/member/example-land-group/174024",
"account_type": 41,
"account_sub_type_id": 5,
"is_active": true,
"is_free": false,
"is_seller": false,
"land_star_win_count": 5,
"description_sections": [
"This example profile description shows the typical shape of public agent or brokerage profile text.",
"It may include market coverage, service areas, experience, and a summary of how the company presents itself on its public profile."
]
},
"brokerage": {
"name": "Example Land Group",
"website": "https://www.examplelandgroup.com/",
"license_number": "TX-12345"
},
"location": {
"street_address": "123 Example Avenue",
"city": "Example City",
"state": "EX",
"postal_code": "12345",
"seo_text": "in Example City, EX"
},
"contact_details": {
"phone": "(123) 456-7890",
"phones": {
"preferred": "(123) 456-7890",
"office": "(123) 555-0100",
"cell": "(123) 555-0199",
"tracking": "(123) 456-7890"
}
},
"media": {
"portrait_url": "https://assets.land.com/resizedimages/500/600/l/80/w/1-3773023884",
"company_logo_url": "https://assets.land.com/resizedimages/70/0/h/80/w/1-2703746095"
},
"metrics": {
"listing_stats": {
"active_price_min": 53625,
"active_price_max": 9950000,
"active_acreage_min": 0.1,
"active_acreage_max": 800,
"active_listing_count": 116,
"all_time_listing_count": 0
}
},
"attributes": {
"alc_certified": false,
"alc_advanced_certified": false,
"badge_id": 2703746022,
"listing_count": 0,
"courtesy_listing_count": 0,
"tier_listing_count": 0,
"upgrade_listing_count": 0,
"total_rows": 0,
"sms_notifications": false,
"opt_in_lead_targeting": true
}
}

Field reference

Property listing fields (record_type = "property_listing")

  • record_id (string, required): Stable Land.com listing identifier.
  • entity.title / entity.description / entity.url: Main display identity and canonical URL.
  • source_context.listing_url: Public listing audit URL.
  • listing: Listing identifiers, canonical URL, status fields, MLS ID, price-change details, and listing history.
  • pricing: Asking price, displayed price text, currency, and price-per-acre values.
  • location: Address, city, county, state, postal code, region, coordinates, and boundary data when available.
  • property: Acreage, residence size, bedroom and bathroom counts, parcel ID, property types, amenities, and directions.
  • media: Primary image, thumbnail, gallery URLs, image counts, tours, maps, and media availability flags.
  • contact_details: Public listing-contact name, phone, email, website, and contact URL when available.
  • relationships.agent: Primary listing agent or brokerage contact attached to the listing.
  • availability: Listing status and availability windows when provided.
  • metrics: Source-reported counts and event-derived counters for listing activity.
  • attributes: Source-specific labels, listing tiers, status codes, marketing badges, breadcrumbs, map overlays, and other meaningful source-provided values.

Agent fields (record_type = "agent")

  • record_id (string, required): Stable Land.com profile identifier.
  • entity.title / entity.description / entity.url: Main profile identity and canonical URL.
  • source_context.profile_url: Public profile audit URL.
  • agent: Contact name, company, website, profile URL, license number, account-type codes, activity flags, LandStar count, and description sections.
  • location: Public profile address, city, state, postal code, and display location text.
  • contact_details: Public phone numbers and named phone channels.
  • media: Portrait and company logo URLs.
  • metrics.listing_stats: Source-provided active and historical inventory ranges and counts.
  • attributes: Profile badges, listing-count fields, notification flags, lead-targeting flags, and other source-provided profile attributes.

Output usage guidance

  • Use the dataset to power market dashboards that track listing volume, pricing, acreage, and status by geography or property category.
  • Enrich CRM or lead pipelines with listing context, broker details, and market activity for outreach, qualification, or account research.
  • Schedule recurring runs to monitor new inventory, price changes, and listing movement over time.
  • Compare recurring datasets using record_type + ":" + record_id to detect new records, removed records, or field-level changes across runs.
  • Export results to spreadsheets, BI tools, or reporting systems for ad hoc analysis and stakeholder reporting.

Data guarantees & handling

  • Best-effort extraction: fields may vary by region, session, availability, and UI experiments.
  • Optional fields: null-check in downstream code.
  • Deduplication: recommend record_type + ":" + record_id.

How to Run on Apify

  1. Open the actor in Apify Console.
  2. Configure your search parameters, such as location, property type, listing status, keyword, or agent search mode.
  3. Set the maximum number of outputs you want to collect with the limit field.
  4. Click Start and wait for the run to finish.
  5. Download the dataset in JSON, CSV, Excel, or another supported format.

Scheduling & Automation

Scheduling

Automated Data Collection

You can schedule recurring runs to keep your property or agent dataset current without manual restarts. This is useful for monitoring listing freshness, pricing changes, and regional inventory over time.

  • Navigate to Schedules in Apify Console
  • Create a new schedule (daily, weekly, or custom cron)
  • Configure input parameters
  • Enable notifications for run completion
  • Optional: add webhooks for automated processing

Integration Options

  • Webhooks: Trigger downstream actions when a run completes
  • Zapier: Connect to 5,000+ apps without coding
  • Make (Integromat): Build multi-step automation workflows
  • Google Sheets: Export results to a spreadsheet
  • Slack/Discord: Receive notifications and summaries
  • Email: Send automated reports via email

Performance

Estimated run times:

  • Small runs (< 1,000 outputs): ~2–3 minutes
  • Medium runs (1,000–5,000 outputs): ~5–15 minutes
  • Large runs (5,000+ outputs): ~15–30 minutes

Execution time varies based on filters, result volume, and how much information is returned per record.

FAQ

What is the difference between listing search and agent search?
Listing search returns property listing records based on location and listing filters. Agent search is used for directory-style discovery of brokers, agents, auctioneers, owners, or retailers in a selected area.

How should I choose limit?
Use a smaller limit when testing inputs or validating output shape. Use a larger limit when you are ready to collect a deeper dataset for analysis, monitoring, or export.

What happens if some optional fields are missing?
Some records may not include every optional field. Downstream systems should treat optional values as nullable and only rely on fields that are present.

How should I deduplicate records?
Use record_type + ":" + record_id as the recommended idempotency key for deduplication, upserts, and change tracking across recurring runs.

When should I use broader versus narrower filters?
Start broad when exploring a market or building a larger inventory view. Use narrower filters when you want more targeted results for a defined property type, pricing band, geography, or buying criteria.

Compliance & Ethics

Responsible Data Collection

This actor collects publicly available land and rural property listing information, and where applicable public agent or brokerage directory information, from https://www.land.com for legitimate business purposes. Common use cases include:

  • Real estate research and market analysis
  • Lead qualification and enrichment
  • Listing and competitive monitoring

Users are responsible for ensuring their collection and use of data complies with applicable laws, regulations, and contractual obligations. This section is informational and not legal advice.

Best Practices

  • Use collected data in accordance with applicable laws, regulations, and the target site’s terms
  • Respect individual privacy and personal information
  • Use data responsibly and avoid disruptive or excessive collection
  • Do not use this actor for spamming, harassment, or other harmful purposes
  • Follow relevant data protection requirements where applicable (e.g., GDPR, CCPA)

Support

For help, use the actor page’s Issues tab or support channel on Apify. Include the input you used with sensitive values redacted, the run ID, a short note on expected versus actual behavior, and optionally a small output sample so the issue can be reproduced quickly.