# LoopNet Scraper (`one-api/loopnet-scraper`) Actor

Scrape LoopNet.com (CoStar) commercial real estate. Search For Lease / For Sale / Auction listings by location, ZIP, coordinates, polygon or URL with full commercial filters; enriched property details with spaces, brokers, facts and photos; plus autocomplete and property types.

- **URL**: https://apify.com/one-api/loopnet-scraper.md
- **Developed by:** [ONE API](https://apify.com/one-api) (community)
- **Categories:** Lead generation, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## LoopNet Scraper

Scrape **LoopNet.com** (the **CoStar** commercial real-estate marketplace — the #1 US platform for commercial property). Search listings **For Lease / For Sale / Auctions** by location, ZIP code, coordinates + radius, custom polygon, or a LoopNet search URL with the full set of commercial filters, pull fully **enriched property details** by listing id or URL, resolve geographies via autocomplete, and list LoopNet's official property-type taxonomy.

### What it does

- **🏢 Property Details** — auto-detects each input as a numeric LoopNet listing id (`/details/byid`) or a `loopnet.com/Listing/...` URL (`/details/byurl`); returns the full **enriched** record: address + coordinates, price / lease rate, building class, **every available space** (floor/suite, size, term, rental rate, space use, build-out, availability), property facts (building size, typical floor size, ceiling height, parking, zoning...), highlights, description, **brokers with phone numbers**, owner, walk/transit/bike/drive scores, nearby transit/bus/rail/airport and the complete photo gallery (up to ~40 photos).
- **🔎 Search Listings** — auto-detects a LoopNet search URL (`/search/byurl`), a 5-digit ZIP code (`/search/byzip`), or a free-text location (`/search/bylocation`). Deal mode, property types, and all range filters apply.
- **📍 Search by Coordinates** — radius search around a `latitude,longitude` point with an optional radius in **miles** (`/search/bycoordinates`).
- **🗺️ Search by Polygon** — search inside a custom area given as `lon lat,lon lat,...` pairs (`/search/bypolygon`).
- **🔍 Location Autocomplete** — resolve free text (city / county / ZIP / market) to LoopNet geography suggestions (`/autocomplete`).
- **🏷️ Property Types Reference** — LoopNet's official commercial property-type / subtype taxonomy per country (`/propertytypes`) — every valid `propertyType` / `propertySubType` filter value.

### Filters

- **Deal type**: For Lease, For Sale, or Auctions (Ten-X).
- **Property types**: office, industrial, retail, flex, land, multifamily, hospitality, specialty, health care, shopping center, restaurant, sports & entertainment, residential income, lab — comma-combinable, plus dozens of subtypes (warehouse, data center, medical office, self-storage, strip center...).
- **Ranges** (`min:X,max:Y`, either half optional): price, lease rate ($/SF/YR), building size (SF), available space (SF), lot size (acres), cap rate (%), year built, unit count.
- **Commercial toggles**: sublease, net leased (NNN), distressed, Opportunity Zone, in-contract, Buy Now (auctions), vacant/owner-user, business for sale, investment, exclude leasehold.
- **Sort**: recommended, newest/oldest, price, cap rate, building size, available space.
- **Keywords**: free-text, e.g. `drive-thru`, `high ceilings`.

### Output

- **One flat dataset row per listing, geography suggestion, or property type** — sortable, filterable, CSV / Excel / JSON exportable.
- Columns: `Mode`, `Input Given`, `ID`, `Title` (street address / name), `Deal`, `Status`, `Property Type`, `Building Class`, `Price / Rate`, `Available Space`, `Size`, `Spaces`, `Building Info`, `City`, `State`, `ZIP`, `County`, `Latitude`, `Longitude`, `Description`, `Broker`, `Broker Phone`, `Broker Company`, `Walk Score`, `Photos`, `Cover Photo`, `Listing URL`.
- The complete upstream JSON for each row is kept in the `Raw` column for power users — for details rows it includes all available spaces, facts, highlights, every photo URL, all brokers, scores, transportation and owner data.

### Inputs

- Each section is independent — fill only the ones you need; multiple inputs per section, one per line.
- The Search Filters apply to every location, ZIP, coordinate and polygon query (LoopNet search URLs carry their own filters).
- **Coordinates** entries use `latitude,longitude` or `latitude,longitude,radiusMiles`, e.g. `34.0522,-118.2437,3` (3 miles around downtown LA).
- **Polygon** entries use `lon lat,lon lat,...`, e.g. `-118.5 34.2,-118.5 33.9,-118.1 33.9,-118.1 34.2`.
- Range filters use `min:X,max:Y`, e.g. price `min:1000000,max:10000000`, cap rate `min:4,max:12`.

### Pricing

- Pay per result: **$3 per 1,000 dataset items** — the same rate on every Apify plan tier.
- Apify start fee: $0.00005 per run.

### Notes

- LoopNet serves **25 listings per server page** — the API merges pages internally, so *Results per page* goes up to **100**; raise *Pages per search* to fetch more.
- Prices come as LoopNet displays them — sale prices (`$2,650,000`), lease rates (`$3.45 /SF/MO`), or auction terms — so the `Price / Rate` column is text.
- Areas are in square feet, lot sizes in acres, prices in USD ($).
- Property details are **enriched** — spaces, facts, highlights, broker phones, scores, transportation, owner and the photo gallery are merged from multiple LoopNet sources in one call.

### Errors

- Failures land in the dataset as rows with `Mode = "ERROR"` and the upstream message in `Title` — nothing is silently dropped.

# Actor input Schema

## `property_inputs` (type: `array`):

Auto-detects each entry and calls the right endpoint:
• A numeric LoopNet listing id (e.g. `29122043`) → `/details/byid`
• A `https://www.loopnet.com/Listing/...` URL → `/details/byurl`

Each row = one fully enriched commercial property record: address + coordinates, price / lease rate, building class, all available spaces (size, term, rate, use, build-out, availability), property facts (building size, typical floor size, ceiling height, parking, zoning...), highlights, description, brokers with phone numbers, owner, walk/transit/bike/drive scores, nearby transportation and the full photo gallery. Pull an id from any Search result row.
## `search_inputs` (type: `array`):

Auto-detects each entry and routes to the right `/search/*` endpoint:
• A LoopNet search URL, e.g. `https://www.loopnet.com/search/office-space/los-angeles-ca/for-lease/` → `/search/byurl`
• A 5-digit ZIP code, e.g. `90064` → `/search/byzip`
• Anything else (city / county / market, e.g. `Austin, TX`) → `/search/bylocation`

The filters below apply to every location, ZIP, coordinate and polygon query (search URLs carry their own filters). Each hit returns one row per listing.
## `coordinate_inputs` (type: `array`):

Radius search around a point via `/search/bycoordinates`. One point per line as `latitude,longitude` or `latitude,longitude,radiusMiles` (radius in MILES, default 5). Example: `34.0522,-118.2437,3` searches 3 miles around downtown Los Angeles. The filters below also apply. One row per listing.
## `polygon_inputs` (type: `array`):

Search inside a custom area via `/search/bypolygon`. One polygon per line as space-separated `longitude latitude` pairs joined by commas, e.g. `-118.5 34.2,-118.5 33.9,-118.1 33.9,-118.1 34.2`. The search is bounded by the polygon's extent. The filters below also apply. One row per listing.
## `searchType` (type: `string`):

Listing mode to search for: commercial space For Lease, properties For Sale, or Ten-X Auctions. Applies to every location / ZIP / coordinate / polygon query.
## `propertyType` (type: `string`):

Commercial property type; comma-combine for multiple, e.g. `office,industrial`. Valid values: `office`, `industrial`, `retail`, `flex`, `land`, `multifamily`, `hospitality`, `specialty`, `health_care`, `shopping_center`, `restaurant`, `sports_entertainment`, `residential_income`, `lab`. Leave empty for all types.
## `propertySubType` (type: `string`):

Narrow to a subtype (comma-combine allowed), e.g. `warehouse`, `distribution`, `data_center`, `manufacturing`, `cold_storage`, `loft`, `creative_space`, `medical_office`, `bank`, `freestanding`, `grocery`, `gas_station`, `storefront`, `strip_center`, `regional_mall`, `garden`, `mid_rise`, `high_rise`, `self_storage`, `car_wash`, `religious`, `school`, `parking`, `assisted_living`, `hospital`, `casino`, `golf`, `theater`, `residential_land`, `commercial_land`, `industrial_land`, `agricultural`. Use the Property Types section below to list every valid value. Leave empty for all.
## `priceRange` (type: `string`):

Sale price as `min:X,max:Y` (either half optional), e.g. `min:1000000,max:10000000`. In For Lease mode (when no explicit lease rate is set) this filters the lease rate instead.
## `leaseRateRange` (type: `string`):

Annual lease rate per square foot as `min:X,max:Y`, e.g. `min:10,max:50`. For Lease mode only.
## `buildingSizeRange` (type: `string`):

Total building size in square feet as `min:X,max:Y`, e.g. `min:5000,max:200000`.
## `spaceSizeRange` (type: `string`):

Available space in square feet as `min:X,max:Y`, e.g. `min:2000,max:20000`. For Lease mode.
## `lotSizeRange` (type: `string`):

Lot size in acres as `min:X,max:Y`, e.g. `min:0.5,max:10`.
## `capRateRange` (type: `string`):

Capitalization rate percentage as `min:X,max:Y`, e.g. `min:4,max:12`. For Sale mode.
## `yearBuiltRange` (type: `string`):

Construction year as `min:X,max:Y`, e.g. `min:1990` or `min:1980,max:2010`.
## `unitCountRange` (type: `string`):

Number of units as `min:X,max:Y`, e.g. `min:10,max:100`. Multifamily properties.
## `keywords` (type: `string`):

Free-text keyword filter, e.g. `corner lot`, `drive-thru`, `high ceilings`.
## `sortOrder` (type: `string`):

Result ordering for every location / ZIP / coordinate / polygon search.
## `pages` (type: `integer`):

How many result pages to fetch for each search input (each page holds *Results per page* listings).
## `resultCount` (type: `integer`):

Listings to return per page for every search (1–100; the API internally merges LoopNet's 25-listing server pages).
## `subLease` (type: `boolean`):

Only sublease space (For Lease mode).
## `netLeased` (type: `boolean`):

Only net-leased / triple-net investment properties.
## `distressed` (type: `boolean`):

Only distressed assets.
## `opportunityZone` (type: `boolean`):

Only properties inside a federal Opportunity Zone.
## `inContract` (type: `boolean`):

Include listings already in contract or pending.
## `buyNowAvailable` (type: `boolean`):

Only auction listings with a Buy Now price.
## `vacantOwnerUser` (type: `boolean`):

Only vacant properties suited to owner-users (For Sale mode).
## `businessForSale` (type: `boolean`):

Only listings where the operating business is included in the sale.
## `investment` (type: `boolean`):

Only income-producing investment properties (For Sale mode).
## `excludeLeaseHold` (type: `boolean`):

Exclude leasehold-interest sales (For Sale mode).
## `autocomplete_inputs` (type: `array`):

Resolve free text (city / county / ZIP / market, e.g. `Austin`) to LoopNet geography suggestions via `/autocomplete`. Each suggestion = one row (name, geography id and type, city/state/country, coordinates).
## `propertytypes_inputs` (type: `array`):

List LoopNet's official commercial property-type / subtype taxonomy per country via `/propertytypes` — every valid `propertyType` and `propertySubType` filter value. One row per property type per deal axis (For Sale / For Lease). Codes: `USA`, `CAN`, `GBR`, `FRA`, `ESP`, `AUS`.

## Actor input object example

```json
{
  "property_inputs": [
    "29122043",
    "https://www.loopnet.com/Listing/11340-W-Olympic-Blvd-Los-Angeles-CA/29122043/"
  ],
  "search_inputs": [
    "Los Angeles, CA"
  ],
  "coordinate_inputs": [],
  "polygon_inputs": [],
  "searchType": "For_Lease",
  "propertyType": "",
  "propertySubType": "",
  "priceRange": "",
  "leaseRateRange": "",
  "buildingSizeRange": "",
  "spaceSizeRange": "",
  "lotSizeRange": "",
  "capRateRange": "",
  "yearBuiltRange": "",
  "unitCountRange": "",
  "keywords": "",
  "sortOrder": "Recommended",
  "pages": 1,
  "resultCount": 25,
  "subLease": false,
  "netLeased": false,
  "distressed": false,
  "opportunityZone": false,
  "inContract": false,
  "buyNowAvailable": false,
  "vacantOwnerUser": false,
  "businessForSale": false,
  "investment": false,
  "excludeLeaseHold": false,
  "autocomplete_inputs": [],
  "propertytypes_inputs": []
}
````

# 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 = {
    "property_inputs": [
        "29122043",
        "https://www.loopnet.com/Listing/11340-W-Olympic-Blvd-Los-Angeles-CA/29122043/"
    ],
    "search_inputs": [
        "Los Angeles, CA"
    ],
    "coordinate_inputs": [],
    "polygon_inputs": [],
    "autocomplete_inputs": [],
    "propertytypes_inputs": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("one-api/loopnet-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 = {
    "property_inputs": [
        "29122043",
        "https://www.loopnet.com/Listing/11340-W-Olympic-Blvd-Los-Angeles-CA/29122043/",
    ],
    "search_inputs": ["Los Angeles, CA"],
    "coordinate_inputs": [],
    "polygon_inputs": [],
    "autocomplete_inputs": [],
    "propertytypes_inputs": [],
}

# Run the Actor and wait for it to finish
run = client.actor("one-api/loopnet-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "property_inputs": [
    "29122043",
    "https://www.loopnet.com/Listing/11340-W-Olympic-Blvd-Los-Angeles-CA/29122043/"
  ],
  "search_inputs": [
    "Los Angeles, CA"
  ],
  "coordinate_inputs": [],
  "polygon_inputs": [],
  "autocomplete_inputs": [],
  "propertytypes_inputs": []
}' |
apify call one-api/loopnet-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=one-api/loopnet-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LoopNet Scraper",
        "description": "Scrape LoopNet.com (CoStar) commercial real estate. Search For Lease / For Sale / Auction listings by location, ZIP, coordinates, polygon or URL with full commercial filters; enriched property details with spaces, brokers, facts and photos; plus autocomplete and property types.",
        "version": "1.0",
        "x-build-id": "gDiHjQdvHrgtbxtFg"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/one-api~loopnet-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-one-api-loopnet-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/one-api~loopnet-scraper/runs": {
            "post": {
                "operationId": "runs-sync-one-api-loopnet-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/one-api~loopnet-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-one-api-loopnet-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "property_inputs": {
                        "title": "Listing ID or LoopNet URL (one per line)",
                        "type": "array",
                        "description": "Auto-detects each entry and calls the right endpoint:\n• A numeric LoopNet listing id (e.g. `29122043`) → `/details/byid`\n• A `https://www.loopnet.com/Listing/...` URL → `/details/byurl`\n\nEach row = one fully enriched commercial property record: address + coordinates, price / lease rate, building class, all available spaces (size, term, rate, use, build-out, availability), property facts (building size, typical floor size, ceiling height, parking, zoning...), highlights, description, brokers with phone numbers, owner, walk/transit/bike/drive scores, nearby transportation and the full photo gallery. Pull an id from any Search result row.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "search_inputs": {
                        "title": "Location, ZIP code, or LoopNet search URL (one per line)",
                        "type": "array",
                        "description": "Auto-detects each entry and routes to the right `/search/*` endpoint:\n• A LoopNet search URL, e.g. `https://www.loopnet.com/search/office-space/los-angeles-ca/for-lease/` → `/search/byurl`\n• A 5-digit ZIP code, e.g. `90064` → `/search/byzip`\n• Anything else (city / county / market, e.g. `Austin, TX`) → `/search/bylocation`\n\nThe filters below apply to every location, ZIP, coordinate and polygon query (search URLs carry their own filters). Each hit returns one row per listing.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "coordinate_inputs": {
                        "title": "Coordinates: lat,lon or lat,lon,radiusMiles (one per line)",
                        "type": "array",
                        "description": "Radius search around a point via `/search/bycoordinates`. One point per line as `latitude,longitude` or `latitude,longitude,radiusMiles` (radius in MILES, default 5). Example: `34.0522,-118.2437,3` searches 3 miles around downtown Los Angeles. The filters below also apply. One row per listing.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "polygon_inputs": {
                        "title": "Polygon: lon lat,lon lat,... (one polygon per line)",
                        "type": "array",
                        "description": "Search inside a custom area via `/search/bypolygon`. One polygon per line as space-separated `longitude latitude` pairs joined by commas, e.g. `-118.5 34.2,-118.5 33.9,-118.1 33.9,-118.1 34.2`. The search is bounded by the polygon's extent. The filters below also apply. One row per listing.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchType": {
                        "title": "Deal type",
                        "enum": [
                            "For_Lease",
                            "For_Sale",
                            "Auctions"
                        ],
                        "type": "string",
                        "description": "Listing mode to search for: commercial space For Lease, properties For Sale, or Ten-X Auctions. Applies to every location / ZIP / coordinate / polygon query.",
                        "default": "For_Lease"
                    },
                    "propertyType": {
                        "title": "Property type(s)",
                        "type": "string",
                        "description": "Commercial property type; comma-combine for multiple, e.g. `office,industrial`. Valid values: `office`, `industrial`, `retail`, `flex`, `land`, `multifamily`, `hospitality`, `specialty`, `health_care`, `shopping_center`, `restaurant`, `sports_entertainment`, `residential_income`, `lab`. Leave empty for all types.",
                        "default": ""
                    },
                    "propertySubType": {
                        "title": "Property subtype(s)",
                        "type": "string",
                        "description": "Narrow to a subtype (comma-combine allowed), e.g. `warehouse`, `distribution`, `data_center`, `manufacturing`, `cold_storage`, `loft`, `creative_space`, `medical_office`, `bank`, `freestanding`, `grocery`, `gas_station`, `storefront`, `strip_center`, `regional_mall`, `garden`, `mid_rise`, `high_rise`, `self_storage`, `car_wash`, `religious`, `school`, `parking`, `assisted_living`, `hospital`, `casino`, `golf`, `theater`, `residential_land`, `commercial_land`, `industrial_land`, `agricultural`. Use the Property Types section below to list every valid value. Leave empty for all.",
                        "default": ""
                    },
                    "priceRange": {
                        "title": "Price range ($)",
                        "type": "string",
                        "description": "Sale price as `min:X,max:Y` (either half optional), e.g. `min:1000000,max:10000000`. In For Lease mode (when no explicit lease rate is set) this filters the lease rate instead.",
                        "default": ""
                    },
                    "leaseRateRange": {
                        "title": "Lease rate range ($/SF/YR)",
                        "type": "string",
                        "description": "Annual lease rate per square foot as `min:X,max:Y`, e.g. `min:10,max:50`. For Lease mode only.",
                        "default": ""
                    },
                    "buildingSizeRange": {
                        "title": "Building size (SF)",
                        "type": "string",
                        "description": "Total building size in square feet as `min:X,max:Y`, e.g. `min:5000,max:200000`.",
                        "default": ""
                    },
                    "spaceSizeRange": {
                        "title": "Available space (SF)",
                        "type": "string",
                        "description": "Available space in square feet as `min:X,max:Y`, e.g. `min:2000,max:20000`. For Lease mode.",
                        "default": ""
                    },
                    "lotSizeRange": {
                        "title": "Lot size (acres)",
                        "type": "string",
                        "description": "Lot size in acres as `min:X,max:Y`, e.g. `min:0.5,max:10`.",
                        "default": ""
                    },
                    "capRateRange": {
                        "title": "Cap rate (%)",
                        "type": "string",
                        "description": "Capitalization rate percentage as `min:X,max:Y`, e.g. `min:4,max:12`. For Sale mode.",
                        "default": ""
                    },
                    "yearBuiltRange": {
                        "title": "Year built",
                        "type": "string",
                        "description": "Construction year as `min:X,max:Y`, e.g. `min:1990` or `min:1980,max:2010`.",
                        "default": ""
                    },
                    "unitCountRange": {
                        "title": "Unit count (multifamily)",
                        "type": "string",
                        "description": "Number of units as `min:X,max:Y`, e.g. `min:10,max:100`. Multifamily properties.",
                        "default": ""
                    },
                    "keywords": {
                        "title": "Keywords",
                        "type": "string",
                        "description": "Free-text keyword filter, e.g. `corner lot`, `drive-thru`, `high ceilings`.",
                        "default": ""
                    },
                    "sortOrder": {
                        "title": "Sort order",
                        "enum": [
                            "Recommended",
                            "newest",
                            "oldest",
                            "price_low_to_high",
                            "price_high_to_low",
                            "cap_rate_low_to_high",
                            "cap_rate_high_to_low",
                            "building_size_low_to_high",
                            "building_size_high_to_low",
                            "space_low_to_high",
                            "space_high_to_low"
                        ],
                        "type": "string",
                        "description": "Result ordering for every location / ZIP / coordinate / polygon search.",
                        "default": "Recommended"
                    },
                    "pages": {
                        "title": "Pages per search",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "How many result pages to fetch for each search input (each page holds *Results per page* listings).",
                        "default": 1
                    },
                    "resultCount": {
                        "title": "Results per page",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Listings to return per page for every search (1–100; the API internally merges LoopNet's 25-listing server pages).",
                        "default": 25
                    },
                    "subLease": {
                        "title": "Sublease only",
                        "type": "boolean",
                        "description": "Only sublease space (For Lease mode).",
                        "default": false
                    },
                    "netLeased": {
                        "title": "Net leased (NNN)",
                        "type": "boolean",
                        "description": "Only net-leased / triple-net investment properties.",
                        "default": false
                    },
                    "distressed": {
                        "title": "Distressed",
                        "type": "boolean",
                        "description": "Only distressed assets.",
                        "default": false
                    },
                    "opportunityZone": {
                        "title": "Opportunity Zone",
                        "type": "boolean",
                        "description": "Only properties inside a federal Opportunity Zone.",
                        "default": false
                    },
                    "inContract": {
                        "title": "Include in-contract / pending",
                        "type": "boolean",
                        "description": "Include listings already in contract or pending.",
                        "default": false
                    },
                    "buyNowAvailable": {
                        "title": "Buy Now available (Auctions)",
                        "type": "boolean",
                        "description": "Only auction listings with a Buy Now price.",
                        "default": false
                    },
                    "vacantOwnerUser": {
                        "title": "Vacant / owner-user",
                        "type": "boolean",
                        "description": "Only vacant properties suited to owner-users (For Sale mode).",
                        "default": false
                    },
                    "businessForSale": {
                        "title": "Business for sale",
                        "type": "boolean",
                        "description": "Only listings where the operating business is included in the sale.",
                        "default": false
                    },
                    "investment": {
                        "title": "Investment properties",
                        "type": "boolean",
                        "description": "Only income-producing investment properties (For Sale mode).",
                        "default": false
                    },
                    "excludeLeaseHold": {
                        "title": "Exclude leasehold",
                        "type": "boolean",
                        "description": "Exclude leasehold-interest sales (For Sale mode).",
                        "default": false
                    },
                    "autocomplete_inputs": {
                        "title": "Location text to resolve (one per line)",
                        "type": "array",
                        "description": "Resolve free text (city / county / ZIP / market, e.g. `Austin`) to LoopNet geography suggestions via `/autocomplete`. Each suggestion = one row (name, geography id and type, city/state/country, coordinates).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "propertytypes_inputs": {
                        "title": "Country code (one per line)",
                        "type": "array",
                        "description": "List LoopNet's official commercial property-type / subtype taxonomy per country via `/propertytypes` — every valid `propertyType` and `propertySubType` filter value. One row per property type per deal axis (For Sale / For Lease). Codes: `USA`, `CAN`, `GBR`, `FRA`, `ESP`, `AUS`.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
