# Land.com Email Scraper (`leads-scraper/land-com-email-scraper`) Actor

Land.com Email Scraper SD - Land.com Email Scraper is a lead generation tool that extracts leads with public contact emails, account names and profile URLs from Land.com results by keyword, location and email domain - Land.com email extractor.

- **URL**: https://apify.com/leads-scraper/land-com-email-scraper.md
- **Developed by:** [Leads Scraper](https://apify.com/leads-scraper) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.49 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

### Land.com Email Scraper for farm, ranch and land broker contacts

The Land.com Email Scraper collects publicly indexed contact emails belonging to the land brokers, farm and ranch specialists and listing agents who appear on land.com.
Supply keywords, an optional location and the email domains you want to keep, and it returns a deduplicated dataset of land broker leads.
Every field is derived from Google's public index of land.com pages, never from a logged-in session.

**This is the strongest performer in the entire Real Estate and Property category, tied with the [LoopNet Email Scraper](https://apify.com/leads-scraper/loopnet-email-scraper).**
In a measured live run, roughly 10 parsed result blocks produced 10 identified broker records, 10 resolvable profile URLs and 10 unique emails.
Ten out of ten on identity, URL and email is the best combination in this family, and it is what makes the Land.com Email Scraper the right starting point for any land prospecting project.

Land.com is the flagship of the land marketplace world, weighted toward farms, ranches, timberland and investment-grade acreage rather than small recreational parcels.
Crucially for this Actor, its broker pages index as broker pages, so Google prints handles the parser can turn into canonical profile URLs.
Land brokers publish contact addresses on purpose, because an 1,800-acre row-crop farm sells to whoever can reach the agent.

#### Why the Land.com Email Scraper resolves profile URLs so well

The three land Actors in this category behave very differently, and understanding why saves you a lot of wasted runs.
The [LandWatch Email Scraper](https://apify.com/leads-scraper/landwatch-email-scraper) and the [Land And Farm Email Scraper](https://apify.com/leads-scraper/land-and-farm-email-scraper) both index listings rather than broker profiles, so their rows usually carry an email with no resolvable profile URL.
Land.com is the exception: its indexed pages expose broker handles consistently, so the Land.com Email Scraper produces a clickable profile alongside almost every email.

That matters if your outreach depends on research before writing.
A profile URL lets you see specialty, coverage area and active inventory before you send anything, which lifts reply rates on a market where a generic pitch is transparently generic.
If you can only run one land Actor, run this one.

#### What the Land.com Email Scraper actually does

The Land.com Email Scraper builds Google queries with the `site:` operator against `land.com`, fetches result pages through the Apify GOOGLE_SERP proxy with `aiohttp`, and parses each result block structurally.
It locates the `<h3>` title, walks up to the smallest surrounding block, then runs a domain-filtered regular expression over that block's text.
Structural parsing means it never depends on Google's CSS class names, so a markup change degrades a run instead of ending it.

It does not log into Land.com, never uses a Land.com API and never opens land.com in a browser.
There is no JavaScript rendering, no authentication and no cookies in the pipeline.

### Key features of the Land.com Email Scraper

Everything below ships with the Actor today; none of it is a roadmap item.

| Feature | What it does for land broker prospecting |
|---|---|
| Query expansion | Each keyword x domain pair runs as a base query, a quoted query, an `intitle:` query and one variant per modifier, base queries first. |
| Global deduplication | A brokerage with hundreds of active farm listings is written to the dataset once. |
| Email normalisation | Handles `name [at] domain [dot] com`, `name (at) domain`, `name @ domain.com`, `domain .com`, zero-width characters and the full-width `＠` sign. |
| Junk filter | Rejects placeholders such as `email@`, `yourname@`, `test@`, `xxx@` and single-character local parts. |
| Boundary-correct matching | `@gmail.com` will not match inside `@gmail.company` or `@gmail.com.br`. |
| Soft-wrap repair | Drops a hit that is only the tail of another email in the same result block. |
| Concurrency control | An `asyncio` worker pool with a shared stop signal on `maxEmails`. |
| Retries and block detection | Three attempts per page with exponential backoff, a fresh proxy session per request, and CAPTCHA or consent pages retried rather than counted as empty. |
| Failed-query requeue | Blocked or failed queries are retried once at the end of the run. |
| Resumable state | Key-value store state keyed by an input hash, saved on `PERSIST_STATE`, `MIGRATING` and `ABORTING`. |
| Whole-page fallback parser | A Google layout change degrades to emails without account details rather than to zero results. |
| Run summary | Pages fetched, blocked pages, retries and emails per page are logged. |

### How the Land.com Email Scraper works

A Land.com Email Scraper run begins by reading your input and hashing it into a resumable state key.
The query set is built by multiplying keywords by email domains and, when `expandQueries` is on, by every query modifier.
A representative query looks like `site:land.com "farm for sale" broker "@gmail.com" "Mississippi Delta"`.

The Land.com Email Scraper fetches result pages concurrently through the Apify GOOGLE_SERP proxy and parses them block by block.
Emails are extracted, normalised, domain-filtered and deduplicated globally before each lead is pushed to the dataset immediately.
You can watch the list build live in the Apify console rather than waiting for a run to complete.

Runs stop as soon as `maxEmails` unique addresses are collected, with the stop signal shared across all workers.
Because yield here is high, set `maxEmails` deliberately: a default of 20 stops a Land.com Email Scraper run long before you have covered a region.
Free Apify plans are capped at 100 emails per run; paid plans are uncapped.

### Land.com Email Scraper input fields

| Field | Type | Default | Meaning |
|---|---|---|---|
| `keywords` | array (required) | `["land broker", "farm for sale"]` | Search terms describing the accounts you want |
| `location` | string | `""` | Optional location phrase added to every query |
| `customDomains` | array | `["@gmail.com","@yahoo.com"]` | Only emails on these domains are kept; the `@` is optional |
| `maxEmails` | integer 1-10000 | `20` | Stop after this many unique emails |
| `countryCode` | string | `""` | Two-letter country for the search proxy (US, GB, DE...) |
| `expandQueries` | boolean | `true` | Search each keyword x domain pair in several phrasings |
| `queryModifiers` | array | `["email","contact","listing agent","inquiries","broker"]` | Extra words combined with each keyword when expansion is on |
| `maxPagesPerQuery` | integer 1-50 | `30` | Page cap per query |
| `maxConcurrency` | integer 1-20 | `5` | Parallel queries |

Only `keywords` is required, so the Land.com Email Scraper runs on defaults out of the box.
Because broker pages index well here, profile-flavoured terms such as `"land broker"` and `"farm and ranch specialist"` perform strongly alongside listing terms.

#### Location targeting in the Land.com Email Scraper

`location` is the single most valuable input in this Actor, and land geography does not work like metro geography.
Farm and ranch brokers describe territory by production region, watershed and state, so those phrases are what appears in indexed copy.
Running the Land.com Email Scraper once per region gives you lists that map onto real broker coverage.

Agricultural region phrases are the standout option on this platform: `"Mississippi Delta"`, `"Palouse"`, `"Central Valley"`, `"Corn Belt"`, `"Flint Hills"`, `"High Plains"`.
These are how farmland is actually described and valued, and brokers who specialise in row crop, permanent crop or pasture write them into their profiles.

State phrases are the reliable workhorse, because land licensing, water law and property tax treatment are all state-level: `"Iowa"`, `"Nebraska"`, `"Montana"`, `"Mississippi"`.
Pair a state-level `location` with `countryCode: "US"` so the search proxy resolves to the right index, and raise `maxEmails` because a statewide Land.com run has plenty of supply.

County phrases are the precision tool for a tightly defined territory: `"Sunflower County"`, `"Story County"`, `"Yakima County"`.
Use them when you are sizing a specific market rather than building coverage.
Avoid metro names: a query for `"Des Moines"` will mostly miss the farmland inventory that makes this platform valuable.

#### Example input JSON

```json
{
  "keywords": ["land broker", "farm for sale", "farm and ranch specialist"],
  "location": "Mississippi Delta",
  "customDomains": ["@gmail.com", "@yahoo.com", "@outlook.com"],
  "maxEmails": 400,
  "countryCode": "US",
  "expandQueries": true,
  "queryModifiers": ["email", "contact", "listing agent", "inquiries", "broker"],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

### Land.com Email Scraper output fields

Every dataset item written by the Land.com Email Scraper carries all fourteen fields below.

| Field | Meaning |
|---|---|
| `network` | Platform name |
| `keyword` | The keyword that produced the lead |
| `query` | The exact Google query used |
| `title` | Raw result title |
| `accountName` | Account label Google prints |
| `fullName` | Display name parsed from a profile-style title; empty for non-profile results |
| `username` | URL-safe handle when Land.com exposes one; otherwise `null` |
| `profileUrl` | Canonical account URL when a handle is known; otherwise empty |
| `url` | Direct platform link when exposed, else the profile URL |
| `description` | Bio or snippet text, cleaned of labels and counters |
| `email` | Lower-cased email address |
| `emailDomain` | The matched domain, for example `@gmail.com` |
| `possiblyTruncated` | `true` when Google's snippet ellipsis touched the email |
| `foundAt` | ISO 8601 UTC timestamp |

On this platform `username` and `profileUrl` are populated on almost every row, which is unusual in the land group.
Keep `query` and `foundAt` in every export as your provenance record.

#### Example output JSON

```json
[
  {
    "network": "Land.com",
    "keyword": "farm for sale",
    "query": "site:land.com \"farm for sale\" broker \"@gmail.com\" \"Mississippi Delta\"",
    "title": "Roselle Tanquary - Farm and Land Broker - Cleveland, MS | Land.com",
    "accountName": "Roselle Tanquary",
    "fullName": "Roselle Tanquary",
    "username": "roselle-tanquary",
    "profileUrl": "https://www.land.com/roselle-tanquary",
    "url": "https://www.land.com/roselle-tanquary",
    "description": "Row crop and irrigated farmland across the Mississippi Delta. Enquiries: roselle.tanquary.farms@gmail.com",
    "email": "roselle.tanquary.farms@gmail.com",
    "emailDomain": "@gmail.com",
    "possiblyTruncated": false,
    "foundAt": "2026-03-17T09:45:12Z"
  },
  {
    "network": "Land.com",
    "keyword": "land broker",
    "query": "site:land.com intitle:\"land broker\" \"@yahoo.com\" \"Mississippi Delta\"",
    "title": "Ambrose Kettering - Land Broker | Land.com",
    "accountName": "Kettering Land Group",
    "fullName": "Ambrose Kettering",
    "username": "ambrose-kettering",
    "profileUrl": "https://www.land.com/ambrose-kettering",
    "url": "https://www.land.com/ambrose-kettering",
    "description": "Timberland, CRP and transitional acreage, Bolivar and Sunflower counties. Contact ambrose.kettering.land@yahoo.com",
    "email": "ambrose.kettering.land@yahoo.com",
    "emailDomain": "@yahoo.com",
    "possiblyTruncated": false,
    "foundAt": "2026-03-17T09:46:38Z"
  }
]
```

### Use cases for the Land.com Email Scraper

| Audience | How they use the Land.com Email Scraper |
|---|---|
| Agricultural and farm credit lenders | Build regional lists of the brokers whose buyers need farmland, ranch or transitional-land financing. |
| Land surveyors | Prospect brokers in production regions where boundary, plat and acreage work is constant. |
| Timber and mineral buyers | Find brokers listing timbered tracts and parcels with severed mineral or water rights. |
| Hunting-lease and recreational operators | Reach brokers marketing acreage that supports lease income alongside production. |
| Rural insurance brokers | Target agents whose clients need farm, ranch, crop and outbuilding cover. |
| Rural appraisal firms | Find brokers who commission farmland and agricultural valuations. |
| Title and closing firms | Assemble state-level lists of the brokers routing rural closings. |
| Irrigation, fencing and land-improvement contractors | Reach brokers whose listings mention wells, pivots, fencing and access. |

The Land.com Email Scraper is a top-of-funnel sourcing step rather than a complete go-to-market motion.
Its profile URL coverage makes pre-send research realistic here in a way it is not on the other land Actors.

### Land.com Email Scraper examples

An agricultural lender expanding into the Delta runs the Land.com Email Scraper with `keywords` set to `["farm for sale", "land broker"]` and `location` `"Mississippi Delta"`, with `maxEmails` at 400.
Because supply is generous, the run reaches the cap rather than exhausting the index.
Every row carries a profile URL, so the credit team reviews each broker's active inventory before the first email goes out.

A surveying firm sizing three states runs the Land.com Email Scraper separately for `"Iowa"`, `"Nebraska"` and `"Kansas"`, keeping keywords constant.
Comparing dataset sizes shows where broker density and public email visibility justify opening an office.
They widen `customDomains` with `@outlook.com` and `@hotmail.com`, which lifts yield because independent farm brokers rarely run branded mail.

A crop insurance brokerage wants full land-portal coverage of one region.
They start with the Land.com Email Scraper for its identity and URL quality, then add the [Land And Farm Email Scraper](https://apify.com/leads-scraper/land-and-farm-email-scraper) and the [LandWatch Email Scraper](https://apify.com/leads-scraper/landwatch-email-scraper) and deduplicate on `email`.
Rural brokers commonly list on several land portals, so deduplication removes real overlap rather than noise.

### Responsible use of scraped land broker contacts

Everything the Land.com Email Scraper returns was already published on a public web page and indexed by Google.
That does not make every downstream use lawful, and knowing which rules apply to you is your responsibility.
The notes below are practical guidance, not legal advice.

Under CAN-SPAM in the United States, commercial email must avoid deceptive headers and subject lines, identify itself as an advertisement where required, carry a valid physical postal address, and honour opt-out requests promptly.
Under the GDPR and UK GDPR, a named individual's business address is still personal data, so you need a lawful basis, a genuine legitimate-interest assessment where you rely on one, transparency about the source, and a working route to object or erase.
ePrivacy rules and several EU member states add consent requirements for electronic marketing beyond the GDPR baseline.

Because land brokers frequently use personal consumer mailboxes, treat addresses from the Land.com Email Scraper as closer to personal accounts than corporate ones.
Keep messages professional, specific to the broker's region and easy to opt out of, hold `possiblyTruncated` rows out of a first send, maintain a suppression list across runs, and retain `query` and `foundAt` as provenance.

### Limitations of the Land.com Email Scraper

The Land.com Email Scraper only finds accounts whose email is publicly visible in Google's index.
A broker who keeps their address behind a contact form or inside an image will never appear, however many pages you fetch.

Google caps a single query at roughly 300 results, which is exactly why query expansion exists.
On a high-yield source that cap binds sooner than elsewhere, so leaving `expandQueries` on genuinely matters here.

`username` and `profileUrl` are only populated when Land.com exposes a handle in the Google result.
Resolution is excellent on this platform, but where Google prints only a display name those rows carry `accountName` and `fullName` with an empty `username` and `profileUrl`. That is a Google limitation, not a bug.

`possiblyTruncated: true` means Google's snippet ellipsis touched the address and it may be incomplete; verify before sending.
The Land.com Email Scraper requires the Apify GOOGLE_SERP proxy and cannot run without Apify proxy credentials.
Free Apify plans stop at 100 emails per run, which is a genuine constraint on one of the highest-yield Actors in this family.

Results vary with keywords, domains and location, so no volume is guaranteed.
Coverage from the Land.com Email Scraper is also uneven by region: dense production areas index far better than sparsely listed ones.

### Land.com Email Scraper FAQ

#### How many results should I expect from the Land.com Email Scraper?

The best ratios in this category. A measured live run produced 10 identified records, 10 profile URLs and 10 unique emails per roughly 10 parsed blocks.
Yield still moves with your keywords, domains and location, and no volume is guaranteed.

#### Why does the Land.com Email Scraper resolve profile URLs when the other land Actors do not?

Because Land.com's indexed pages expose broker handles that the parser can turn into canonical profile URLs.
LandWatch and Land And Farm index listings instead, so their rows usually carry an email with no resolvable profile URL.

#### Does the Land.com Email Scraper log into Land.com?

No. It never logs in, never calls a Land.com API and never opens land.com in a browser.
Every field comes from publicly indexed Google search results.

#### Is this an official Land.com tool?

No. It is an independent Apify Actor and is not affiliated with, supported by or endorsed by Land.com.

#### What should I set `maxEmails` to?

Higher than the default of 20, which stops a Land.com Email Scraper run almost immediately given how generous the supply is.
A few hundred per region is a reasonable starting point on a paid plan.

#### Should I use regions, states or counties in `location`?

Agricultural region phrases such as `"Mississippi Delta"` or `"Palouse"` perform best, states are the reliable workhorse, and counties are the precision option.
Metro names perform poorly, because farmland is not described that way.

#### Which email domains should I use with the Land.com Email Scraper?

Start with `@gmail.com` and `@yahoo.com`, then add `@outlook.com` and `@hotmail.com`.
Independent farm and ranch brokers use consumer mailboxes at a much higher rate than institutional firms.

#### What does `possiblyTruncated` mean?

Google's snippet cut the text with an ellipsis close enough to the address that it may be incomplete.
Treat those rows as leads to verify rather than send-ready contacts.

#### Will one busy brokerage flood my dataset?

No. The Land.com Email Scraper deduplicates globally, so a brokerage with hundreds of active listings appears once.

#### How do I get even more results?

Add keywords, add domains, raise `maxEmails`, keep expansion on, and split one broad run into several region-specific runs.
Merging with the other land Actors on `email` widens coverage further.

#### Does a Land.com Email Scraper run resume if it is interrupted?

Yes. State lives in the key-value store keyed by an input hash, with saves on `PERSIST_STATE`, `MIGRATING` and `ABORTING`.

#### Do I need my own proxy?

No, but Apify proxy credentials are required, because the Land.com Email Scraper uses the Apify GOOGLE_SERP proxy.

### Related Actors

| Actor | What it collects |
|---|---|
| [Land.com Email and Phone Number Scraper](https://apify.com/leads-scraper/land-com-email-and-phone-number-scraper) | Emails and phone numbers from Land.com |
| [Land.com Phone Number Scraper](https://apify.com/leads-scraper/land-com-phone-number-scraper) | Public phone numbers from Land.com |
| [Apartment List Email Scraper](https://apify.com/leads-scraper/apartment-list-email-scraper) | Public contact emails from Apartment List |
| [ApartmentFinder Email Scraper](https://apify.com/leads-scraper/apartmentfinder-email-scraper) | Public contact emails from ApartmentFinder |
| [Apartments.com Email Scraper](https://apify.com/leads-scraper/apartments-com-email-scraper) | Public contact emails from Apartments.com |
| [Century 21 Agent Email Scraper](https://apify.com/neuro-scraper/century-21-agent-email-scraper) | Public contact emails from Century 21 |
| [Coldwell Banker Agent Email Scraper](https://apify.com/neuro-scraper/coldwell-banker-agent-email-scraper) | Public contact emails from Coldwell Banker |
| [CommercialCafe Email Scraper](https://apify.com/neuro-scraper/commercialcafe-email-scraper) | Public contact emails from CommercialCafe |
| [CommercialSearch Email Scraper](https://apify.com/neuro-scraper/commercialsearch-email-scraper) | Public contact emails from CommercialSearch |
| [Compass Agent Email Scraper](https://apify.com/neuro-scraper/compass-agent-email-scraper) | Public contact emails from Compass |
| [Crexi Email Scraper](https://apify.com/leads-scraper/crexi-email-scraper) | Public contact emails from Crexi |
| [Domain Agents Email Scraper](https://apify.com/leads-scraper/domain-agents-email-scraper) | Public contact emails from Domain |
| [Homes & Land Email Scraper](https://apify.com/neuro-scraper/homes-and-land-email-scraper) | Public contact emails from Homes & Land |
| [Homes.com Email Scraper](https://apify.com/leads-scraper/homes-com-email-scraper) | Public contact emails from Homes.com |
| [HotPads Email Scraper](https://apify.com/leads-scraper/hotpads-email-scraper) | Public contact emails from HotPads |
| [Keller Williams Agent Email Scraper](https://apify.com/neuro-scraper/keller-williams-agent-email-scraper) | Public contact emails from Keller Williams |
| [Land And Farm Email Scraper](https://apify.com/leads-scraper/land-and-farm-email-scraper) | Public contact emails from Land And Farm |
| [LandWatch Email Scraper](https://apify.com/leads-scraper/landwatch-email-scraper) | Public contact emails from LandWatch |
| [LoopNet Email Scraper](https://apify.com/leads-scraper/loopnet-email-scraper) | Public contact emails from LoopNet |
| [OnTheMarket Email Scraper](https://apify.com/leads-scraper/onthemarket-email-scraper) | Public contact emails from OnTheMarket |
| [RealEstate.com.au Agents Email Scraper](https://apify.com/neuro-scraper/realestate-com-au-agents-email-scraper) | Public contact emails from realestate.com.au |
| [Realtor.ca Email Scraper](https://apify.com/leads-scraper/realtor-ca-email-scraper) | Public contact emails from Realtor.ca |
| [Realtor.com Rentals Email Scraper](https://apify.com/leads-scraper/realtor-com-rentals-email-scraper) | Public contact emails from Realtor.com |
| [Redfin Rentals Email Scraper](https://apify.com/leads-scraper/redfin-rentals-email-scraper) | Public contact emails from Redfin |
| [RE/MAX Agent Email Scraper](https://apify.com/leads-scraper/remax-agent-email-scraper) | Public contact emails from RE/MAX |
| [Rent.com Email Scraper](https://apify.com/leads-scraper/rent-com-email-scraper) | Public contact emails from Rent.com |
| [RentCafe Email Scraper](https://apify.com/leads-scraper/rentcafe-email-scraper) | Public contact emails from RentCafe |
| [Zillow Rentals Email Scraper](https://apify.com/leads-scraper/zillow-rentals-email-scraper) | Public contact emails from Zillow |
| [Zumper Email Scraper](https://apify.com/leads-scraper/zumper-email-scraper) | Public contact emails from Zumper |
| [Apartment List Email and Phone Number Scraper](https://apify.com/neuro-scraper/apartment-list-email-and-phone-number-scraper) | Emails and phone numbers from Apartment List |
| [ApartmentFinder Email and Phone Number Scraper](https://apify.com/neuro-scraper/apartmentfinder-email-and-phone-number-scraper) | Emails and phone numbers from ApartmentFinder |
| [Apartments.com Email and Phone Number Scraper](https://apify.com/neuro-scraper/apartments-com-email-and-phone-number-scraper) | Emails and phone numbers from Apartments.com |
| [Century 21 Email and Phone Number Scraper](https://apify.com/neuro-scraper/century-21-agent-email-and-phone-number-scraper) | Emails and phone numbers from Century 21 |
| [Coldwell Banker Email and Phone Number Scraper](https://apify.com/neuro-scraper/coldwell-banker-agent-email-and-phone-number-scraper) | Emails and phone numbers from Coldwell Banker |
| [CommercialCafe Email and Phone Number Scraper](https://apify.com/neuro-scraper/commercialcafe-email-and-phone-number-scraper) | Emails and phone numbers from CommercialCafe |
| [CommercialSearch Email and Phone Number Scraper](https://apify.com/neuro-scraper/commercialsearch-email-and-phone-number-scraper) | Emails and phone numbers from CommercialSearch |
| [Compass Email and Phone Number Scraper](https://apify.com/neuro-scraper/compass-agent-email-and-phone-number-scraper) | Emails and phone numbers from Compass |
| [Crexi Email and Phone Number Scraper](https://apify.com/leads-scraper/crexi-email-and-phone-number-scraper) | Emails and phone numbers from Crexi |
| [Domain Email and Phone Number Scraper](https://apify.com/leads-scraper/domain-agents-email-and-phone-number-scraper) | Emails and phone numbers from Domain |
| [Homes & Land Email and Phone Number Scraper](https://apify.com/neuro-scraper/homes-and-land-email-and-phone-number-scraper) | Emails and phone numbers from Homes & Land |
| [Homes.com Email and Phone Number Scraper](https://apify.com/leads-scraper/homes-com-email-and-phone-number-scraper) | Emails and phone numbers from Homes.com |
| [Keller Williams Email and Phone Number Scraper](https://apify.com/neuro-scraper/keller-williams-agent-email-and-phone-number-scraper) | Emails and phone numbers from Keller Williams |

### Leave a review

If the Land.com Email Scraper saved you time, please leave a star rating and a short review on
the Actor page.

Reviews are how other buyers judge whether a tool works, and they tell us which features to
build next.

If something did not work, email <neurodata.apify@gmail.com>
instead - bugs get fixed faster than they get complained about.

### Support

Questions about the Land.com Email Scraper, bug reports or a request for a custom build: contact neurodata.apify@gmail.com.

# Actor input Schema

## `keywords` (type: `array`):

Search terms describing the Land.com accounts you want (niche, job title, industry).

## `location` (type: `string`):

Optional location phrase added to every query (e.g. "New York").

## `customDomains` (type: `array`):

Only emails ending with one of these domains are collected. With or without the leading @. Each domain is searched separately, so more domains means more results but a longer run - remove some for a faster, narrower search, or add your own (e.g. @company.com).

## `maxEmails` (type: `integer`):

Stop once this many unique emails have been collected.

## `countryCode` (type: `string`):

Two-letter country code for the search proxy (e.g. US, GB, DE). Empty for any.

## `expandQueries` (type: `boolean`):

Search each keyword x domain pair with several phrasings. Recommended - Google caps a single query at ~300 results.

## `queryModifiers` (type: `array`):

Extra words combined with each keyword when Expand queries is on. Tuned for Land.com.

## `maxPagesPerQuery` (type: `integer`):

Google rarely returns more than ~30 pages for one query.

## `maxConcurrency` (type: `integer`):

How many queries run in parallel.

## Actor input object example

```json
{
  "keywords": [
    "land broker",
    "farm for sale"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20,
  "countryCode": "",
  "expandQueries": true,
  "queryModifiers": [
    "email",
    "contact",
    "listing agent",
    "inquiries",
    "broker"
  ],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

# Actor output Schema

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

Records produced by Land.com Email Scraper, stored in the run's default dataset.

# 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 = {
    "keywords": [
        "land broker",
        "farm for sale"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com"
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "listing agent",
        "inquiries",
        "broker"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("leads-scraper/land-com-email-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 = {
    "keywords": [
        "land broker",
        "farm for sale",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "listing agent",
        "inquiries",
        "broker",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("leads-scraper/land-com-email-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 '{
  "keywords": [
    "land broker",
    "farm for sale"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "countryCode": "",
  "queryModifiers": [
    "email",
    "contact",
    "listing agent",
    "inquiries",
    "broker"
  ]
}' |
apify call leads-scraper/land-com-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,leads-scraper/land-com-email-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/xHXeEpAAGurce6K4s/builds/nOLjN5Qr7PSk8Hrgz/openapi.json
