# Landmodo Deals: Find Owner-Financed Land Listings (`getascraper/landmodo-scraper`) Actor

Find cheap owner-financed land with down payments under $150. Instantly see the purchase price, monthly payments, and seller contact details. Spot high-margin real estate deals across any state, ready for your spreadsheet. $3.99 per 1,000 listings.

- **URL**: https://apify.com/getascraper/landmodo-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.49 / 1,000 property 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

## 🏦 Landmodo Scraper: Owner-Financed Land

Get live US owner-financed land listings: total price, down payment, monthly payment, acreage, location, and seller name. Ready for your spreadsheet in under 60 seconds.

Landmodo (landmodo.com) is the leading US marketplace for owner-financed land. This Scraper extracts prices, down payments, monthly payments, acreage, and seller details directly from public listings with zero manual setup. No browser. No proxy. No complex setups.

### 🔍 What does Landmodo Scraper do?

The Actor crawls listing feeds on Landmodo, converting US owner-financed land parcels and structural data scripts into clean, machine-readable datasets. It is optimized to use Apify's advanced platform capabilities:

- **Financing Terms Extraction**: Extracts down payment, monthly payment, and term length (e.g. `$125 down / $125/mo / 55 mo`) for active land investors and B2B outreach.
- **Price Per Acre Calculations**: Computes `/ Acre` ratios on the fly, allowing you to instantly spot underpriced parcels.
- **Low-Down-Payment Filtering**: Filters every active listing by down payment or monthly payment to identify highly accessible deals.
- **Resource-Optimized Cheerio**: Runs completely browser-less with zero proxy requirements, saving massive residential bandwidth costs and maintaining high performance.

### 🧑‍💼 Who is this for

- **I am a land investor** looking for accessible owner-financed land. I need to filter every active listing by down payment, monthly payment, or total price to spot underpriced markets before everyone else.
- **I am a real estate flipper** looking to build a competitor seller database. I need to track which land investors are listing the most inventory and which are quietly delisting.
- **I am a GIS developer** mapping owner-financed parcels. I need coordinates, acreage, and financing terms in flat JSON to feed my custom mapping engine.
- **I am a B2B lead generation manager** sourcing real estate agency prospects. I need fresh contact data for active rural land sellers.

### 🚀 How to use

1. **Configure Search**: Enter optional queries (e.g. `["5 acres Texas"]`) and select a state filter, price range, or acreage boundaries.
2. **Set limits**: Specify the maximum number of listings to return using the `maxListings` option.
3. **Execute Run**: Click the **Start** button. Once finished, download your structured records as JSON, CSV, Excel, or HTML.

### ⚙️ Input

| Field | Type | Default | Description |
|---|---|---|---|
| `queries` | Array | `[]` | One or more search terms, e.g. `["5 acres Texas", "rural land"]`. Leave blank to pull the full marketplace. |
| `stateFilter` | String | `""` | Restrict to one US state, e.g. `TX`, `AZ`, `FL`. Leave blank for all states. |
| `minPrice` / `maxPrice` | Integer | `0` | Price range in USD. `0` = no limit. |
| `minAcres` / `maxAcres` | Integer | `0` | Acreage range. `0` = no limit. |
| `sortBy` | String | `"newest"` | Newest first, or sort by price or acreage. |
| `includeSeller` | Boolean | `true` | Add the seller's company name to each row. |
| `includeFinancingTerms` | Boolean | `true` | Add down payment, monthly payment, and term length. |
| `outputMode` | String | `"full"` | `"full"` = all fields, `"summary"` = key fields only, `"urls_only"` = just property URLs. |
| `maxListings` | Integer | `100` | Hard cap on rows saved. |
| `proxyConfiguration` | Object | off | Landmodo is public, so the default is no proxy. |

### 📤 Output

Each row is one active land listing.

**Example row**

```json
{
  "image": "https://www.landmodo.com/photos/main/82e91186b80ddc5086a7158c27b4c2df.jpg",
  "title": "Own Land in Greener Arizona: Cooler Climate & Close to Town",
  "price": "$6,200.00",
  "pricePerAcre": 25833.33,
  "downPayment": "$125.00",
  "monthlyPayment": "$125.00",
  "termMonths": 55,
  "financingSummary": "$125 down / $125/mo / 55 mo",
  "acreage": 0.24,
  "city": "Concho",
  "state": "AZ",
  "propertyType": "Undeveloped",
  "sellerName": "Raw Estate Enterprise, LLC",
  "url": "https://www.landmodo.com/properties/373730/concho-az/own-land-in-greener-arizona-cooler-climate-close-to-town",
  "listingId": "373730",
  "scrapedAt": "2026-06-08T12:51:53.941Z"
}
```

You can download the dataset in JSON, HTML, CSV, or Excel from the Apify Console dataset tab.

### 📋 Data table

| Field | Type | Description |
|---|---|---|
| `image` | String | Main listing photo. |
| `title` | String | Listing headline. |
| `price` | String | Total purchase price. |
| `pricePerAcre` | Number | Numeric price divided by acreage. Sort to find the best $/acre deals. |
| `downPayment` | String | Required down payment for the owner-finance plan. |
| `monthlyPayment` | String | Monthly payment amount. |
| `termMonths` | Number | Length of the financing term in months. |
| `financingSummary` | String | One-line summary, e.g. `$125 down / $125/mo / 55 mo`. |
| `acreage` | Number | Lot size in acres (rounded to 2 decimals). |
| `city` | String | City or nearest populated place. |
| `state` | String | 2-letter state code. |
| `propertyType` | String | Land category (e.g. `Rural`, `Undeveloped`, `Recreational`). |
| `sellerName` | String | Company or investor who listed the parcel. |
| `url` | String | Direct link to the listing on Landmodo. |
| `listingId` | String | Landmodo's internal ID for the parcel. |
| `scrapedAt` | String | When the row was saved. |

### 💰 Pricing

Pay-per-result and billed per row successfully saved to your dataset. Empty runs and blocked requests cost exactly $0.00.

- **Rate:** $3.99 per 1,000 results ($0.00399 per result)
- **100 listings** typically cost **$0.40**
- **1,000 listings** cost exactly **$3.99**
- **10,000 listings** cost exactly **$39.90**
- No fixed monthly subscriptions or hidden maintenance fees

Your Apify subscription tier applies an automatic volume discount on top of the per-result rate.

### ⭐ Enjoying Landmodo Scraper?

<table width="100%">
<tr>
<td style="padding:20px 24px 14px;background:#FDF3E7;border:1px solid #FDF3E7;border-left:5px solid #B45309;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">If this is helping you spot accessible owner-financed land deals faster, tell us about it.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other land investors and flippers find this Actor. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#B45309;border:1px solid #FDF3E7;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/landmodo-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ FAQ

##### Does it get blocked?

Landmodo.com is a public marketplace with no restrictive anti-bot setups. The default is no proxy. This enables fast, cheap runs. If you scale to 50,000+ listings daily, enabling Apify Proxy is recommended for safety.

##### How fresh is the data?

Every row is scraped live when you run the Actor. There is no caching.

##### A field is missing for some listings.

Some Landmodo listings omit down payment, monthly payment, or seller name. The Actor writes `null` so downstream filters stay clean.

### ⚖️ Legal compliance

This Actor only extracts data that is publicly visible on Landmodo.com. Users must comply with local privacy regulations and the platform's terms of service. Landmodo is a trademark of Landmodo Inc. This is an independent scraping tool and is not affiliated with, endorsed by, or sponsored by Landmodo Inc.

### 🛟 Support

Open an issue on the Issues tab for bugs, feature requests, or layout additions. We respond within 48 hours.

### 🔗 Other actors

- [Landflip Scraper](https://apify.com/getascraper/landflip-scraper) ↗ - extracts US land listings, price per acre, and broker contact details.
- [LandAndFarm scraper](https://apify.com/getascraper/landandfarm-scraper) ↗ - collects US land listings and broker leads from LandAndFarm.
- [CommercialRealEstate.com.au scraper](https://apify.com/getascraper/commercialrealestate-au-scraper) ↗ - gathers commercial property prices, agents, and deal status in Australia.
- [Property24 Scraper](https://apify.com/getascraper/property24-scraper) ↗ - pulls real estate listings, prices, and broker leads across African markets.
- [Probate & foreclosure leads scraper](https://apify.com/getascraper/probate-foreclosure-leads-scraper) ↗ - surfaces probate and foreclosure property leads for investors.

# Actor input Schema

## `queries` (type: `array`):

Free-text search terms. Each becomes a Landmodo search URL. Leave empty to use Start URLs or the full marketplace.

## `stateFilter` (type: `string`):

Optional 2-letter US state code (e.g. 'TX', 'AZ', 'FL'). Empty = all states.

## `startUrls` (type: `array`):

Direct Landmodo URLs. Used when Queries is empty. For most users, use Queries + filters above instead.

## `minPrice` (type: `integer`):

Minimum listing price in USD. 0 = no minimum.

## `maxPrice` (type: `integer`):

Maximum listing price in USD. 0 = no maximum.

## `minAcres` (type: `number`):

Minimum acreage. 0 = no minimum.

## `maxAcres` (type: `number`):

Maximum acreage. 0 = no maximum.

## `sortBy` (type: `string`):

How Landmodo should sort listings.

## `includeSeller` (type: `boolean`):

Extract the seller/investor name (e.g. 'Lands For You') for each listing.

## `includeFinancingTerms` (type: `boolean`):

Extract down payment, monthly payment, term months, and a financing summary.

## `outputMode` (type: `string`):

full = all fields, summary = top fields only, urls\_only = just property URLs.

## `maxListings` (type: `integer`):

Maximum number of listings to scrape. Hard ceiling for the run.

## `proxyConfiguration` (type: `object`):

Optional proxy. Landmodo is fully public, so the default is no proxy. Enable only if you get rate-limited.

## Actor input object example

```json
{
  "queries": [],
  "stateFilter": "",
  "startUrls": [
    {
      "url": "https://www.landmodo.com/properties"
    }
  ],
  "minPrice": 0,
  "maxPrice": 0,
  "minAcres": 0,
  "maxAcres": 0,
  "sortBy": "newest",
  "includeSeller": true,
  "includeFinancingTerms": true,
  "outputMode": "full",
  "maxListings": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (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 = {
    "queries": [],
    "startUrls": [
        {
            "url": "https://www.landmodo.com/properties"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/landmodo-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 = {
    "queries": [],
    "startUrls": [{ "url": "https://www.landmodo.com/properties" }],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/landmodo-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 '{
  "queries": [],
  "startUrls": [
    {
      "url": "https://www.landmodo.com/properties"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call getascraper/landmodo-scraper --silent --output-dataset

```

## MCP server setup

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