{
  "openapi": "3.0.1",
  "info": {
    "title": "LoopNet UK Scraper [$0.5/1K] | Commercial",
    "description": "Collect LoopNet UK commercial property listings by market, batch or direct URL. Get addresses, property types, space use, lease or sale terms, size ranges, price text, brokers and photos.",
    "version": "1.0",
    "x-build-id": "feASHSTRrYApwvlaA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ahmed_jasarevic~loopnet-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ahmed_jasarevic-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/ahmed_jasarevic~loopnet-scraper/runs": {
      "post": {
        "operationId": "runs-sync-ahmed_jasarevic-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/ahmed_jasarevic~loopnet-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ahmed_jasarevic-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": {
          "locationSlug": {
            "title": "Location Slug",
            "type": "string",
            "description": "LoopNet URL slug for the target market. UK examples: 'london-england--united-kingdom', 'manchester-gtm--united-kingdom', or 'united-kingdom'. US examples: 'new-york-ny', 'chicago-il'."
          },
          "batches": {
            "title": "Batch Locations",
            "type": "array",
            "description": "Collect several markets in one run. Each entry needs a 'locationSlug' and can override 'listingMode', 'site', 'maxItems' or 'maxPages'. When set, the top-level locationSlug is ignored."
          },
          "urls": {
            "title": "Direct URLs",
            "type": "array",
            "description": "Paste LoopNet search-result or listing URLs. Each URL is handled independently, and the site is detected from the host. When set, locationSlug and batches are ignored. Price and size filters still apply to search results.",
            "items": {
              "type": "string"
            }
          },
          "listingMode": {
            "title": "Listing Mode",
            "enum": [
              "for-lease",
              "for-sale"
            ],
            "type": "string",
            "description": "Search for lease or sale listings.",
            "default": "for-lease"
          },
          "site": {
            "title": "LoopNet Site",
            "enum": [
              "com",
              "co-uk"
            ],
            "type": "string",
            "description": "Which LoopNet portal to use. 'co-uk' is the default for LoopNet UK; choose 'com' for the US site.",
            "default": "co-uk"
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 750,
            "type": "integer",
            "description": "Maximum listings to collect, up to 750 per query.",
            "default": 200
          },
          "maxPages": {
            "title": "Max Pages",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Maximum result pages to collect per market, up to 30.",
            "default": 30
          },
          "minPrice": {
            "title": "Min Price (total)",
            "minimum": 0,
            "type": "integer",
            "description": "OPTIONAL. Only keep listings whose total asking price/sale price is at least this value. Listings without a known total price (per-sqft rates, Price Upon Request) are kept, matching industry behavior."
          },
          "maxPrice": {
            "title": "Max Price (total)",
            "minimum": 0,
            "type": "integer",
            "description": "OPTIONAL. Only keep listings whose total price is at most this value."
          },
          "minSqft": {
            "title": "Min Size (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "OPTIONAL. Only keep listings of at least this size in square feet (metric sizes are converted)."
          },
          "maxSqft": {
            "title": "Max Size (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "OPTIONAL. Only keep listings of at most this size in square feet."
          },
          "sortBy": {
            "title": "Sort Results",
            "enum": [
              "default",
              "most-recent",
              "price-asc",
              "price-desc",
              "size-asc",
              "size-desc"
            ],
            "type": "string",
            "description": "OPTIONAL. Sort each page's results before saving: most-recent (default order), price-asc, price-desc, size-asc, size-desc.",
            "default": "default"
          },
          "incrementalMode": {
            "title": "Incremental Mode (monitoring)",
            "type": "boolean",
            "description": "When enabled, only new or changed listings are returned. Useful for monitoring; disable it for full snapshots.",
            "default": false
          },
          "cacheTtlHours": {
            "title": "Result reuse window (hours)",
            "minimum": 0,
            "maximum": 168,
            "type": "integer",
            "description": "How long a previous result set may be reused before a fresh collection. Set 0 to always collect live data.",
            "default": 6
          },
          "maxWalkAttempts": {
            "title": "Max collection attempts",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "How many collection attempts to make if a page returns no results.",
            "default": 2
          },
          "delayMs": {
            "title": "Delay Between Requests (ms)",
            "minimum": 500,
            "maximum": 10000,
            "type": "integer",
            "description": "Pause between result pages in milliseconds.",
            "default": 800
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Optional Apify proxy configuration for the run. The default is ready for UK results."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}