{
  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}